スポンサーサイト

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

[SystemVerilog] task/functionの引数の書き方

第15回 SystemVerilog読書会 でふと思ったので、書きだしてみた。

※以下 taskで書いてますが、functionも同じです。


Verilog HDL-1995

1|task mytask2;
2|  output x;
3|  input y;
4|  begin
5|  reg x;
6|  reg y;
7|  //...
8|endtask


Verilog HDL-2001以降

  • Cライクな書き方が可能
  • task mytask1 (output x, input y);
      //...
    endtask
  • 連続した宣言も可能
  • z信号は outputになります。

    task mytask1 (output x, z, input y);
      //...
    endtask
  • reg 型のみが引数の型
  • task mytask1 (output reg x, input reg [4:0] y);
      ...
    endtask


SystemVerilog(2005以降)

  • reg 以外の型も使用可能
  • task mytask1 (output int x, input logic y);
  • 多次元配列も可能
  • // the resultant declaration of b is input [3:0][7:0] b[3:0]
    task mytask4(input [3:0][7:0] a, b[3:0], output [3:0][7:0] y[1:0]);
  • 初期値も宣言できます。
  • task mytask1 (output int x, input logic y = 10);

っとまぁ、うる覚えの部分もあるけど大体こんな感じかと。


本日 22:00よりSystemVerilog読書会開催しておりますので、
時間が合えば参加してください。


SystemVerilog読書会会場

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
05 | 2017/06 | 07
- - - - 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 -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。