FPGA Verilog 警告合集(持续更新):
在FPGA中,有些人在debug的过程中往往只关心出现了什么错误,但选择性的忽略警告,因此很多时候会出现程序正常运行但电路不工作的情况,其实这个时候往往警告会提醒你电路逻辑的异常,因此良好的编码习惯应该关注警告对电路的影响,分析那些警告是无影响的,哪些警告会使电路综合分析时出错,哪些警告会导致电路出现异常。巧用 警告,将会大大提高你的debug能力。
本文主要将警告分为两类:无影响的警告和有影响的警告。
有影响警告合集:
1. Warning (10034): Output port “o_en” at FIR_Filter.sv(6) has no driver
警告原因:输出端口o_en无驱动逻辑,其原因是因为定义了输出端口o_en,但代码中与这个输出端口逻辑无关,从电路的角度来 讲,就是没有内部的连接线连接到输出端口,从而导致驱动逻辑,当然如果没有用到这个端口信号,是对电路综合无影响 的,但更多的情况是你忽略这个端口的驱动逻辑。
措施: 查看程序的逻辑
2. Warning (10230): Verilog HDL assignment warning at speed_detect.sv(53): truncated value with size 17 to match size of target (16)
警告原因: 位宽不匹配的问题,非阻塞赋值或阻塞赋值的左右两边常量的位宽不一致。 这将会导致数据的溢出或缺失。 因此需要反复查 证位宽是否匹配。
措施: 修正位宽的大小
3.Warning (12241): 2 hierarchies have connectivity warnings - see the Connectivity Checks report folder
**警告原因:**工程中顶层文件的数据类型的大小未声明或数据类型的位宽与底层模块不匹配,导致警告出现,因此电路内部出现连接异常。
**措施:**查看警告报错的位置,这个时候就要充分的利用分析综合报告工具了,操作流程:点击Analysis & Synthesis,以及其底下的子菜单 栏Connectivity Checks,如下图所示就可以本次工程分析综合后警告具体内容。
4.Warning (13024): Output pins are stuck at VCC or GND
**警告原因:**有些输出引脚置于高电位VCC或低电平GND,如果是期望生成这样的电路,则无影响,否则需要检查输出端口的逻辑问题。
措施:检查输出端口的逻辑问题。
无影响警告合集:
1.Warning (15714): Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details
**警告原因:**未分配引脚,无影响。分配引脚后,无警告。