Verilog チュートリアル
このページでは、Verilogをこれから学ぼうとする人、VHDLから移行する人向けにVerilogを紹介します。
1.Why HDL?
どうしてHDL(ハードウェア記述言語)なのでしょう?
筆者は、87年から、ディスクドライブ用のLSIを設計してきました。会社には、設計設備がありませんので、当時の設計スタイルは、以下のようでした。
テストパターンの期待値が1パターンでもあっていなければ、サインオフできません。
完全に期待値に合致するまで、修正を繰り返すのですが、テストパターン作りが大変なのです。毎回、ラインプリンタで出力される結果は、ダンボールで10Kg位あったでしょう。なにより、1パターン修正すると、その後のタイミングも狂ってしまい修正に時間がかかったものです。その頃から、HOSTをダイナミックに記述できる手段はないものかと考えていました。
この点HDLなら、LSIの周辺をダイナミックに応答を記述できます。また、人手の論理圧縮もしなくてすみます。(これはHDLによる標準化で論理合成ツールが実用になってきただけですが。) 2ndベンダになっても、記述を変える必要はほとんどありません。
95年頃の設計から、Verilogに移行しました。というのは、設計するゲート数が一桁上がって5万ゲート程度になったからです。設計者二人で、半年間半導体屋さんのデザインルームにこもって設計しました。HDL行数にして、2万行位だったと思います。回路図は、非同期回路の部分だけ出力してもらってチェックしました。テストパターンは、100万パターン位でサインオフしました。(当時、全パターンを流すのに2時間以上かかったと思いますが、現在ではVeritakでも5分位で終わるでしょう。PCの速度向上のおかげです。)
従来方式でやっていたら、想像不可能な時間がかかったと思います。HDLの利点は、このように、生産性の向上に尽きます。
ただ、当時でも、仕様を入れれば、回路がでてくる、みたいな神話がありました。HDLの設計は、RTL(REGISTER TRANSFER )を人間が行うものです。設計のエッセンスに注力できるようなツール環境であって、設計の自動化を行うものではありません。これは、SystemVerilog(System-Cとは別物)になっても変わりません。