Rappresentazione binaria
Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 13 di 90.
In Verilog, lavoriamo con circuiti digitali che comprendono solo 0 e 1. Questi sono rappresentati in binario.
Il sistema binario usa solo due cifre: 0 e 1. Ogni cifra binaria è chiamata bit.
| Decimale | Binario | Bit |
|---|---|---|
| 0 | 0 | 1 bit |
| 1 | 1 | 1 bit |
| 2 | 10 | 2 bit |
| 3 | 11 | 2 bit |
| 4 | 100 | 3 bit |
| 5 | 101 | 3 bit |
Scrivere numeri binari in Verilog
Per scrivere numeri binari in Verilog, usa il prefisso 'b:
4'b1010 // 4-bit binary 1010 (decimal 10)
8'b11110000 // binario a 8 bit 11110000 (decimale 240)
2'b01 // 2-bit binary 01 (decimal 1)Il numero prima di 'b indica a Verilog quanti bit ha il valore.
Come convertire un numero decimale in binario
Dividi ripetutamente il numero decimale per 2 e leggi i resti dal basso verso l’alto.
Esempio: converti 9 in binario
| Passaggio | Divisione | Quoziente | Resto |
|---|---|---|---|
| 1 | 9 ÷ 2 | 4 | 1 |
| 2 | 4 ÷ 2 | 2 | 0 |
| 3 | 2 ÷ 2 | 1 | 0 |
| 4 | 1 ÷ 2 | 0 | 1 |
Leggi i resti dall’ultimo al primo: 1001
9 = 4'b1001
Esempio di codice
module binary_example;
reg [3:0] a;
initial begin
a = 4'b1010; // Binary 1010 = decimal 10
$display("a = %b (binary)", a);
$display("a = %d (decimal)", a);
$display("a = %h (hex)", a);
$finish;
end
endmoduleOutput:
a = 1010 (binary)
a = 10 (decimal)
a = a (hex)Sfida
Completa il codice scrivendo i valori binari mancanti.
Cosa fare:
- Scrivi il numero binario corrispondente al decimale 5 (4 bit)
- Scrivi il numero binario corrispondente al decimale 14 (4 bit)
Provalo tu
module binary_challenge;
reg [3:0] a, b;
initial begin
// Scrivi il numero binario corrispondente al decimale 5 (4 bit)
a = 4'b______;
// Write binary for decimal 14 (4 bits)
b = 4'b______;
$display("5 = %b", a);
$display("14 = %b", b);
$finish;
end
endmoduleQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
1Introduzione
Cos'è VerilogHardware e software a confrontoIl tuo primo moduloCommentiLivelli di astrazione della progettazione4Operatori - Parte 1
Operatori aritmeticiOperatore moduloOperatori di confrontoRiepilogo - Matematica sempliceOperatori bitwise7Assegnazioni e porte
Assegnazione continuaAssegnazioni con operatoriPrimitive di porte integratePorte AND, OR e NOTPorte XOR e XNORRiepilogo: circuito con porte logiche10Decisioni
Istruzione ifIf-ElseRiepilogo - Comparatore sempliceIstruzione caseCasex e casezRiepilogo - Progettazione di una ALU5Operatori Parte 2
Operatori logiciOperatori di riduzioneOperatori di scorrimentoOperatore di concatenazioneOperatore condizionaleRiepilogo - Sfida sugli operatori3Sistema numerico
Rappresentazione binariaNumeri con dimensione specificataNumeri senza dimensione specificataNumeri negativiValori speciali X e ZRiepilogo - Formati numerici6Moduli
Struttura di un moduloPorte di input e outputPorte InoutIstanziazione di un moduloMappatura delle porte per nomeMappatura delle porte per ordineRiepilogo - Costruire un modulo9Blocchi procedurali
Blocco alwaysBlocco initialLista di sensibilitàAssegnazione bloccanteAssegnazione non bloccanteRiepilogo: always vs initial12Progetto Multiplexer
Progettazione di un mux da 2 a 1Progettazione di un mux da 4 a 1Esercitati da solo: Compilatore Verilog online