CID Lab Lucrarea 2: Diferență între versiuni
Fără descriere a modificării |
|||
Linia 15: | Linia 15: | ||
Realizați un transcodor pentru afișajul cu 7 segmente, folosind un bloc '''case''', care să poată afișa valorile de la 0 la 3. Intrarea modulului se va numi '''value''' iar ieșirea '''out_seg'''. | Realizați un transcodor pentru afișajul cu 7 segmente, folosind un bloc '''case''', care să poată afișa valorile de la 0 la 3. Intrarea modulului se va numi '''value''' iar ieșirea '''out_seg'''. | ||
== | == Exerciții == | ||
Completați transcodorul de la exemplul 2 astfel încât să poată afișa valorile de la 0 la 15, în baza 16 (10 = A, 11 = b, 12 = C, 13 = d, 14 = E, 15 = F). Adăugați circuitului un decodor folosit pentru a selecta care din cele 4 cifre să afișeze valoarea | Completați transcodorul de la exemplul 2 astfel încât să poată afișa valorile de la 0 la 15, în baza 16 (10 = A, 11 = b, 12 = C, 13 = d, 14 = E, 15 = F). Adăugați circuitului un decodor folosit pentru a selecta care din cele 4 cifre să afișeze valoarea selectată. Intrarea pentru selecția cifrei se va numi '''selection''', iar ieșirea '''out_sel'''. Corespondența între '''selection''' și cele 4 cifre cu 7 segmente de pe placa Nexys 2 este conform regulii: | ||
* selection = 0 aprinde prima cifră din stânga spre dreapta | |||
* selection = 1 aprinde a doua cifră din stânga spre dreapta | |||
* selection = 2 aprinde a treia cifră din stânga spre dreapta | |||
* selection = 3 aprinde a patra cifră din stânga spre dreapta | |||
Modulul top-level se va numi '''afisaj7seg'''. | |||
=== Exercitiul 1=== | |||
*Intrarea '''value''' se va conecta la switchurile SW3-SW0 (corespunzător biților 3->0 ai '''value''', în această ordine). | |||
*Intrarea '''selection''' se va conecta la SW7-SW6 (corespunzător biților 1->0 ai '''selection''', în această ordine). | |||
*Biții '''out_seg''' corespund cu segmentele în modul următor: | |||
**Bitul 7 corespunde segmentului A | |||
**Bitul 6 corespunde segmentului B | |||
**Bitul 5 corespunde segmentului C | |||
**Bitul 4 corespunde segmentului D | |||
**Bitul 3 corespunde segmentului E | |||
**Bitul 2 corespunde segmentului F | |||
**Bitul 1 corespunde segmentului G | |||
**Bitul 0 corespunde segmentului P | |||
*Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente. | |||
===Exercitiul 2=== | |||
*Intrarea '''value''' se va conecta la switchurile SW7-SW4 (corespunzător biților 3->0 ai '''value''', în această ordine) | |||
*Intrarea '''selection''' se va conecta la SW1-SW0 (corespunzător biților 1->0 ai '''selection''', în această ordine) | |||
*Biții '''out_seg''' corespund cu segmentele în modul următor: | |||
**Bitul 7 corespunde segmentului P | |||
**Bitul 6 corespunde segmentului A | |||
**Bitul 5 corespunde segmentului G | |||
**Bitul 4 corespunde segmentului D | |||
**Bitul 3 corespunde segmentului F | |||
**Bitul 2 corespunde segmentului B | |||
**Bitul 1 corespunde segmentului E | |||
**Bitul 0 corespunde segmentului C | |||
*Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente. | |||
===Exercitiul 3=== | |||
*Intrarea '''value''' se va conecta la switchurile SW6-SW3 (corespunzător biților 3->0 ai '''value''', în această ordine) | |||
*Intrarea '''selection''' se va conecta la SW2-SW1 (corespunzător biților 1->0 ai '''selection''', în această ordine) | |||
*Biții '''out_seg''' corespund cu segmentele în modul următor: | |||
**Bitul 7 corespunde segmentului P | |||
**Bitul 6 corespunde segmentului G | |||
**Bitul 5 corespunde segmentului F | |||
**Bitul 4 corespunde segmentului E | |||
**Bitul 3 corespunde segmentului D | |||
**Bitul 2 corespunde segmentului C | |||
**Bitul 1 corespunde segmentului B | |||
**Bitul 0 corespunde segmentului A | |||
*Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente. | |||
===Exercitiul 4=== | |||
*Intrarea '''value''' se va conecta la switchurile SW5-SW2 (corespunzător biților 3->0 ai '''value''', în această ordine) | |||
*Intrarea '''selection''' se va conecta la SW7-SW6 (corespunzător biților 1->0 ai '''selection''', în această ordine) | |||
*Biții '''out_seg''' corespund cu segmentele în modul următor: | |||
**Bitul 7 corespunde segmentului G | |||
**Bitul 6 corespunde segmentului B | |||
**Bitul 5 corespunde segmentului E | |||
**Bitul 4 corespunde segmentului C | |||
**Bitul 3 corespunde segmentului F | |||
**Bitul 2 corespunde segmentului A | |||
**Bitul 1 corespunde segmentului D | |||
**Bitul 0 corespunde segmentului P | |||
*Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente. | |||
[[Fișier:transcoder.png]] | [[Fișier:transcoder.png]] |
Versiunea de la data 20 martie 2016 18:14
Noțiuni și cunoștințe necesare
- Introducere în sinteza pe FPGA. Xilinx ISE
- Utilizarea programului de sinteză Xilinx ISE
- Logică booleană și sisteme de numerație
- Noțiuni de sintaxă Verilog
- Afișajul cu 7 segmente
Exemplul 1
Realizați un decodor de doi biți folosind un bloc case. Testați decodorul legând intrările la switch-uri și ieșirile la led-uri.
Exemplul 2
Realizați un transcodor pentru afișajul cu 7 segmente, folosind un bloc case, care să poată afișa valorile de la 0 la 3. Intrarea modulului se va numi value iar ieșirea out_seg.
Exerciții
Completați transcodorul de la exemplul 2 astfel încât să poată afișa valorile de la 0 la 15, în baza 16 (10 = A, 11 = b, 12 = C, 13 = d, 14 = E, 15 = F). Adăugați circuitului un decodor folosit pentru a selecta care din cele 4 cifre să afișeze valoarea selectată. Intrarea pentru selecția cifrei se va numi selection, iar ieșirea out_sel. Corespondența între selection și cele 4 cifre cu 7 segmente de pe placa Nexys 2 este conform regulii:
- selection = 0 aprinde prima cifră din stânga spre dreapta
- selection = 1 aprinde a doua cifră din stânga spre dreapta
- selection = 2 aprinde a treia cifră din stânga spre dreapta
- selection = 3 aprinde a patra cifră din stânga spre dreapta
Modulul top-level se va numi afisaj7seg.
Exercitiul 1
- Intrarea value se va conecta la switchurile SW3-SW0 (corespunzător biților 3->0 ai value, în această ordine).
- Intrarea selection se va conecta la SW7-SW6 (corespunzător biților 1->0 ai selection, în această ordine).
- Biții out_seg corespund cu segmentele în modul următor:
- Bitul 7 corespunde segmentului A
- Bitul 6 corespunde segmentului B
- Bitul 5 corespunde segmentului C
- Bitul 4 corespunde segmentului D
- Bitul 3 corespunde segmentului E
- Bitul 2 corespunde segmentului F
- Bitul 1 corespunde segmentului G
- Bitul 0 corespunde segmentului P
- Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente.
Exercitiul 2
- Intrarea value se va conecta la switchurile SW7-SW4 (corespunzător biților 3->0 ai value, în această ordine)
- Intrarea selection se va conecta la SW1-SW0 (corespunzător biților 1->0 ai selection, în această ordine)
- Biții out_seg corespund cu segmentele în modul următor:
- Bitul 7 corespunde segmentului P
- Bitul 6 corespunde segmentului A
- Bitul 5 corespunde segmentului G
- Bitul 4 corespunde segmentului D
- Bitul 3 corespunde segmentului F
- Bitul 2 corespunde segmentului B
- Bitul 1 corespunde segmentului E
- Bitul 0 corespunde segmentului C
- Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente.
Exercitiul 3
- Intrarea value se va conecta la switchurile SW6-SW3 (corespunzător biților 3->0 ai value, în această ordine)
- Intrarea selection se va conecta la SW2-SW1 (corespunzător biților 1->0 ai selection, în această ordine)
- Biții out_seg corespund cu segmentele în modul următor:
- Bitul 7 corespunde segmentului P
- Bitul 6 corespunde segmentului G
- Bitul 5 corespunde segmentului F
- Bitul 4 corespunde segmentului E
- Bitul 3 corespunde segmentului D
- Bitul 2 corespunde segmentului C
- Bitul 1 corespunde segmentului B
- Bitul 0 corespunde segmentului A
- Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente.
Exercitiul 4
- Intrarea value se va conecta la switchurile SW5-SW2 (corespunzător biților 3->0 ai value, în această ordine)
- Intrarea selection se va conecta la SW7-SW6 (corespunzător biților 1->0 ai selection, în această ordine)
- Biții out_seg corespund cu segmentele în modul următor:
- Bitul 7 corespunde segmentului G
- Bitul 6 corespunde segmentului B
- Bitul 5 corespunde segmentului E
- Bitul 4 corespunde segmentului C
- Bitul 3 corespunde segmentului F
- Bitul 2 corespunde segmentului A
- Bitul 1 corespunde segmentului D
- Bitul 0 corespunde segmentului P
- Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente.
Submiterea Exercițiilor
Pentru notare, se vor submite următoarele fișiere, către adresa de e-mail indicată de cadrul didactic și către adresa cid_lab_homework@dcae.pub.ro
O arhivă zip ce va conține:
- Toate fișierele Verilog (cu extensia .v) care conțin descrierea circuitului de afișare pe 7 segmente
- Un fișier de constrângeri, cu extensia .ucf
- Un fișier de tip proiect Xilinx ISE, cu extensia .xise
Atenție, arhiva va conține doar fișiere (fără directoare).
Subiectul mesajului de e-mail trebuie să respecte formatul [Nume]_[Prenume]_[Grupa]_7seg.
Recomandări pentru cadrele didactice
- Se vor introduce noțiunile necesare folosirii afișajului cu 7 segmente