1、
问题:使用vivado 2018.3对开发的例程进行仿真时出现问题:ERROR [Common 17-69] Command failed. Simulation for PR Flow is not supported 如下图所示:
分析及解决:这个问题主要是PR(Partial Reconfiguration,局部重配置)流不支持仿真,其中,PR的相关知识请参考该篇文章:谈谈赛灵思的局部重配置技术。Vivado设置当前工程为PR模式的一个标志是在Flow Navigation->PROJECT MANAGER里会显示Partial Reconfiguration Wizard,如下图。如果设置了PR模式,则无法退回普通模式,所以如果想对当前工程进行仿真,请重新新建工程。
2、
问题:对编写好的例程进行综合与实现后,出现问题:ERROR: spawn error: no error.
分析及解决:出现这个问题时,只要把该工程关闭,并重新打开,然后再次进行综合与实现即可解决。具体原因暂不明确。
3、
问题:对程序进行实现(implement)时,出现问题:[Place 30-574] Poor placement for routing between an IO pin and BUFG. 具体如下:
[Place 30-574] Poor placement for routing between an IO pin and BUFG.
If this sub optimal condition is acceptable for this design,
you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file
to demote this message to a WARNING.
However, the use of this override is highly discouraged.
These examples can be used directly in the .xdc file to override this clock rule.
< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets reset_IBUF] >
reset_IBUF_inst (IBUF.O) is locked to IOB_X0Y82
and reset_IBUF_BUFG_inst (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y1
分析及解决:出现这个问题是因为程序配置的时钟输入IO口不是晶振引出的IO口,违反了时钟配置规则,导致出现上面的错误,此时可在生成的.xdc文件中加入下面语句即可(其中,inClk32M_IBUF是违反时钟配置规则的时钟输入端口):
set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets inClk32M_IBUF]
(该语句的作用是对该时钟IO口禁用时钟配置规则)
4、
问题:设置的管脚或变量出现多驱动问题,即多个管脚或多个变量存在多个赋值或多个驱动导致管脚或变量类型不明确,输入输出方向不明确,具体如下图:
分析及解决:根据错误提示可知,是In9218data[13:0]存在多驱动问题,方法是:找到该管脚的所有位置,判断是否存在管脚用混,管教名用错地方等情况。经过查找发现,在一个调用模块中,我把模块的数据输入和数据输出都用成了In9218data,导致“实现”时出现多驱动问题,经过修改,完成了“实现”和“生成比特率”。