Representación binaria
Parte de la sección Fundamentos del Journey de Verilog de Coddy — lección 13 de 90.
En Verilog, trabajamos con circuitos digitales que entienden solo 0 y 1. Estos se representan en binario.
El binario utiliza solo dos dígitos: 0 y 1. Cada dígito binario se llama bit.
| Decimal | Binario | Bits |
|---|---|---|
| 0 | 0 | 1 bit |
| 1 | 1 | 1 bit |
| 2 | 10 | 2 bits |
| 3 | 11 | 2 bits |
| 4 | 100 | 3 bits |
| 5 | 101 | 3 bits |
Escribir binario en Verilog
Para escribir números binarios en Verilog, use el prefijo 'b:
4'b1010 // binario de 4 bits 1010 (decimal 10)
8'b11110000 // binario de 8 bits 11110000 (decimal 240)
2'b01 // binario de 2 bits 01 (decimal 1)El número antes de 'b le indica a Verilog cuántos bits tiene el valor.
Cómo convertir de decimal a binario
Divide el número decimal entre 2 repetidamente y lee los restos de abajo hacia arriba.
Ejemplo: Convertir 9 a binario
| Paso | División | Cociente | Resto |
|---|---|---|---|
| 1 | 9 ÷ 2 | 4 | 1 |
| 2 | 4 ÷ 2 | 2 | 0 |
| 3 | 2 ÷ 2 | 1 | 0 |
| 4 | 1 ÷ 2 | 0 | 1 |
Lee los restos de último a primero: 1001
9 = 4'b1001
Ejemplo en código
module binary_example;
reg [3:0] a;
initial begin
a = 4'b1010; // Binario 1010 = decimal 10
$display("a = %b (binary)", a);
$display("a = %d (decimal)", a);
$display("a = %h (hex)", a);
$finish;
end
endmoduleSalida:
a = 1010 (binary)
a = 10 (decimal)
a = a (hex)Desafío
Completa el código escribiendo los valores binarios que faltan.
Qué hacer:
- Escribe el binario para el decimal 5 (4 bits)
- Escribe el binario para el decimal 14 (4 bits)
Hoja de referencia
El binario utiliza solo 0 y 1. Cada dígito es un bit.
Escriba binario en Verilog con el prefijo 'b — el número anterior especifica el ancho de bits:
4'b1010 // binario de 4 bits = decimal 10
8'b11110000 // binario de 8 bits = decimal 240Formatos de visualización: %b (binario), %d (decimal), %h (hex).
De decimal a binario: divida por 2 repetidamente, lea los restos de abajo hacia arriba.
// 9 ÷ 2 → 4 r1 → 2 r0 → 1 r0 → 0 r1 ⟹ 1001
// 9 = 4'b1001Pruébalo tú mismo
module binary_challenge;
reg [3:0] a, b;
initial begin
// Escribe el binario para el decimal 5 (4 bits)
a = 4'b______;
// Write binary for decimal 14 (4 bits)
b = 4'b______;
$display("5 = %b", a);
$display("14 = %b", b);
$finish;
end
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 Verilog?Hardware vs SoftwareNiveles de abstracción de diseñoTu primer móduloComentarios4Operadores Parte 1
Operadores aritméticosOperador de móduloOperadores de comparaciónRepaso - Matemáticas simplesOperadores bit a bit7Asignación y Compuertas
Asignación ContinuaAsignación con OperadoresPrimitivas de Compuertas IntegradasCompuertas AND OR NOTCompuertas XOR XNORResumen - Circuito de Compuertas Lógicas10Toma de decisiones
Sentencia IfIf - ElseRepaso - Comparador simpleSentencia CaseCasex y CasezRepaso - Diseño de ALU5Operadores Parte 2
Operadores lógicosOperadores de reducciónOperadores de desplazamientoOperador de concatenaciónOperador condicionalResumen - Desafío de operadores3Sistema de numeración
Representación binariaNúmeros con tamaño definidoNúmeros sin tamaño definidoNúmeros negativosValores especiales X y ZResumen - Formatos de números6Módulos
Estructura del móduloPuertos de entrada y salidaPuertos InoutInstanciación de módulosMapeo de puertos por nombreMapeo de puertos por ordenResumen: Construye un módulo