スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Verilog HDL][SystemVerilog] assign記述で「,」でセレクタ記述

第11回 SystemVerilog読書会 内で、気になる assign記述があったので試してみました。


LRM P198-199の記述になります。
少し雑に書いて試してます。


  • サンプルコード
  •  1|module testbench;
     2|
     3|  logic[3:0] in1, in2, in3, in4;
     4|  logic[1:0] sel;
     5|  tri[3:0]   data;
     6|
     7|  assign
     8|    data = (sel == 0 )? in1 : 'bz, 
     9|    data = (sel == 1 )? in2 : 'bz, 
    10|    data = (sel == 2 )? in3 : 'bz, 
    11|    data = (sel == 3 )? in4 : 'bz;
    12| 
    13|  initial begin
    14|    in1 = 1; in2 = 2; in3 = 3; in4 = 4;
    15|    sel = 0; #10; $display("data = %0d", data);
    16|    sel = 1; #10; $display("data = %0d", data);
    17|    sel = 2; #10; $display("data = %0d", data);
    18|    sel = 3; #10; $display("data = %0d", data);
    19|    sel = 0; #10; 
    20|  end
    21|
    22|endmodule:testbench


  • 実行結果
  • Model Technology ModelSim ALTERA vlog 10.1d Compiler 2012.11 Nov  2 2012
    -- Compiling module testbench
    
    Top level modules:
        testbench
    vsim -c -L work testbench -do "run -all; quit"
    Reading /home/kocha/tools/modelsim/13.0/modelsim_ase/tcl/vsim/pref.tcl 
    
    # 10.1d
    
    # vsim -L work -do {run -all; quit} -c testbench 
    # Loading sv_std.std
    # Loading work.testbench
    # run -all 
    # data = 1
    # data = 2
    # data = 3
    # data = 4
    #  quit 
    


コードの 7行目〜11行目になるのですが。
こんな記述出来るとは知りませんでした。


このコードを Verilog HDL用に書いてみると(assign部分は変えず)
同じ動作だったので、Verilog HDLから出来たんですね。。。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
07 | 2017/08 | 09
- - 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
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。