2

我想使用复制运算符 {} 在特定时间复制一个位,但我只得到我想要的第一位,而其他位是零,无论该位是零还是一。

module(logic output [7:0] a);
assign a={8{1}};
endmodule

我得到一个等于 00000001 不是 11111111

4

1 回答 1

3

在 Verilog 中,无基础的文字(例如1)是 (a) 十进制的,(b) 有符号的和 (c) 32 位的。由于(c),

{8{1}}

是相同的

{8{32'sb00000000000000000000000000000001}}

这是一个 256 位数字,然后在分配给a. 这就是你得到a等于的原因8'b00000001

你需要

{8{1'b1}}
于 2019-04-01T16:09:20.687 回答