altera cyclone v IOE delay 设置

在用altera fpga芯片进行项目开发时,某个源同步信号输入fpga时,或者要输出串行同步信号。由于外部走线不等长等原因,有时会遇到各个信号到达fpga不同步的问题,或输出信号到达外部器件不同步,这时可以通过quartus ii 的Assignment editor 对某个输入或输出信号进行时间延迟设置,比如输入时,通过设置输入延迟使得到达fpga内部单元的信号能够同步。下面介绍下Assignment editor 里 quaruts ii 提供的几种延迟方式,这里以Cyclone v 为例进行介绍,从cyclone v 的datasheet里可以看到对IO延迟有D1,D3,D4,D5四种设置方式:

图1 可编程IOE delay

D1 delay:指的是IO buffer 到输入寄存器间的延迟;
D3 delay:指的是IO buffer 到内部模块单元间的延迟;
D4 delay:指的是DQS线上的延迟;
D5delay:指的是输出寄存器到IO buffer 的间延迟。
通过查看上图可以得出每个器件对应的最大延迟值。比如器件速度等级为C8,Slow Model,则D1的最大延迟是1.194ns。Available Settings 里的值表示的是把延迟值划分为多少个等级,比如D1,则有32个延迟等级,最高等级31 对应延迟值1.194ns,0则对应延迟值为0ns。
这里D1,D3,D4是输入延迟设置,只有当管脚设置为输入或者双向口时设置的延迟才会生效,D5是输出延迟, 所以只有当管脚为输出或双向口时设置的延迟才会有效)。

具体到IOE结构图上对应的位置如下图所示:

这里写图片描述

在quartusII 15.0里设置IO delay的方式:
此处用的FPGA芯片是cyclone v 5cEFA5F23C8,速度等级c8,所设置的管脚为slow model 模式
1、首先创建工程,编译工程,分配IO管脚;
2、打开Assignment editor,从下图的To这一列找到需要延迟的管脚,将名称copy ,然后粘贴到To这一列最下方的框中(<>)。
这里写图片描述

3、该处以RGMII_IN[0]管脚为例 将名称赋值到To这一列最下方的框中,然后双击该行Assignment Name对应的框,根据你需要的延迟方式从下拉列表中选择 D1 delay(一般选这种输入延迟就行)或者D3,D4,D5。此处选择D1 delay,然后在Value这一列设置延迟值,注意这里的值只能设置0-31之间的整数,要是设置超过31,则延迟值为0 。这里设延迟值为31,根据IOE delay表查看,则其D1 delay 值应为1.194ns,使能Enabled 选择yes。然后保存退出,重新编译一次,延迟就会生效。
这里写图片描述
4、打开chip planner 找到对应的输入管脚RGMII_IN[0]的pad,双击,就能看到对应设置的D1 delay的值,如下图
这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章