完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
我正在尝试在XC6VLX240T中将IOBUFBS与双向IODELAYE1和IDDR以及ODDR一起用于特殊的DDR3应用程序。 当我按照Virtex-6选择IO用户指南中所述连接四个基元时,我从map(ISE12.2)中收到错误: --- 错误:打包:2531 - 双数据速率寄存器“ddr3_controller_inst / G_lane [0] .ODDR_dqs_t”无法根据需要加入“OLOGICE1”组件。 寄存器符号ddr3_controller_inst / G_lane [0] .ODDR_dqs_t的输出信号需要一般路由到结构,但寄存器只能路由到ILOGIC,IODELAY和IOB。 --- 如果我使用(单端)IOBUF而不是IOBUFDS一切正常。 我还尝试了生成相同连接的Select IO Generator,因此map生成了相同的错误。 这是我的代码: --- ODDR_dqs_o:ODDR通用映射(DDR_CLK_EDGE =>“SAME_EDGE”,INIT =>'0',SRTYPE =>“SYNC”)端口映射(Q => dqs_o,C => clk_400,CE =>'1',D1 => dqs_o_a,D2 => dqs_o_b,R =>'0',S =>'0'); ------------------------------- ODDR_dqs_t:ODDR通用地图(DDR_CLK_EDGE =>“SAME_EDGE”,INIT =>'0' ,SRTYPE =>“SYNC”)端口映射(Q => dqs_t,C => clk_400,CE =>'1',D1 => dqs_t_a,D2 => dqs_t_b,R =>'0',S =>'0 '); ------------------------------- IODELAYE1_dqs:IODELAYE1通用地图(CINVCTRL_SEL => FALSE,DELAY_src =>“IO”,HIGH_PERFORMANCE_MODE => TRUE,IDELAY_TYPE =>“VAR_LOADABLE”,IDELAY_VALUE => 0,ODELAY_TYPE =>“VAR_LOADABLE”,ODELAY_VALUE => 0,REFCLK_FREQUENCY => 200.0,SIGNAL_PATTERN =>“DATA”)端口映射(CNTVALUEOUT =>打开,DATAOUT = > dqs_i,C => clk_400,CE =>'0',CINVCTRL =>'0',CLKIN =>'Z',CNTVALUEIN => dqs_lane,DATAIN =>'Z',IDATAIN => dqs_x,INC =>' 0',ODATAIN => dqs_o,RST => dqs_lane_wr,T => dqs_t(l)); ------------------------------- IOBUFDS_dqs:IOBUFDS端口映射(O => dqs_x,IO => ddr_dqsp,IOB => ddr_dqsn,I => dqs_i,T => dqs_t); --- 有谁知道如何让事情发挥作用? 问候, 迈克尔 以上来自于谷歌翻译 以下为原文 Hello, I'm trying to use an IOBUFBS together with bidirectional IODELAYE1 and IDDR und ODDR in a XC6VLX240T for a special DDR3 application. When I connected the four primitives as described in the Virtex-6 Select IO User Guide I get an error from map (ISE12.2): --- ERROR:Pack:2531 - The dual data rate register "ddr3_controller_inst/G_lane[0].ODDR_dqs_t" failed to join the "OLOGICE1" component as required. The output signal for register symbol ddr3_controller_inst/G_lane[0].ODDR_dqs_t requires general routing to fabric, but the register can only be routed to ILOGIC, IODELAY, and IOB. --- If I use a (single ended) IOBUF instead of the IOBUFDS everything works fine. I also tried the Select IO Generator which produced the same connections and thus the same error is produces by map. Here my code: --- ODDR_dqs_o: ODDR generic map( DDR_CLK_EDGE => "SAME_EDGE", INIT => '0', SRTYPE => "SYNC" ) port map ( Q => dqs_o, C => clk_400, CE => '1', D1 => dqs_o_a, D2 => dqs_o_b, R => '0', S => '0' ); ------------------------------- ODDR_dqs_t: ODDR generic map( DDR_CLK_EDGE => "SAME_EDGE", INIT => '0', SRTYPE => "SYNC" ) port map ( Q => dqs_t, C => clk_400, CE => '1', D1 => dqs_t_a, D2 => dqs_t_b, R => '0', S => '0' ); ------------------------------- IODELAYE1_dqs: IODELAYE1 generic map ( CINVCTRL_SEL => FALSE, DELAY_src=> "IO", HIGH_PERFORMANCE_MODE => TRUE, IDELAY_TYPE => "VAR_LOADABLE", IDELAY_VALUE => 0, ODELAY_TYPE => "VAR_LOADABLE", ODELAY_VALUE => 0, REFCLK_FREQUENCY => 200.0, SIGNAL_PATTERN => "DATA" ) port map ( CNTVALUEOUT => open, DATAOUT => dqs_i, C => clk_400, CE => '0', CINVCTRL => '0', CLKIN => 'Z', CNTVALUEIN => dqs_lane, DATAIN => 'Z', IDATAIN => dqs_x, INC => '0', ODATAIN => dqs_o, RST => dqs_lane_wr, T => dqs_t(l) ); ------------------------------- IOBUFDS_dqs: IOBUFDS port map ( O => dqs_x, IO => ddr_dqsp, IOB => ddr_dqsn, I => dqs_i, T => dqs_t ); --- Has anyone an idea how I get things to work? Regards, Michael |
|
相关推荐
3个回答
|
|
关于映射包错误,ODDR的输出应通过OBUF转到输出PAD,并且ODDR的输出不能循环回FPGA的内部逻辑。
// function toggleToc(el){var parEl = el.parentNode; while(parEl.id!=“toc”){parEl = parEl.parentNode; } var tocTable = parEl.getElementsByTagName('ul')[0]; if(tocTable.style.display =='none'){el.innerHTML =“隐藏”; tocTable.style.display ='block'; document.cookie ='hidetoc = 0'; } else {el.innerHTML =“显示”; tocTable.style.display ='none'; document.cookie ='hidetoc = 1'; }} // 以上来自于谷歌翻译 以下为原文 Regarding the map pack error,the outputs of ODDR should go to the output PAD's through the OBUF, and the outputs of ODDR can not be looped back into the FPGA's internal logic. |
|
|
|
是的,ODDR的输出完全按照UG361中的描述进入IOBUF(与IODELAY一起)。
第108页的2-11。奇怪的是,它适用于单端IOBUF但不适用于差分IOBUFDS。 如果我将三态输入T从IODELAY硬连接到'0'或'1',则流程一直持续到bitgen,它抱怨在此配置中不允许T的固定值。 问候, 迈克尔 以上来自于谷歌翻译 以下为原文 Yes, the output(s) of the ODDR do go to the IOBUF (trought the IODELAY) exactly as described in UG361 fig. 2-11 on page 108. The strange thing is, that it works with a single ended IOBUF but not with a differential IOBUFDS. If I hardwire the tristate input T from the IODELAY to '0' or '1' the flow runns through until bitgen where it complains that a fixed value for T is not allowed in this configuration. Regards, Michael |
|
|
|
有没有办法克服这个包装错误?
我需要使用ODDR作为输出,但我希望将此输出路由回到结构中。 我使用了IOBUF,它的输入来自ODDR,其输出是IODELAY。 其IO引脚连接到焊盘。 它给了我这里显示的错误......如何避免它? 以上来自于谷歌翻译 以下为原文 is there a way to overcome this packing error? I need to use ODDR as an output, but I want this output routed back into the fabric. I used IOBUF, its input is from ODDR and its output is to IODELAY. Its IO pin is connected to a pad. It gave me the error showed here... How to avoid it? |
|
|
|
只有小组成员才能发言,加入小组>>
2388 浏览 7 评论
2803 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2270 浏览 9 评论
3338 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2438 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
768浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
551浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
386浏览 1评论
1975浏览 0评论
692浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 19:14 , Processed in 1.133851 second(s), Total 50, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号