2

我需要将 4 位数字的符号扩展为 32 位数字。我尝试像这样重复 MSB 28 次:

assign x={28'b{a[3]},a[3:0]};

但是,我收到一个错误:

“{”附近的语法错误

x定义为:wire [31:0] x ;

a定义为:input [3:0]a;

这种连接是错误的吗?

4

1 回答 1

6

您需要摆脱'b并添加另一对{}

assign x = { {28{a[3]}}, a};

请参阅IEEE Std 1800-2012的第 11.4.12.1 节“复制运算符”。

于 2015-10-29T01:14:35.767 回答