1. truncated value with size 32 to match size of target(10)
Verilog代码如下:
reg [9:0] send_cnt;
always @(posedge clk or negedge rst)
if(!rst)
send_cnt < 'b0;
else
send_cnt <= send_cnt + 'b1;
编译时产生上述警告。
警告原因:‘b1和'b0 默认为32位 与send_cnt 定义的10位宽不符。
解决方案:
reg [9:0] send_cnt;
always @(posedge clk or negedge rst)
if(!rst)
send_cnt < 1'b0;
else
send_cnt <= send_cnt + 1'b1;
2 hierarchies have connectivity warnings - see the Connectivity Checks report folder
原因:在编译之后,警告中“hierarchies”,一般情况下是例化时出现的问题。一般例化时,要是哪个连线没引出,没接上,或者是位宽不匹配就会出这个警告。
查找原因:点击图中的工具栏 compilation report,然后在Analysis & Synthesis 文件中找到 connectivity checks,点击即可查看到说明例化时哪里出现问题,如图中Warning后所示:位宽不匹配(32位的输入端口表达式比它驱动的16位输入端口宽)。
在设计中源代码如下:
parameter CV = 'd512;
test inst_test(
.clk(clk),
.rst(rst),
.height_i(CV)
);
解决办法:
将原代码改为:
parameter CV = 16'd512;
test inst_test(
.clk(clk),
.rst(rst),
.height_i(CV)
);
再次编辑,该警告消失。
3 Warning (18236): Number of processors has not been specified which may cause overloading on shared machines. Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance.
原因:未指定处理器数量,这可能导致共享计算机上的过载。
解决方案:
quartus中打开tools,选择options,然后选择prosessing,修改如下:
然后打开该工程的qsf文件:在任意一行下面填上
set_global_assignment -name NUM_PARALLEL_PROCESSORS 4
再次编辑即可。