Decoder Design
Parte da seção Fundamentos do Journey de Verilog da Coddy. Lição 85 de 90.
Desafio
Um decoder recebe um número binário como input e ativa exatamente um output com base nesse número. O output que é ativado é chamado de "one-hot" porque apenas um bit está quente (1), e todos os others estão frios (0).
Tabela-verdade (decoder de 2 para 4)
| Input (in) | out0 | out1 | out2 | out3 |
|---|---|---|---|---|
| 00 | 1 | 0 | 0 | 0 |
| 01 | 0 | 1 | 0 | 0 |
| 10 | 0 | 0 | 1 | 0 |
| 11 | 0 | 0 | 0 | 1 |
Interface do module
| Porta | Direção | Largura | Descrição |
|---|---|---|---|
in | input | 2 bits | input binário (0 a 3) |
out0 | output | 1 bit | Ativo quando in = 00 |
out1 | output | 1 bit | Ativo quando in = 01 |
out2 | output | 1 bit | Ativo quando in = 10 |
out3 | output | 1 bit | Ativo quando in = 11 |
Sua tarefa é completar o module abaixo usando uma instrução case.
O que fazer:
- Quando
in = 2'b00,out0 = 1, todos os others 0 - Quando
in = 2'b01,out1 = 1, todos os others 0 - Quando
in = 2'b10,out2 = 1, todos os others 0 - Quando
in = 2'b11,out3 = 1, todos os others 0
Experimente você mesmo
module decoder (
input [1:0] in,
output reg out0,
output reg out1,
output reg out2,
output reg out3
);
// TODO: Adicione o bloco always @(*) com case (in)
// 2'b00: out0=1, outros 0
// 2'b01: out1=1, outros 0
// 2'b10: out2=1, outros 0
// 2'b11: out3=1, outros 0
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 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 LogicPratique por conta própria: Compilador de Verilog online