使用花括号设置特定位的Quartus 2 verilog
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用花括号设置特定位的Quartus 2 verilog相关的知识,希望对你有一定的参考价值。
嗨,我是verilog的新手,我尝试将一个特定位从一个reg变量设置为另一个reg,但它对我不起作用。我究竟做错了什么?
reg [31:0] a;
reg [31:0] b;
initial begin
a =32'b0;
b =32'b1;
$display("current value of a = %32b ",a);
a ={b[5:0]};
$display("value of a %32b ",a);
#10 $finish;
end
从[0]到[5]的位应为1,但只有[0]变为1
答案
在你的代码b = 32'b1
产生{31{1'b0},1'b1}
,所以只有b[0]
等于一。
在SystemVerilog(check:IEEE1800-2012, 5.7.1 Integer literal constants)中,您可以使用单位值自动左边填充常数字数,即b = '1
将b
的所有位设置为1。
使用Verilog,只需为b
(即b = 32'b11111
)指定另一个值或将代码更改为以下:
a[4:0] = {5{b[0]}}
以上是关于使用花括号设置特定位的Quartus 2 verilog的主要内容,如果未能解决你的问题,请参考以下文章