スポンサーサイト

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

SystemVerilog:enumでの順序名記述

列挙リストにおいて、名前+数値の場合には
以下のような記述をすることで、指定できます。

記述フォーマット:hoge[N], hoge[N:M]

○サンプルコード
 1|module testbench;
 2|  typedef enum { NO[5], NAME[6:10], HOGE } enum_t;
 3|
 4|  function void hoge(enum_t in);
 5|    case(in)
 6|      NO0    : $display("--- Serect : enum(NO0   ) ---"); 
 7|      NO1    : $display("--- Serect : enum(NO1   ) ---"); 
 8|      NO2    : $display("--- Serect : enum(NO2   ) ---"); 
 9|      NO3    : $display("--- Serect : enum(NO3   ) ---"); 
10|      NO4    : $display("--- Serect : enum(NO4   ) ---"); 
11|      NAME6  : $display("--- Serect : enum(NAME6 ) ---"); 
12|      NAME7  : $display("--- Serect : enum(NAME7 ) ---"); 
13|      NAME8  : $display("--- Serect : enum(NAME8 ) ---"); 
14|      NAME9  : $display("--- Serect : enum(NAME9 ) ---"); 
15|      NAME10 : $display("--- Serect : enum(NAME10) ---"); 
16|      HOGE   : $display("--- Serect : enum(HOGE  ) ---"); 
17|    endcase
18|  endfunction
19|
20|  initial begin
21|    enum_t tmp;
22|    tmp = NO0   ; hoge(tmp);
23|    tmp = NO1   ; hoge(tmp);
24|    tmp = NO2   ; hoge(tmp);
25|    tmp = NO3   ; hoge(tmp);
26|    tmp = NO4   ; hoge(tmp);
27|    tmp = NAME6 ; hoge(tmp);
28|    tmp = NAME7 ; hoge(tmp);
29|    tmp = NAME8 ; hoge(tmp);
30|    tmp = NAME9 ; hoge(tmp);
31|    tmp = NAME10; hoge(tmp);
32|    tmp = HOGE  ; hoge(tmp);
33|    $finish(1);
34|  end
35|
36|endmodule:testbench

○実行結果
# vsim -L work -do {run -all; quit} -c testbench
# Loading sv_std.std
# Loading work.testbench
# run -all
# --- Serect : enum(NO0 ) ---
# --- Serect : enum(NO1 ) ---
# --- Serect : enum(NO2 ) ---
# --- Serect : enum(NO3 ) ---
# --- Serect : enum(NO4 ) ---
# --- Serect : enum(NAME6 ) ---
# --- Serect : enum(NAME7 ) ---
# --- Serect : enum(NAME8 ) ---
# --- Serect : enum(NAME9 ) ---
# --- Serect : enum(NAME10) ---
# --- Serect : enum(HOGE ) ---
# ** Note: $finish : sample.sv(33)
# Time: 0 ps Iteration: 0 Instance: /testbench

というような感じです。
関連記事

コメントの投稿

非公開コメント

プロフィール

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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。