設計抽象化レベル
CoddyのVerilogジャーニー「基礎」セクションの一部。レッスン 5/90。
デジタル設計では、同じ回路を異なる詳細度のレベルで記述できます。Verilogは、これらの任意の抽象化レベルで回路を記述できる言語です。それがVerilogを強力なものにしています!
これらがレベルです:
レベル 1: Behavioral
このレベルでは、回路がどのように動作するかではなく、何をするかを説明します。これは、「カウントアップ」や「2つの数をAddする」のような、機能や動作に焦点を当てています。
カウントや加算がどのように行われるかという内部の詳細は示されません。このレベルは人間の思考に最も近く、記述しやすいものです。
Level 2: RTL
このレベルでは、レジスタ間で data がどのように移動し、その data に対してどのような演算が行われるかを示します。データパスを確認できます。data はレジスタから加算器へ移動し、その後レジスタに戻ります。
これは、理解しやすさとハードウェアを作成するのに十分な詳細さのバランスがよいため、ほとんどのデジタル設計者が作業するレベルです。
レベル 3:Gate レベル
このレベルでは、AND、OR、XOR などの基本的な論理ゲートを使って回路を記述します。すべての接続が明示的に示されます。
このレベルは非常に詳細で、手作業で記述するのは困難です。通常は手作業で記述するのではなく、より高レベルの記述からツールによって生成されます。
重要な理由
- **高レベル** = 書きやすいが、制御性が低い
- **低レベル** = 書きにくいが、制御性が高い
- **RTL** は、ほとんどの設計作業にとって最適なバランスです
チャレンジ
行うこと:
- このコードを実行し、同じ操作が3つの異なるレベルでどのように記述されているかを確認してください:
自分で試してみよう
module abstraction_demo;
initial begin
$display("=== Design Abstraction Levels ===");
$display("");
$display("Level 1 (Behavioral):");
$display(" 'Add a and b' - no details how");
$display("");
$display("Level 2 (RTL):");
$display(" 'On clock edge, result <= a + b' - shows data flow");
$display("");
$display("Level 3 (Gate Level):");
$display(" 'XOR gates for sum, AND gates for carry' - actual gates");
$display("");
$finish;
end
endmoduleこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine Logic自分で練習してみよう: Verilogオンラインコンパイラ