EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 明德扬FPGA科教 于 2020-2-23 08:48 编辑
. s* h# {- f7 [5 C2 T% J# W; O% o Q: g, g
在综合时发现会有很多如下警告出现 5 `% ^7 K% R9 Y' Z' _; T
意思是该信号的值始终为0,在优化过程中可能被优化。 但是该信号为数据输入,是不可以被优化的,所以找到该代码处查找问题。 ![]() 检查代码后,在此always块中并未发现f2p_data_in信号的书写有何问题。所以尝试查找是否是与f2p_data_in信号相关或者相连接的信号出现问题,导致该警告的出现。 , y0 U3 q9 [3 Y7 Z2 _4 a
从代码可以分析,f2p_data_in一直为0,有可能是条件一直没满足,也有可能是条件满足的时候,data_out一直为0。 情况不太明确,先排除是不是data_out的影响。方法如下:将图中1和2处的data_out信号改成固定输入值,16’hffff,和 16’h0000 ,修改后重新综合发现之前出现的警告并未出现。这说明了条件是有满足的时候的,问题应该出现在data_out信号上。 然后找到data_out输出模块查看问题。 ![]()
4 g' e) n {# j. C
. k! ?+ f/ d: [& r6 q0 z此always块就是对data_out这个输入信号打2拍。按照前面的思路,将图中rx_done位置修改为1,查看情况是否与data_out有关(将之前给f2p_data_in赋固定值的操作取消)。 重新综合后发现,警告也没有出现,说明该警告的生成和data_out无关,而是与条件rx_done信号有关,可能该信号一直为0。 下一步找到rx_done信号模块查找问题。 + h- L: U* c( A J# l
![]() 在检查该模块时发现,rx_done为1的条件并不成立,所以rx_done一直无法为1,导致后续data_out一直输出为0。 总结: 1. 对于警告等信息,一定要读懂,并理解其含义。例如本课说某信号一直为0,这是问题,那为什么?则是要根据这个含义去分析。 2. 对于难以分析的,可以尝试修改代码,以方便验证。注意,这只是为了验证某种设想,验证完后,代码要改回来。 |