Representação Binária
Parte da seção Fundamentos do Journey de Verilog da Coddy — lição 13 de 90.
Em Verilog, trabalhamos com circuitos digitais que entendem apenas 0 e 1. Estes são representados em binário.
O sistema binário utiliza apenas dois dígitos: 0 e 1. Cada dígito binário é chamado de um bit.
| Decimal | Binário | 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 |
Escrevendo Binário em Verilog
Para escrever números binários em Verilog, use o prefixo 'b:
4'b1010 // binário de 4 bits 1010 (decimal 10)
8'b11110000 // binário de 8 bits 11110000 (decimal 240)
2'b01 // binário de 2 bits 01 (decimal 1)O número antes de 'b informa ao Verilog quantos bits o valor possui.
Como Converter Decimal para Binário
Divida o número decimal por 2 repetidamente e leia os restos de baixo para cima.
Exemplo: Converter 9 para binário
| Passo | Divisão | Quociente | Resto |
|---|---|---|---|
| 1 | 9 ÷ 2 | 4 | 1 |
| 2 | 4 ÷ 2 | 2 | 0 |
| 3 | 2 ÷ 2 | 1 | 0 |
| 4 | 1 ÷ 2 | 0 | 1 |
Leia os restos do último ao primeiro: 1001
9 = 4'b1001
Exemplo em Código
module binary_example;
reg [3:0] a;
initial begin
a = 4'b1010; // Binário 1010 = decimal 10
$display("a = %b (binary)", a);
$display("a = %d (decimal)", a);
$display("a = %h (hex)", a);
$finish;
end
endmoduleSaída:
a = 1010 (binary)
a = 10 (decimal)
a = a (hex)Desafio
Complete o código escrevendo os valores binários que faltam.
O que fazer:
- Escreva o binário para o decimal 5 (4 bits)
- Escreva o binário para o decimal 14 (4 bits)
Folha de consulta
O binário usa apenas 0 e 1. Cada dígito é um bit.
Escreva binário em Verilog com o prefixo 'b — o número antes dele especifica a largura de bits:
4'b1010 // 4-bit binary = decimal 10
8'b11110000 // 8-bit binary = decimal 240Formatos de exibição: %b (binário), %d (decimal), %h (hexadecimal).
Decimal para binário: divida por 2 repetidamente, leia os restos de baixo para cima.
// 9 ÷ 2 → 4 r1 → 2 r0 → 1 r0 → 0 r1 ⟹ 1001
// 9 = 4'b1001Experimente você mesmo
module binary_challenge;
reg [3:0] a, b;
initial begin
// Escreva o binário para o 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 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 SoftwareNíveis de Abstração de ProjetoSeu Primeiro MóduloComentários4Operadores Parte 1
Operadores AritméticosOperador de MóduloOperadores de ComparaçãoRecapitulação - Matemática SimplesOperadores Bitwise7Atribuição e Portas Lógicas
Atribuição ContínuaAtribuição com OperadoresPrimitivas de Portas IntegradasPortas AND, OR e NOTPortas XOR e XNORRecapitulação - Circuito de Portas Lógicas10Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Comparador SimplesInstrução CaseCasex e CasezRecapitulação - Projeto de ALU2Tipos de Dados
Tipo WireTipo RegInteger e RealVetoresArraysParâmetrosRecapitulação - Declarar Sinais5Operadores Parte 2
Operadores LógicosOperadores de ReduçãoOperadores de DeslocamentoOperador de ConcatenaçãoOperador CondicionalRecapitulação - Desafio de Operadores3Sistemas de Numeração
Representação BináriaNúmeros com Tamanho DefinidoNúmeros sem Tamanho DefinidoNúmeros NegativosValores Especiais X e ZRecapitulação - Formatos de Números6Módulos
Estrutura de MóduloPortas de Entrada e SaídaPortas InoutInstanciação de MóduloMapeamento de Portas por NomeMapeamento de Portas por OrdemRecapitulação - Construa um Módulo