Scrivere il modulo
Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 43 di 90.
Sfida
Un semisommatore è un circuito che somma due singoli bit e ti indica:
- somma: il risultato (0 o 1)
- riporto: se si verifica un overflow (1 quando entrambi gli input sono 1)
Esempio
| a | b | sum | carry |
|---|---|---|---|
| 0 | 0 | 0 | nessun overflow |
| 0 | 1 | 1 | nessun overflow |
| 1 | 0 | 1 | nessun overflow |
| 1 | 1 | 0 | overflow (carry = 1) |
Quando sommi 1 + 1 in binario, il risultato è 0 con un riporto di 1 (proprio come 5 + 5 = 0 con un riporto di 1 in decimale).
Prima di aggiungere la logica, dobbiamo creare il contenitore del modulo: il guscio vuoto che conterrà il nostro circuito semisommatore.
Per un semisommatore, i compiti sono:
- Crea un modulo chiamato
half_adder - Aggiungi due input:
aeb - Aggiungi due output:
sumecarry
Provalo tu
// Attività 1: Crea un modulo chiamato half_adder
// Attività 2: Aggiungi due ingressi: a e b
// Attività 3: Aggiungi due uscite: sum e carry
// La logica verrà aggiunta in seguito
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