SystemVerilog:bit幅に左右されないall "1"代入記述

Alteraにあるオンライントレーニング「Quartus II による SystemVerilog のサポート」を見てて、SystemVerilogではすべてのbitに対して'1'を設定する記述が気になったので実際試してみました。
このオンライン・トレーニングは良いと思いますので、ぜひ見てみてください。

試したコードはこちら。
パラメータで出力データのbit幅を変えられるようにしています。
 1|module tb;
 2|
 3|  logic clk=0, xrst=0, en=0;
 4|
 5|  logic[3:0]  bit4_data;
 6|  logic[7:0]  bit8_data;
 7|  logic[10:0] bit11_data;
 8|
 9|  always #1 clk <= ~clk;
10|
11|  sample       bit4_sample (.*, .outdata(bit4_data));
12|  sample #(8)  bit8_sample (.*, .outdata(bit8_data));
13|  sample #(11) bit11_sample(.*, .outdata(bit11_data));
14|
15|  initial begin
16|    #10;
17|    $display("--- Initial bit4  value = 'b%b", bit4_data);
18|    $display("--- Initial bit8  value = 'b%b", bit8_data);
19|    $display("--- Initial bit11 value = 'b%b", bit11_data);
20|    xrst = 1; //リセット解除
21|    #100;
22|    en = 1;
23|    $finish(2);
24|  end
25|
26|endmodule
27|
28|module sample(clk, xrst, en, outdata);
29|  parameter BITWIDTH = 4;
30|  input  logic clk, xrst, en;
31|  output logic[BITWIDTH-1:0] outdata;
32|
33|  always @(posedge clk or negedge xrst) begin
34|    if(!xrst)   outdata <= '1; // {BITWIDTH{1'b1}}
35|    else if(en) outdata <= outdata - 1;
36|  end
37|endmodule
38|
実行結果はこちら。
sv_set1.png

というように、「'1」でOKなんですね。
私はコメントにあるような記述を前にしていましたね。
34|    if(!xrst)   outdata <= '1; // {BITWIDTH{1'b1}}
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数