Xilinx编程错误汇总

Xilinx编程错误汇总 Xilinx编程错误汇总1 编程类2 综合类3 实现类本文主要介绍Xilinx编程时一些常见的错误和解决方法。1 编程类错误1错误提示ERROR: [Vivado 12-2927] Could not find unique hierarchy node for -define_from ‘dynamic’.错误现象使用RTL的方式创建RM执行create_reconfig_module -name ${rm_name} -partition_def [get_partition_defs ${dynamic_name}] -define_from ${dynamic_name}语句出错解决方案执行create_reconfig_module -name ${rm_name} -partition_def [get_partition_defs ${dynamic_name}]与BD的方式不同不需要-define_from ${dynamic_name}错误2错误提示ERROR: [Common 17-69] Command failed: The partition definition ‘dynamic’ module name should match with ‘top’ name of any one of its reconfigurable module. Update the top of any of the reconfigurable modules to match the module name ‘dynamic’ of the partition definition.错误原因在执行create_reconfig_module -name ${rm_name} -partition_def [get_partition_defs ${dynamic_name}]定义完可重配置模块后未执行add_files -norecurse ${srcDir}/rtl/${dynamic_name}.v -of_objects [get_reconfig_modules ${rm_name}]添加RM的文件与BD方式不同BD是在原始设计上修改。错误3错误提示ERROR: [Vivado 12-4899] Partition Cell ‘design_1_i/rp_slr0’ is not instance of ‘design_1_rp_slr0’ which is partition_def of Reconfigure module ‘rp_slr0_inst_0’错误原因执行完generate_target all [get_files design_1.bd]后没有更新文件就执行create_pr_configuration -name config_1 -partitions [list design_1_i/rp_slr0:rp_slr0_inst_0]解决方法执行完generate_target all [get_files design_1.bd]后先执行update_compile_order -fileset sources_1然后再执行create_pr_configuration -name config_1 -partitions [list design_1_i/rp_slr0:rp_slr0_inst_0]错误4错误提示CRITICAL WARNING: [Project 1-678] ${top_name}_i/${dynamic_name} is not valid instance错误现象在执行set_property SCOPED_TO_CELLS {${top_name}_i/${dynamic_name}} [get_files ${projDir}/${projName}.runs/impl_1/${dynamic_name}_${rm_name}_routed.dcp]和link_design -reconfig_partitions {${top_name}_i/${dynamic_name}}时未识别{${top_name}_i/${dynamic_name}}解决方法定义变量set top_inst ${top_name}_i命令改为set_property SCOPED_TO_CELLS ${top_inst}/${dynamic_name} [get_files ${projDir}/${projName}.runs/impl_1/${top_inst}_${dynamic_name}_${rm_name}_routed.dcp]和link_design -reconfig_partitions ${top_inst}/${dynamic_name}错误5错误场景执行set_property -name {xsim.elaborate.xelab.more_options} -value {-timescale 1ps/1ps -sv_lib ${srcDir}/sim/vitisnetp4_drv_dpi -sv_root } -objects [get_filesets sim_1]设置仿真参数错误现象错误原因大括号中不会做替换和计算所以变量${srcDir}未识别当成字符串处理了。错误解决将-value的{}换为“”同时为了避免-sv_root后“”的影响添加转义字符完整的命令为set_property -name {xsim.elaborate.xelab.more_options} -value -timescale 1ps/1ps -sv_lib ${srcDir}/sim/vitisnetp4_drv_dpi -sv_root \\ -objects [get_filesets sim_1]错误6错误场景在使用Block创建工程时分配内存空间失败出现下图错误。错误原因复制cu_axi1引脚出了其它引脚导致配置信息重复所以统一分配地址时出错。错误解决删除所有cu_axi相关引脚从相应接口使用Make External命令重新生成引脚。2 综合类错误1错误现象在Ubuntu20.04.6系统下进行P4程序的仿真时提示libgmpxx.so.4: cannot open shared object file错误解决该文件在Vivado的安装目录下有尝试过使用export LD_LIBRARY_PATH命令或着直接将文件复制到执行脚本的文件夹但是没有效果。最后执行sudo apt install libgmpxx4ldbl解决。错误2错误提示错误原因BD文件没有创建Wrapper就直接综合错误3错误提示综合后提示timing loop解决方法使用注释的方法对提示错误的文件逐步排查找到出错的语句和逻辑但出错的地方也可能不是这条语句而是跟该变量相关的其它语句。错误4错误现象AXIS Interconnect输入端的数据正常但输出端却不对而且这种现象只在下载程序和第一次传输数据后续的数据传输都是正确的。需要说明的是Interconnect存在FIFO。Interconnect还可能存在异常的数据错位一般是两个接口的时钟不匹配。解决方法下板测试时在传输数据之前先对Interconnect进行复位。在仿真时复位的时间也要足够长复位时间不足复位时间足够错误5错误提示综合时报下述错误指示的代码片如下图解决方法因为for循环里使用了stage作为控制条件而stage在这个if语句里有多种值所以固定每个if语句里stage只有一个值使用多个if语句。不能通过generate语句去定义localparam此方法定义的localparam只能在generate语句内使用generate语句外定义的参数不存在。错误6错误提示综合时报下述错误指示的代码片如下图解决方法去除路径并将初始文件加入工程中3 实现类错误1错误提示Vivado Implementation : ERROR: [Place 30-675] Sub-optimal placement for a global clock-capable IO pin and BUFG pair错误原因芯片选择的时xcvu23p时钟的引脚约束使用的是xcvu37p的导致时钟布局出现错误。错误2错误提示产生位流文件时提示Unspecified I/O Standard: 68 out of 198 logical ports use I/O standard (IOSTANDARD) value ‘Default’instand of a user assigned specific value。错误原因先点击左侧导航栏的Open Implemented Design再点击菜单栏的Layout I/O Planning修改错误的I/O Std。发现I/O名称后面都有_0原来是Block Design的引脚是_0而约束文件没有_0修改Block Design的引脚名。重新生成输出文件、封装、综合、编译、生成位流文件。如果是生成位流文件的过程中出现了错误为了不重新进行综合和编译可以点击下方的Design Runs选中synth_1 Force Up-to-Date。错误3错误提示Bitstream generation not allowed for OOC modules: Cannot generate bitstream for Out-of-context module implementation.错误场景例化P4 IP的例子Vivado综合和实现正常但是生成bit文件时报错错误解决删除下图中的-mode out_of_context错误4错误提示在生成Bitstream时提示错误分析在TCL命令行执行下述命令查看是哪个信号没有布线成功从下图可以看出是axi_clock_converter这个模块的一些信号没有布线成功。错误分析检查一下综合实现过程中的信息发现有Critical Warning有一些信号没有连接但这些信号大部分AXI Lite总线应该没有才对。错误解决检查axi_clock_converter IP的设置发现协议选择的是AXI4将其改为AXI Lite同时将awprot和arprot这两个信号赋值为0。错误5错误提示实现时错误提示Insufficient Routing: A signficant portion of the design is not routed研制警告95311 signals failed to route due to routing congestion。解决方法改变实现的策略-错误6错误现象下载bit文件后提示下图所示错误错误原因所有的ILA的时钟使用的都是CLK_WIZ产生的时钟而CLK_WIZ的源时钟为XDMA产生的用户时钟所以在下载程序后CLK_WIZ没有及时产生用户时钟导致ILA无法显示。也不是一定会出现。解决方案忽略该警告下载程序后重启系统使系统识别到PCIe设备XDMA正常初始化产生用户时钟然后在Vivado界面点击Refresh Device即可。或者将其中一个ILA的时钟连接到XDMA的用户时钟上。错误7错误现象AXI Interconnect的Slave端和Master端时钟频率不同Master端接受到了存储器给的arready信号但Slave端却没有输出arready信号。解决方案冷启系统可以解决错误8错误现象下载程序后提示某些ILA没有与下载的程序不符解决方案不用修改程序点击Generate Bitstream重新生成Bit文件不会重新执行综合和仿真错误9错误现象连接FPGA显示already in use解决方案执行ps aux | grep viavado显示现存的vivado进程执行kill 进程号关闭进程后重新打开vivado错误10错误现象使用HBM出现下述警告。错误解决 输入的参考时钟ref_clk路径添加Utility_Buffer模块Buf type设置为BUFG。错误11错误现象下板测试结果与理论结果不一致如下图错误原因查看编译结果存在latch如下图解决方案修改代码消除latch后错误消失。latch产生的原因是提示的变量在某些情况下没有赋值。