Port Mapping By Order
Parte de la sección Fundamentos del Journey de Verilog de Coddy. Lección 35 de 90.
En la lección anterior, aprendiste sobre el mapeo de puertos por nombre, donde etiquetas explícitamente cada conexión usando .port(signal). Ahora veremos el método alternativo: mapeo de puertos por orden.
Conecta las señales a los puertos de un módulo según el order en que aparecen en la definición del módulo. Simplemente enumeras las señales entre paréntesis y Verilog las empareja una por una.
Sintaxis:
module_name instance_name (signal1, signal2, signal3);El primer signal se conecta al primer port, el segundo al segundo port, y así sucesivamente.
Ejemplo
Definición del módulo:
module or_gate (
input in1, // Primer puerto
input in2, // Segundo puerto
output result // Tercer puerto
);
assign result = in1 | in2;
endmoduleInstanciación con asignación de puertos por orden:
or_gate or1 (input_a, input_b, output_y);Esto conecta:
- First señal
input_a→ primer portin1 - Second señal
input_b→ segundo portin2 - Third señal
output_y→ tercer portresult
El orden importa
Con el mapping de port por orden, la secuencia es fundamental:
// Orden correcto
or_gate or1 (input_a, input_b, output_y);
// Orden incorrecto - ¡señales conectadas a los puertos equivocados!
or_gate or1 (input_b, input_a, output_y);
or_gate or1 (output_y, input_a, input_b);Si confundes el order, las conexiones van a los puertos wrong. Esto puede ser difícil de depurar porque el código parece correct a primera vista.
Mapeo de puertos por nombre frente a por orden
| Característica | Por nombre | Por orden |
|---|---|---|
| syntax | .port(signal) | signal1, signal2 |
| ¿Importa el orden? | No | Sí |
| ¿Se explica por sí mismo? | Sí | No |
| Riesgo de errores | Bajo | Alto |
| Recomendado para | La mayoría de los diseños | Solo casos sencillos |
Cuándo usar el mapping de ports por ORDER
El mapping de ports por ORDER es aceptable cuando:
- El module tiene muy pocos ports (2-3)
- El ORDER de los ports es obvio y es poco probable que cambie
- Estás escribiendo bancos de pruebas rápidos
Para la mayoría de los diseños, se prefiere la asignación de puertos por nombre porque es más clara y menos propensa a errores.
Desafío
Completa la instanciación enumerando las señales en el correct order mediante el mapeo de puertos por orden.
Qué hacer:
Puertos del módulo (en este orden):
input en(habilitación)input [7:0] d(entrada de datos)output [7:0] q(salida de datos)
Señales que se conectarán:
enable_signal→ conectar aendata_input→ conectar addata_output→ conectar aq
Pruébalo tú mismo
module register (
input en,
input [7:0] d,
output [7:0] q
);
assign q = en ? d : q;
endmodule
module top (
input enable_signal,
input [7:0] data_input,
output [7:0] data_output
);
// TODO: Instancia register con el nombre reg1 usando mapeo ORDER
// Lista las señales en el orden correcto: enable_signal, data_input, data_output
// No uses la sintaxis .port(signal)
endmoduleEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
1Introducción
Qué es VerilogHardware frente a softwareTu primer móduloComentariosNiveles de abstracción del diseño4Operators 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 LogicPractica por tu cuenta: Compilador de Verilog online