Writing The Testbench
Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası. Ders 45 / 90.
Görev
Şimdi half adder'ın doğru çalışıp çalışmadığını test etmemiz gerekiyor. Test kodunu initial bloğunun içine ekleyin.
Önemli: Testi eklemeden önce, testin düzgün çalışabilmesi için modül portlarını değiştirmeniz gerekir.
Yapılacaklar:
1. Adım: Port bildirimlerini değiştirin
input a, bifadesinireg a, bolarak değiştirin (noktalı virgülü kullanın)output sum, carryifadesiniwire sum, carryolarak değiştirin (noktalı virgülü kullanın)- Modül portlarını tamamen kaldırın (modülde
( )bulunmamalıdır)
2. Adım: Test kodunu ekleyin
- Bir
initial beginbloğu ekleyin - Bloğun içine şunları ekleyin:
$display("a b | sum carry");
a = 0; b = 0; #1 $display("%d %d | %d %d", a, b, sum, carry);
a = 0; b = 1; #1 $display("%d %d | %d %d", a, b, sum, carry);
a = 1; b = 0; #1 $display("%d %d | %d %d", a, b, sum, carry);
a = 1; b = 1; #1 $display("%d %d | %d %d", a, b, sum, carry);
- Testi sonlandırmak için
$finish;ekleyin - initial bloğunu kapatmak için
endekleyin
Kendin dene
module half_adder (
input a,
input b,
output sum,
output carry
);
assign sum = a ^ b;
assign carry = a & b;
endmoduleTemeller bölümündeki tüm dersler
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 LogicKendi başına pratik yap: Online Verilog derleyicisi