完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
有人可以发一个简单的工作约束脚本,其中一个IDELAYCTRL正在驱动9个IODELAY,其中每个3个在一个单独的库中(3x3)。 Target是一款virtex-6芯片。 有约束IODELAY_GROUP,但用法并不完全清楚。 在UG中,据说对于每个银行,我必须创建一个新的组 - 但是如何为它们分配单个IDELAYCTRL实例? 为一个IDELAYCTRL分配多个组不起作用。 问候 |
|
相关推荐
7个回答
|
|
IODELAY_GROUP将特定的IODELAYCTRL与一堆IODELAY相关联。
只有当IODELAYCTRL对于一堆IODELAY与其他IODELAY不同时,才需要这样做。 如果您的目标是拥有所有IODELAYCTRL - 由同一时钟(200MHz)提供时钟 - 由相同的复位信号复位 - 只有一个组合就绪信号 那么你不需要指定多个IODELAY_GROUP。 只需实例化一个IODELAYCTRL(没有IODELAY_GROUP)并且不设置IODELAY的IODELAY_GROUP,该工具将自动将一个(并且只有一个)IODELAYCTRL复制到三个所需的库中。 如果你确实想要三个银行中的每一个都有不同的组,那么你会 - 实例化三个IODELAYCTRL,每个IODELAYCTRL具有不同的IODELAY_GROUP - 对于特定银行中的三个IODELAY中的每一个,我们使用与IODELAYCTRL之一相同的IODELAY_GROUP - 同一银行中的三个必须使用相同的IODELAY_GROUP 但是再一次 - 这在大多数情况下都不是必需的......只是实例化一个没有IODELAY_GROUP的IODELAYCTRL。 Avrum |
|
|
|
很好的答案,谢谢。
|
|
|
|
Avrum,
这也适用于Vivado吗? 我试过离开IDELAY& IDELAYCTRL实例都没有受到训练,并且还将它们与一个组相关联,我无法让Vivado接受任何一个。 这是我的Verilog的片段,其中使用了这些片段(此处显示的IODELAY_GROUP属性已被注释掉,因为我无法让它们工作): IBUFDS#(。IOSTANDARD(“LVDS_25”),. DIFF_TERM(“TRUE”))IdsRefClk200(.O(refclk200_pre),. I(refclk200_p),. IB(refclk200_n)); / *(* IODELAY_GROUP =“IODLY_GROUP”*)* / IDELAYCTRL IdelayCtl(.RDY(),。REFCLK(refclk200_pre),. RST(Reset)); genvar i; 生成for(i = 2; i / * IN LVDS解码* / IBUFDS#(。IOSTANDARD(“LVDS_25”),. DIFF_TERM(“TRUE”))Iibuf(.O(dif_in ),. I(dif_in_p [ i]),. IB(dif_in_n )); / * IDELAY为零保持时间* // *(* IODELAY_GROUP =“IODLY_GROUP”*)* / IDELAY Idel(.O(dif_in_delayed ),. I(dif_in [I]),. C(1'b0),. CE(1'b0),. INC(1'b0),. RST(1'b0)) 以下是vivado.log文件中的一些选定消息: 信息:[Synth 8-638]合成模块'hrt_xrc7v1'[/home/otto/prj/HRT/code/fpga/hrt_xrc7.v:6]INFO:[Synth 8-638]合成模块'IBUFGDS'[/ v / sgl-opt / Xilinx2013.2 / Vivado / 2013.2 / scripts / rt / data / unisim_comp.v:6384]参数CAPACITANCE绑定到:DONT_CARE - 类型:字符串参数DIFF_TERM绑定到:TRUE - 类型:字符串参数IBUF_DELAY_VALUE绑定到:0 - type:string参数IBUF_LOW_PWR绑定到:TRUE - 类型:字符串参数IOSTANDARD绑定到:LVDS_25 - 类型:字符串INFO:[Synth 8-256]完成合成模块'IBUFGDS'(1#30)[/ v / sgl-opt /Xilinx2013.2/Vivado/2013.2/scripts/rt/data/unisim_comp.v:6384]警告:[Synth 8-4446]此实例的所有输出均未连接,逻辑可能被删除[/ home / otto / prj / HRT /code/fpga/hrt_xrc7.v:95]INFO:(Synth 8-638)合成模块'IDELAYCTRL'[/v/sgl-opt/Xilinx2013.2/Vivado/2013.2/scripts/rt/data/unisim_comp.v: 7918] INFO:[Synth 8-256]完成合成模块'IDELAYCTRL'(2#30)[/v/sgl-opt/Xilinx2013.2/Vivado/2013.2/scrip ts / rt / data / unisim_comp.v:7918] INFO:[Synth 8-638]合成模块'IBUFDS'[/v/sgl-opt/Xilinx2013.2/Vivado/2013.2/scripts/rt/data/unisim_comp.v :6074]参数CAPACITANCE绑定到:DONT_CARE - 类型:字符串参数DIFF_TERM绑定到:TRUE - 类型:字符串参数DQS_BIAS绑定到:FALSE - 类型:字符串参数IBUF_DELAY_VALUE绑定到:0 - 类型:字符串参数IBUF_LOW_PWR绑定到:TRUE - type:string参数IFD_DELAY_VALUE绑定到:AUTO - 类型:字符串参数IOSTANDARD绑定到:LVDS_25 - 类型:字符串INFO:[Synth 8-256]完成合成模块'IBUFDS'(3#30)[/ v / sgl-opt / Xilinx2013.2 / Vivado / 2013.2 / scripts / rt / data / unisim_comp.v:6074] INFO:[Synth 8-638]合成模块'IDELAY'[/v/sgl-opt/Xilinx2013.2/Vivado/2013.2/scripts /rt/data/unisim_comp.v:7898]参数IOBDELAY_TYPE绑定到:DEFAULT - 类型:字符串参数IOBDELAY_VALUE绑定到:0 - 类型:整数INFO:[Synth 8-256]完成合成模块'IDELAY'(4#30) [/v/sgl-opt/Xilinx2013.2/Vivado/2013.2/scr IPTS / RT /数据/ unisim_comp.v:7898] ..... 阶段1.8 IO放置/时钟放置/构建放置器DeviceERROR:[放置30-578]在设计中找到未关联的IO延迟实例。 没有关联的IdelayCtrl的IO延迟实例列表如下:difbit [12] .Idel difbit [3] .Idel difbit [10] .Idel difbit [8] .Idel difbit [4] .Idel difbit [2] .Idel difbit [7] .Idel difbit [6] .Idel difbit [11] .Idel difbit [5] .IdelResolution:请修改设计,以便每个IO延迟实例都有一个关联的IdealCtrl实例.Phase 1.8 IO Placement / Clock Placement / Build Placer Device | 校验和:6d58c733时间:cpu = 00:01:09; 逝去了= 00:01:08。 记忆(MB):峰值= 2898.457; 增益= 24.012第1阶段初始化| 校验和:6d58c733时间:cpu = 00:01:09; 逝去了= 00:01:08。 记忆(MB):峰值= 2898.457; 增益= 24.012ERROR:[放置30-99] Placer因错误而失败:'设计具有未关联的IO延迟实例'请在放置期间查看所有错误,严重警告和警告消息,以了解失败原因。结束Placer任务| 校验和:6d58c733 感谢您提供的任何反馈, 玫瑰油 |
|
|
|
我终于开始工作了。
我不得不通过BUFG原始路由200 MHz参考时钟,以便IDELAYCTRL不会被优化掉。 从IBUFGDS,甚至IBUFG开车都行不通。 似乎只有一个BUFG才能做到这一点。 我还将IDELAY更改为IDELAYE2。 不确定这是否重要。 -Otto |
|
|
|
ocaldwell写道:
我终于开始工作了。 我不得不通过BUFG原始路由200 MHz参考时钟,以便IDELAYCTRL不会被优化掉。 从IBUFGDS,甚至IBUFG开车都行不通。 似乎只有一个BUFG才能做到这一点。 -Otto 那是因为REFCLK输入是时钟输入,只能由时钟网驱动,即由BUFG驱动的信号。 ----------------------------是的,我这样做是为了谋生。 |
|
|
|
|
|
|
|
ocaldwell写道:我明白了。
我错误地认为IBUFG和IBUFGDS也会自动推断出一个BUFG,因为它是一个时钟输入原语。 啊,看,这就是问题。 工具应该推断出BUFG。 听起来像个臭虫。 ----------------------------是的,我这样做是为了谋生。 |
|
|
|
只有小组成员才能发言,加入小组>>
2385 浏览 7 评论
2800 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2264 浏览 9 评论
3336 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2433 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
762浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
548浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
375浏览 1评论
1970浏览 0评论
688浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 13:23 , Processed in 1.330472 second(s), Total 61, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号