CID Lab Lucrarea 2
De la WikiLabs
Noțiuni și cunoștințe necesare
- Logică booleană și sisteme de numerație
- Noțiuni de sintaxă Verilog (module, interfață, implementare cu blocuri assign și blocuri de instanțiere, operatori)
- Fire și registre, Module de test
- Utilizarea programului de simulare ModelSim
- Introducere în sinteza pe FPGA. Xilinx ISE
- Utilizarea programului de sinteză Xilinx ISE
Cerințe
- Descrieți în Verilog o poartă ȘI. Scrieți un modul de test pentru acest circuit în care să-l testați exhaustiv (toate combinațiile posibile de intrări). Simulați circuitul în ModelSim. Sintetizați circuitul și programați placa FPGA disponibilă pentru a implementa fizic funcția dorită. Asignați intrările la elemente de tip switch și ieșirile la elemente de tip led.
- Descrieți în Verilog o poartă SAU. Scrieți un modul de test pentru acest circuit în care să-l testați exhaustiv (toate combinațiile posibile de intrări). Simulați circuitul în ModelSim. Sintetizați circuitul și programați placa FPGA disponibilă pentru a implementa fizic funcția dorită. Asignați intrările la elemente de tip switch și ieșirile la elemente de tip led.
- Descrieți în Verilog o poartă SAU EXCLUSIV. Scrieți un modul de test pentru acest circuit în care să-l testați exhaustiv (toate combinațiile posibile de intrări). Simulați circuitul în ModelSim. Sintetizați circuitul și programați placa FPGA disponibilă pentru a implementa fizic funcția dorită. Asignați intrările la elemente de tip switch și ieșirile la elemente de tip led.
- Descrieți în Verilog o poartă SI NU. Scrieți un modul de test pentru acest circuit în care să-l testați exhaustiv (toate combinațiile posibile de intrări). Simulați circuitul în ModelSim. Sintetizați circuitul și programați placa FPGA disponibilă pentru a implementa fizic funcția dorită. Asignați intrările la elemente de tip switch și ieșirile la elemente de tip led.
- Descrieți în Verilog o poartă SAU NU. Scrieți un modul de test pentru acest circuit în care să-l testați exhaustiv (toate combinațiile posibile de intrări). Simulați circuitul în ModelSim. Sintetizați circuitul și programați placa FPGA disponibilă pentru a implementa fizic funcția dorită. Asignați intrările la elemente de tip switch și ieșirile la elemente de tip led.
- Descrieți în Verilog o poartă SAU NU EXCLUSIV. Scrieți un modul de test pentru acest circuit în care să-l testați exhaustiv (toate combinațiile posibile de intrări). Simulați circuitul în ModelSim. Sintetizați circuitul și programați placa FPGA disponibilă pentru a implementa fizic funcția dorită. Asignați intrările la elemente de tip switch și ieșirile la elemente de tip led.
- Descrieți în Verilog un scăzător pe 6 biți. Scrieți un modul de test pentru acest circuit în care să-l testați 4 - 5 seturi de valori de intrare, inclusiv situații limită (valori foarte mari/ foarte mici, etc.). Simulați circuitul în ModelSim. Sintetizați circuitul și programați placa FPGA disponibilă pentru a implementa fizic funcția dorită. Asignați intrările la elemente de tip switch sau button și ieșirile la elemente de tip led.
- Descrieți în Verilog un înmulțitor pe 4 biți. Scrieți un modul de test pentru acest circuit în care să-l testați 4 - 5 seturi de valori de intrare, inclusiv situații limită (valori foarte mari/ foarte mici, etc.). Simulați circuitul în ModelSim. Sintetizați circuitul și programați placa FPGA disponibilă pentru a implementa fizic funcția dorită. Asignați intrările la elemente de tip switch și ieșirile la elemente de tip led.
Cerințe suplimentare (opționale)
- Descrieți în Verilog un circuit care să poată face suma sau diferența a două numere, conform unui bit de selecție, care este și el intrare a circuitului (Hint: folosiți un operator condițional). Scrieți un modul de test pentru acest circuit în care să-l testați cu câteva perechi de valori de intrare. Simulați circuitul în ModelSim. Sintetizați circuitul și programați placa FPGA disponibilă pentru a implementa fizic funcția dorită. Asignați intrările la elemente de tip switch sau button și ieșirile la elemente de tip led.
- Descrieți în Verilog un circuit care să poată face suma, diferența, produsul sau maximul a două numere, conform unei intrări de selecție. Descrieți circuitul în 3 moduri: folosind un bloc assign și operatorul condițional, folosind un bloc always și sub-blocuri if - else, și folosind un bloc always și un sub-bloc case (vezi implementarea cu blocuri always combinaționale). Scrieți un modul de test pentru acest circuit în care să-l testați cu câteva perechi de valori de intrare. Simulați circuitul în ModelSim. Sintetizați circuitul și programați placa FPGA disponibilă pentru a implementa fizic funcția dorită. Asignați intrările la elemente de tip switch sau button și ieșirile la elemente de tip led.
- Descrieți în Verilog o poartă NOR. Folosing acest modul, fire și blocuri de instanțiere, descrieți modulul din figura alăturată. Scrieți un modul de test în care să simulați comportamentul circuitului la tranzițiile (S=0, R=1 -> S=0, R=0 -> S=1, R=0 -> S=0, R=0). Explicați de ce, în cele două cazuri în care intrările sunt S=0, R=0, ieșirea diferă. Ce concluzii puteți trage despre comportamentul circuitului?