System Verilog tutorial @ デザインガイア

– 曖昧のない言語:- 検証を効率化 – 高度抽象化: TLM (Transaction Level Modeling) 構造のサポート。

– 記述量削減: 抽象度をあげるのではなく、RTL の記述効率を削減 (concise RTL)
– 曖昧のない言語: Verilog の信号競合は大問題
– 検証を効率化:
— advanced testbench 構文 (C++ like で、クラスが使える) 、assertion / coverage 構文
– 高度抽象化:
— HDL のピンモデル (in/out/inout + 0/1/X/Z) では抽象度があがらない
— TLM (Transaction Level Modeling) 構造のサポート (interface 構造)
— PLI に代わる DPI (Direct Programming Interface) で、C/C++ の function をそのまま verilog の function として呼ぶことが可能
[ 記述編 ]
Logic 型 (4値: 0, 1, X, Z)
– reg, wire の区別なく書ける
– wire として使用した場合にはドライバがひとつに限定され、race condition を防ぐ
Bit 型 (2値: 0, 1)
– シミュレーションの高速化
– 初期値は 0
typedef
– 可読性向上。わお。
– typedef logic[31:0] word_t; word_t A, B; みたいな感じ。
struct, enum
– C のといっしょ
多次元配列
– reg [3:0][7:0] mem [9:0] とかすると、byte enable [3:0] つきメモリみたいになる
interface
– インタフェイスを定義しておいて、各モジュールの宣言ではその名前だけかいてつなげる
always_comb / latch / ff
– 組み合わせ回路かそうじゃないのかをズバっと書ける。
– always_comb は sensitivity list がいらない!
unique/priority, case/if
– priority つきかなしかを指定できる
[ 検証編 ]
property
– やっていいこと悪いこと(禁止状態)、を記述

コメントを残す