1、综合中出现警告:
[Synth 8-5788] Register Packet_header_reg in module RXDDSP is has both Set and reset with same priority. This may cause simulation mismatches.
解决方法:在复位时将寄存器Packet_header_reg的初值设置为0;
2、redeclaration of ansi port ClkOut is not allowed
解决方法:在程序设计过程中出现了变量的重复定义,把重复定义的变量去除即可
3、[Synth 8-3352] multi-driven net count[9] with 2nd driver pin 'count_reg[9]/Q' ["C:/Users/Administrator/Desktop/DPC-SRIO/Dpc_Pinyu2/TEST_SQRT/TEST_SQRT.srcs/sources_1/new/SQRT_test.v":72]
这个错误的原因是在多个always块中对同一个reg型寄存器赋值,仔细检查即可排除
4、[VRFC 10-3427 ]illegal recursive design instantiation
在做SRIO功能仿真时,出现以上的提示错误,但检查了好久没发现问题,最后把IP核配置界面的IP核名字改了一下成功了,特此记录一下。
再次遇到了这个问题,根本原因是工程中有两个模块的名字相同了,因此一定要仔细检查,不能使任意两个模块的名字相同。
5、[Synth 8-3352] multi-driven net Q with 2nd driver pin 'GND' ["C:/Users/15003813081/Desktop/ZYK/CONV_project2/CONV_m_3_3/CONV_28_3.srcs/sources_1/new/CONV_top.v":46]
出现此错误的原因:对一个reg型变量在多个always块里面赋值,也可能是对同一个wire型变量多次赋值造成冲突;
6、仿真时,xvlog文件中提示这个错误port connections cannot be mixed ordered and named
出现这个错误的原因是在例化模块的时候括号里面最后一行多了个逗号;
7、Failed to deliver one or more file(s).
出现这个错误的原因是文件的路径太长了,把文件的路径改短就行了;
8、仿真时自己停止,点击继续后就报错,原因有以下几个方面:
个人在仿真SRIO时,由于把仿真控制信号设置成了FALSE,因此导致仿真一会就停止了;
以下是在仿真DDR3的时候,仿真到101us时候,自己停止,然后点击继续时出现:
A fatal run-time error was detected. Simulation cannot continue
查看消息记录:
Iteration limit 10000 is reached.
查找原因是:组合逻辑的always中使用了非阻塞赋值;修改之后就好了
9、ERROR: [USF-XSim-62] 'elaborate' step failed with error(s). Please check the Tcl console 'D:/XILINX_VIVADO/project/project_FIFO/project_FIFO.sim/sim_1/behav/xsim/elaborate.log' file for more information.
解决方法:打开错误信息里面提示的elaborate.log,可以看到里面提示的错误:
Concurrent assignment to a non-net dout is out :意思是在编写测试文件时候,输出的端口必须定义成wire类型,不管在顶层模块里面输出端口定义成了什么类型,在测试文件中必须定义成wire型,顶层模块里面输入为wire型的端口在测试文件里面必须要定义成reg型。
10、
[Synth 8-434] mixed level sensitive and edge triggered event controls are not supported for synthesi
[Synth 8-91] ambiguous clock in event control
[Synth 8-434]不支持混合级别敏感和边缘触发事件控制
[Synth 8-91]事件控制中的模糊时钟
这是因为always敏感列表里的信号在always块里面没有出现导致,注意:always敏感列表里面的信号在块里面必须出现否则会出现上述所提示的情况
11、[Synth 8-27] use of clock signal in expression not supported ["D:/XILINX_VIVADO/project/project_5_IFCASE/project_5_IFCASE.srcs/sources_1/new/TOP.v":42]
module TOP(sel,clk,rst,q);
input clk,rst;
input [1:0] sel;
output reg q;
always@( posedge rst or negedge clk )
if(clk)
begin
q <= 0;
end
else
begin
if (sel[0])
q<= clk;
end
endmodule
上述语句不会出现逻辑错误·,因为软件把rst 综合成时钟信号,时钟信号不能出现在表达式中,clk 不是时钟信号
如果没有·posedge ,clk和rst不再是敏感信号
module TOP(sel,clk,rst,q);
input clk,rst;
input [1:0] sel;
output reg q;
always@( posedge rst or negedge clk )
if(clk)
begin
q <= 0;
end
else
begin
if (sel[0])
q<= rst;
end
endmodule
上述语句会出现逻辑错误·,因为软件把rst 综合成时钟信号,时钟信号不能出现在表达式中
如果去掉posedge和negedge就不会出现上述的逻辑错误
不支持在表达式中使用时钟信号