1. 株式会社PALTEK
  2. TECHブログ
  3. 技術情報
  4. System Verilogの基礎知識【その2】

TECHブログ

System Verilogの基礎知識【その2】

System Verilogの基礎知識【その2】

みなさん、こんにちは。
System Verilogは検証用に使用されている場面が多いですが、筆者はデザイン開発への浸透はまだまだだなと感じています。

Verilogを使用されていた方にとっては、System Verilogは上位互換なので、入りやすいかと思います。

「記述の簡略化」、「その簡略化によって防げる記述ミス」など多くのメリットがあるため、本ブログでは前回に引き続きSystem Verilogで便利になった内容を記載していきます。

目次

moduleの信号接続について

System Verilogではmoduleの信号接続の記述をできる限り簡略化することが可能になりました。
Verilogと比較してみましょう。

Verilogの場合

左右にスクロールしてご覧ください
module_name instance_name (
    .port_name_A   ( net_name_A ),
    .port_name_B   ( net_name_B ),
    .port_name_C   ( net_name_C ),
);

System Verilogでは、ポート名とネット名が同一の場合、ネット名の省略ができるようになっています。
以下に例を記載します。

System Verilogの場合

左右にスクロールしてご覧ください
module_name instance_name (
    .por_tname_A,
    .por_tname_B,
    .por_tname_C,
);

さらに、ここまで省略できます。

左右にスクロールしてご覧ください
module_name instance_name (
    .*
);

注意として、省略した場合、宣言しているポート名と同一のネット名を自動で接続してしまいます。
意図したデザインであるかの確認が必要になるため、実際の記述ではあまりおすすめできません。あくまで簡略化という内容になります。

従来(Verilog)の記述方法は、問題なく使用できますので安心してください。
また、ポート名と不一致のネット名の接続を行う場合は、従来の記述を使用しましょう。

過去のRTLの流用だったり、設計者のこだわりだったり、複数人での設計した場合などがあるため、
moduleの信号接続に関しては、従来(Verilog)のままで使用した方がよさそうですね。

bit幅の簡略化

次に、bit幅の簡略化について紹介します。

Verilogの場合

左右にスクロールしてご覧ください
wire  [3:0]      data_a;
wire  [7:0]      data_b;
assign data_a = 4'b0101;
assign data_b = 8'hAA;

System Verilogの場合

左右にスクロールしてご覧ください
logic  [3:0]      data_a;
logic  [7:0]      data_b;
assign data_a = 'b0101;
assign data_b = 'hAA;

これは、便利な面もあるかと思いますが、代入先のbit幅の違う場合も接続できてしまいます。接続ミスをなくすために従来の記述の方が無難だと思います。

packageについて

他には、packageでしょうか。
packageは、各モジュール内で使用する定数、定義などを共有で使用するための記述になります。
packageについては、VHDLでは使用できましたが、Verilogではありませんでした。
System Verilogでは、使用ができるようになっています。
VHDLを使用してきた人は勝手がわかると思いますが、Verilogのみ使用してきた人は、慣れる必要があるかと思います。

どんな記述するの?になるので、詳細については、別の機会に記載していこうと思います。

おわりに

いかがでしたでしょうか。System Verilogの基礎知識についてご理解いただければ幸いです。

次回は、検証時(System Verilog)に便利になった話をよく聞きますので、その辺の内容をお伝えできればと思います。


弊社ではFPGA設計や回路図設計、レイアウト設計、ソフトウェア設計、筐体設計などを受託開発しています。
サービス内容をWEBサイトに掲載していますので、ぜひご覧ください。

設計受託・ODMの概要については
こちら

FPGAの活用に際して設計検討などありましたら、お気軽にお問い合わせください。

FPGAの活用・設計検討の
お問い合わせはこちら

最後までお付き合いいただきありがとうございました。

関連ブログ