Built In Gate Primitives
Parte da seção Fundamentos do Journey de Verilog da Coddy. Lição 39 de 90.
Verilog possui gate primitives integrados que permitem descrever circuitos lógicos usando símbolos reais de gate. Isso é chamado de structural modeling. Você constrói circuitos conectando gates, assim como ao desenhar um esquema.
Gate primitives são palavras-chave predefinidas que modelam gates lógicos básicos. Em vez de escrever uma expressão como assign out = a & b, você instancia um gate:
and(out, a, b); // Porta AND com saída out, entradas a e bSintaxe geral
gate_type (output, input1, input2, ...);- O primeiro argumento é sempre o output
- Os argumentos seguintes são inputs (1 ou mais, dependendo do gate)
Primitivas de portas disponíveis
| Tipo de porta | Palavra-chave | Número de entradas |
|---|---|---|
| AND | and | 2 ou mais |
| OR | or | 2 ou mais |
| NOT | not | 1 |
| NAND | nand | 2 ou mais |
| NOR | nor | 2 ou mais |
| XOR | xor | 2 ou mais |
| XNOR | xnor | 2 ou mais |
Como funcionam as primitivas de Gate
Quando você escreve and(out, a, b), o Verilog cria um Gate AND que impulsiona continuamente out com o result de a & b. Sempre que a ou b muda, out é atualizado imediatamente, assim como um Gate real.
Primitivas de Gate vs Atribuição contínua
Ambos os métodos produzem o mesmo hardware:
// Primitiva de porta
and(out, a, b);
// Atribuição contínua (mesmo resultado)
assign out = a & b;As primitivas de Gate são úteis quando você quer descrever um circuito como uma coleção de gates (estilo structural). A atribuição Continuous é melhor para o behavioral style (expressões).
Desafio
O que fazer:
- Add o gate primitive correto para fazer este circuito funcionar. O módulo should gerar o AND das entradas
aeb. A porta de output já foi nomeadac.
Experimente você mesmo
module gate_challenge (
input a,
input b,
output c
);
// TODO: Adicione o primitivo de porta correto
// A saída c deve ser a AND b
endmoduleEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas 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