完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在Zynq上启动PL时遇到问题 - DONE未声明。
当我加载其他位文件时,完成位打开: root @ elphel393:〜#cat x393_02.bit> / dev / xdevcfg root @ elphel393:〜#。/ memdump.py f8007000 f800700c 0xf8007000:4e00e07f 0000001a 00000508 00020004 但随着更大的设计,它已经关闭 root @ elphel393:〜#。/ mem.py f8000900 0 root @ elphel393:〜#cat eddr3.bit> / dev / xdevcfg root @ elphel393:〜#。/ memdump.py f8007000 f800700c 0xf8007000:4e00e07f 0000001a 00000508 00020000 在问题文件中我使用MMCME2_ADV(和PLLE2_BASE),但两者都有.STARTUP_WAIT(“FALSE”),所以我明白MMCM启动问题不应该保持~DONE(一切都模拟好了,没有报告问题): 信息:[Synth 8-638]合成模块'MMCME2_ADV'[/opt/Xilinx/Vivado/2014.1/scripts/rt/data/unisim_comp.v:15994]参数BANDWIDTH绑定到:OPtiMIZED - 类型:字符串参数CLKFBOUT_USE_FINE_PS绑定到: FALSE - 类型:字符串参数CLKOUT0_USE_FINE_PS绑定到:FALSE - 类型:字符串参数CLKOUT1_USE_FINE_PS绑定到:TRUE - 类型:字符串参数CLKOUT2_USE_FINE_PS绑定到:TRUE - 类型:字符串参数CLKOUT3_USE_FINE_PS绑定到:TRUE - 类型:字符串参数CLKOUT4_CASCADE绑定到: FALSE - 类型:字符串参数CLKOUT4_USE_FINE_PS绑定到:FALSE - 类型:字符串参数CLKOUT5_USE_FINE_PS绑定到:FALSE - 类型:字符串参数CLKOUT6_USE_FINE_PS绑定到:FALSE - 类型:字符串参数COMPENSATION绑定到:ZHOLD - 类型:字符串参数SS_EN绑定到: FALSE - 类型:字符串参数SS_MODE绑定到:CENTER_HIGH - 类型:字符串参数STARTUP_WAIT绑定到:FALSE - 类型:字符串参数IS_CLKINSEL_INVERTED绑定到:1'b0参数IS_PSEN_INVERTED bo und to:1'b0参数IS_PSINCDEC_INVERTED绑定到:1'b0参数IS_PWRDWN_INVERTED绑定到:1'b0参数IS_RST_INVERTED绑定到:1'b0参数CLKOUT1_DIVIDE绑定到:2 - 类型:整数参数CLKOUT2_DIVIDE绑定到:4 - 类型:整数 参数CLKOUT3_DIVIDE绑定到:4 - 类型:整数参数CLKOUT4_DIVIDE绑定到:1 - 类型:整数参数CLKOUT5_DIVIDE绑定到:1 - 类型:整数参数CLKOUT6_DIVIDE绑定到:1 - 类型:整数参数DIVCLK_DIVIDE绑定到:1 - 类型:整数 参数SS_MOD_PERIOD绑定到:10000 - 类型:整数参数CLKFBOUT_MULT_F绑定到:16.000000 - 类型:float参数CLKFBOUT_PHASE绑定到:0.000000 - 类型:float参数CLKIN1_PERIOD绑定到:20.000000 - 类型:float参数CLKIN2_PERIOD绑定到:0.000000 - 类型:float 参数CLKOUT0_DIVIDE_F绑定到:2.000000 - 类型:float参数CLKOUT0_DUTY_CYCLE绑定到:0.500000 - 类型:float参数CLKOUT0_PHASE绑定到:0.000000 - 类型:float参数CLKOUT1_ DUTY_CYCLE绑定到:0.500000 - 类型:float参数CLKOUT1_PHASE绑定到:0.000000 - 类型:float参数CLKOUT2_DUTY_CYCLE绑定到:0.500000 - 类型:float参数CLKOUT2_PHASE绑定到:0.000000 - 类型:float参数CLKOUT3_DUTY_CYCLE绑定到:0.500000 - 类型:float参数 CLKOUT3_PHASE绑定到:90.000000 - 类型:float参数CLKOUT4_DUTY_CYCLE绑定到:0.500000 - 类型:float参数CLKOUT4_PHASE绑定到:0.000000 - 类型:float参数CLKOUT5_DUTY_CYCLE绑定到:0.500000 - 类型:float参数CLKOUT5_PHASE绑定到:0.000000 - 类型:float参数 CLKOUT6_DUTY_CYCLE绑定到:0.500000 - 类型:float参数CLKOUT6_PHASE绑定到:0.000000 - 类型:float参数REF_JITTER1绑定到:0.010000 - 类型:float参数REF_JITTER2绑定到:0.010000 - 类型:float INFO:[Synth 8-256]完成合成模块 'MMCME2_ADV'(38#1)[/opt/Xilinx/Vivado/2014.1/scripts/rt/data/unisim_comp.v:15994] 我该如何解决问题? 还有什么(但是MMCM / PLL)可以保持DONE不被Zynq断言? 或者,即使使用STARTUP_WAIT(“FALSE”),MMCM可以阻止DONE还有其他条件吗? 安德烈菲利波夫 Elphel,Inc。 |
|
相关推荐
2个回答
|
|
你能读懂Zynq的状态寄存器吗?
这有助于理解失败的原因 -------------------------------------------------- ----------------------------别忘了回复,给予kudo并接受为解决方案--------- -------------------------------------------------- ------------------- |
|
|
|
我会尝试回答自己 - 也许它会帮助别人。我花了几天时间试图找到 - 我的代码的哪一部分在导致成功加载和提升DONE的位文件之间产生差异,以及
才不是。 状态寄存器对我没有帮助,所以我试图使用工具中的警告作为提示。 我收到的最常见警告之一如下所示:警告:[Synth 8-3295]绑定未驱动的引脚oddr_ds_i:ce为常数0警告:[Synth 8-3295]将未驱动的引脚oddr_ds_i:rst转为常数0警告:[Synth 8-3295]绑定未驱动的引脚oddr_ds_i:设置为常数0警告:[Synth 8-3295]将未驱动的引脚oddr_ds_i:din [1]连接到常数0警告:[Synth 8-3295]将未驱动的引脚oddr_ds_i:din [0]连接到常量 0和导致它的代码是oddr_ds#(。IOSTANDARD(IOSTANDARD_CLK),。SLEW(SLEW_CLK))oddr_ds_i(.clk(sdclk),//输入.ce(1'b1),//输入.rst(rst) ,//输入.set(1'b0),//输入.din(2'b01),//输入[1:0] .tin(rst),// tristate at reset .dq(ddr3_clk),// 输出.ndq(ddr3_nclk)//输出);我花了一些时间才意识到,这些工具有一些我不理解的原因,为什么他们称这两个位为“.din(2'b01)”为“常数0” 。 但这很容易,另一个比较棘手。 “rst”输入,由reg rst = 1'b1生成; 总是@(negedge clk_div或posedge rst_in)开始如果(rst_in)rst else rst endI试图生成“负”版本reg nrst = 1'b1; 总是@(negedge clk_div或posedge rst_in)开始,如果(rst_in)nrst else nrst end并使用.rst(~nrst) - 警告消失了,但对该信号的其他操作没有帮助。 后来我意识到问题是oddr_ds的两个不同端口(rst和tin)连接到同一个信号rst。 由于某些原因,我的Vivado工具副本不喜欢这样,并试图警告我,我做错了,但是以秘密的方式,因为第一个信号是合法的,正确模拟和.rst()端口 绝非 “无驱动”。另混乱的消息我已经从report_drc命令有:输入缓冲区ddrc_sequencer_i / phy_cmd_i / phy_top_i / byte_lane0_i / dqs_i / iobufs_dqs_i / IBUFDS / IBUFDS_S(在ddrc_sequencer_i / phy_cmd_i / phy_top_i / byte_lane0_i / dqs_i / iobufs_dqs_i 宏)没有负载。 输入缓冲区必须驱动一个内部负载。我尝试了这个,试图让它消失(模拟工作正常,显示该信号驱动一个非常重要的内部负载 - 首先通过IDELAYE2然后通过BUFR并计时输入DDR 有趣的是,如果我只是用类似的IOBUFDS替换IOBUFDS_DCIEN - 那个问题就会消失,即使是完全相同的端口连接。所以我放弃了对待工具的警告,并继续通过二分法解决问题(http:/ / yes.wikipedia.org/wiki/Bisection_method)。是的,我知道了 - 它与DCI有关。问题是默认情况下DONE等待DCI校准完成,当我禁用它时 put [get_property“BITSTREAM.STARTUP.MATCH_CYCLE”[current_design]] 一切都正确加载,DONE上升了。 我对DCI有实际问题吗? 我不这么认为 - 电阻器连接正确,DCI_CASCADE设置和识别。 来自实例化DCIRESET原语的输出端口“LOCKED”按预期运行,因此DCI校准似乎有效。 所以我会把它留在这里并尝试继续处理我的HDL代码(https://github.com/Elphel/eddr3)。 安德烈菲利波夫 Elphel,Inc。 |
|
|
|
只有小组成员才能发言,加入小组>>
2379 浏览 7 评论
2794 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2261 浏览 9 评论
3335 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2427 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
755浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
543浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
364浏览 1评论
1960浏览 0评论
681浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 03:02 , Processed in 1.547664 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号