使用连接符号扩展名

时间:2015-10-28 23:09:09

标签: concatenation verilog signed sign-extension

我需要将符号扩展从4位数转换为32位数。 所以我尝试重复MSB 28时间看起来像这样:

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

但错误是:

  

" {"

附近的语法错误

x定义为:wire [31:0] x ; a定义为:input [3:0]a;

是错误实现的连接,还是这个特定错误的原因是什么?

1 个答案:

答案 0 :(得分:5)

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

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

请参阅IEEE Std 1800-2012,第11.4.12.1节和第34页;复制运算符"。