Recap - Full Testbench
Parte da seção Fundamentos do Journey de Verilog da Coddy. Lição 78 de 90.
Desafio
Este desafio testa tudo o que você aprendeu sobre testbench: stimulus, display, monitor, dumpfile, dumpvars e tarefas do sistema. Você recebe um módulo de porta XOR para testar.
O que fazer:
Crie um testbench completo que:
- Declare sinais (
regpara as entradas,wirepara a saída) - Instancie a porta XOR com o nome
dut - Crie um arquivo de forma de onda chamado
xor_waveform.vcd - Despeje todos os sinais no testbench
- Imprima um cabeçalho: "Testing XOR Gate"
- Use
$monitorpara acompanhar time, x, y e z - Teste all four input combinations (00, 01, 10, 11) com um
#10delay entre cada uma - Imprima "Test complete" ao final
- Encerre a simulação com
$finish
Experimente você mesmo
module xor_gate (
input x,
input y,
output z
);
assign z = x ^ y;
endmodule
module testbench;
// TODO: Declarar reg para x e y
// TODO: Declarar wire para z
// TODO: Instanciar xor_gate com o nome dut
// Conectar .x(x), .y(y), .z(z)
initial begin
// TODO: Adicionar $dumpfile "xor_waveform.vcd"
// TODO: Adicionar $dumpvars (0, testbench)
// TODO: Adicionar $display "Testing XOR Gate"
// TODO: Adicionar $monitor para time, x, y, z
// Formato: "Time %0t: x=%b, y=%b, z=%b"
// TODO: Adicionar estímulo para todas as quatro combinações
// 00, 01, 10, 11 com atraso #10
// TODO: Adicionar $display "Test complete"
// TODO: Adicione $finish
end
endmoduleTodas as lições de Fundamentos
1Introdução
O que é VerilogHardware vs. SoftwareSeu primeiro móduloComentáriosNíveis de abstração de projeto4Operators 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 Challenge14Testbench Basics
What Is A TestbenchCreating StimulusDisplay And MonitorDumpfile And DumpvarsUsing System TasksRecap - Full Testbench3Number 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 LogicPratique por conta própria: Compilador de Verilog online