VerilogHDLでbit幅が異なるSigned信号への代入方法

2022年12月8日

やりたいこと

  • VerilogHDLでbit幅が異なり、しかもそれぞれの信号のbit幅をparameterで指定している符号付き信号(Signed信号、最上位bitが政府を示す信号)を代入したい
  • parameterwire宣言は下記の通りで、abを代入したい想定
localparam WIDTH_A = 32
localparam WIDTH_B = 16

wire [WIDTH_A-1:0] a;
wire [WIDTH_B-1:0] b;

方法

assign a = {{(WIDTH_A - WIDTH_B){b[WIDTH_B - 1]}} , b}
  • bの最上位bitの値(:b[WIDTH_B])をWIDTH_A-WIDTH_Bの分だけbの上位に連結させてaに代入している
  • { }の使い方についてはこちら:VerilogHDLで{ }の使い方について

参考サイト