完全な警告:
警告(10230):digital_clock.v(75)でのVerilog HDL割り当て警告:ターゲットのサイズと一致するようにサイズ32の値が切り捨てられました
理由:
Verilogカウントプログラムを作成する場合、多くの人々または多くのチュートリアルは次のように記述します。
always @(posedge clk or negedge rst_n)begin
if(!rst_n)begin
cnt <= 0;
end
else if(add_cnt)begin
if(end_cnt)
cnt <= 0;
else
cnt <= cnt + 1;
end
end
cnt <= cnt + 1の1はビット幅を指定しません。システムは32ビットのビット幅を自動的に割り当てます。これによりリソースが浪費され、コンパイラーが警告します。
解決する:
cnt <= cnt + 1'b1;と記述します。
変更後:
always @(posedge clk or negedge rst_n)begin
if(!rst_n)begin
cnt <= 0;
end
else if(add_cnt)begin
if(end_cnt)
cnt <= 0;
else
cnt <= cnt + 1'b1;
end
end