Verilog チュートリアル
集積回路の黎明期、エンジニアは座って実際にトランジスタとその接続を紙に描いて、シリコン上で製造できるように設計する必要がありました。より大きく複雑な回路は、より多くの技術者、時間、その他のリソースを必要とし、すぐに集積回路を設計するためのより良い方法が必要になりました.
VHDL エンジニアが目的のハードウェアの機能を記述し、自動化ツールがその動作を組み合わせゲートやシーケンシャル ロジックなどの実際のハードウェア要素に変換できるようにすることで、設計プロセスを強化するためにすぐに開発されました。 Verilog プロセスを簡素化し、ハードウェア記述言語を作成するために開発されました (HDL) より堅牢で柔軟です。現在、Verilog は、半導体業界全体で使用および実践されている最も人気のある HDL です。
Verilog はどのように役立つのですか?
Verilog は、その実装とテクノロジの詳細を隠すのに役立つ抽象レベルを作成します。
たとえば、D フリップフロップの設計では、ポジティブ エッジでトリガーされる FF を実現するためにトランジスタをどのように配置する必要があるか、および値をフロップにラッチするために必要な立ち上がり、立ち下がり、および clk-Q 時間についての知識が必要です。他の多くのテクノロジー指向の詳細の中でも。消費電力、タイミング、およびネットやその他のフロップを駆動する能力についても、トランジスタの物理的特性をより完全に理解する必要があります。
Verilog は、動作に集中し、残りは後で整理するのに役立ちます。
例
次のコードは、Verilog コードがどのように見えるかを示しています。コードの詳細については、次の記事で詳しく説明します。とりあえず、振る舞いが カウンターの説明です。コードは基本的に、up_down 信号が 1 の場合はカウンターをカウントアップし、その値が 0 の場合はカウントダウンします。また、信号 rstn が 0 になるとカウンターをリセットし、これをアクティブ LOW リセットにします。
module ctr (input up_down,
clk,
rstn,
output reg [2:0] out);
always @ (posedge clk)
if (!rstn)
out <= 0;
else begin
if (up_down)
out <= out + 1;
else
out <= out - 1;
end
endmodule
上記の単純な例は、カウンターがどのように機能するかを明確に示しながら、物理的な実装の詳細がすべて隠されていることを示しています。
ctr は module
です これはアップ/ダウン カウンターを表し、エリア、消費電力、およびパフォーマンスが最適化されたさまざまなスタイルのフロップから、デザインの実際の物理的な実装を選択することができます。それらは通常、ライブラリにコンパイルされ、設計プロセスの後の段階で EDA ツール内で選択できるようになります。
Verilog とは何かがわかったので、Verilog の学習を始めましょう!
Verilog