Diferență între revizuiri ale paginii „CID Lab Lucrarea 2”
Linia 35: | Linia 35: | ||
**Bitul 0 corespunde segmentului 6 | **Bitul 0 corespunde segmentului 6 | ||
− | Verificați funcționarea corectă a afișajului pe placa DE1, conectând intrarea pe SW3-SW0 | + | Verificați funcționarea corectă a afișajului pe placa DE1, conectând intrarea pe SW3-SW0. Modificați pinii la ieșire astfel încât valoarea să fie afișată pe '''Digit 1'''. |
b. Realizați un circuit care adună două numere binare pe 3 biți, iar rezultatul, pe 4 biți, va fi afișat ca cifră hexazecimală cu ajutorul transcodorului de la pct. a). | b. Realizați un circuit care adună două numere binare pe 3 biți, iar rezultatul, pe 4 biți, va fi afișat ca cifră hexazecimală cu ajutorul transcodorului de la pct. a). | ||
Restricții: | Restricții: | ||
− | *Creați un nou proiect, în care modulul top-level este denumit | + | *Creați un nou proiect, în care modulul top-level este denumit '''top'''. |
*Cele două intrări se vor nota cu a, respectiv b, și se vor conecta la switchurile SW2-SW0 (corespunzător biților 2->0 ai lui '''a''', în această ordine), respectiv SW9-SW7 (corespunzător biților 2->0 ai lui '''b''', în această ordine) . | *Cele două intrări se vor nota cu a, respectiv b, și se vor conecta la switchurile SW2-SW0 (corespunzător biților 2->0 ai lui '''a''', în această ordine), respectiv SW9-SW7 (corespunzător biților 2->0 ai lui '''b''', în această ordine) . | ||
*Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente, Digit 1. | *Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente, Digit 1. | ||
− | *Sumatorul și transcodorul vor fi descrise în module diferite (denumite '''sumator''' și '''afisaj7seg''', scrise în fișiere diferite, și instanțiate în modulul de top. | + | *Sumatorul și transcodorul vor fi descrise în module diferite (denumite '''sumator''' și '''afisaj7seg''', scrise în fișiere diferite, și instanțiate în modulul de ''top''. |
===Exercitiul 2=== | ===Exercitiul 2=== | ||
Linia 77: | Linia 77: | ||
===Exercitiul 4=== | ===Exercitiul 4=== | ||
+ | |||
+ | a. Completați și modificații 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) '''pe a doua poziție din stânga'''. | ||
+ | *Denumiți modulul '''afisaj7seg''' | ||
+ | *Biții '''out_seg''' corespund cu segmentele în modul următor: | ||
+ | |||
+ | **Bitul 6 corespunde segmentului 2 | ||
+ | **Bitul 5 corespunde segmentului 4 | ||
+ | **Bitul 4 corespunde segmentului 6 | ||
+ | **Bitul 3 corespunde segmentului 3 | ||
+ | **Bitul 2 corespunde segmentului 4 | ||
+ | **Bitul 1 corespunde segmentului 1 | ||
+ | **Bitul 0 corespunde segmentului 0 | ||
+ | |||
+ | Verificați funcționarea corectă a afișajului pe placa DE1, conectând intrarea pe SW9-SW6. Modificați pinii la ieșire astfel încât valoarea să fie afișată pe '''Digit 2'''. | ||
+ | |||
+ | b. Realizați un circuit care adună două numere binare pe 3 biți, iar rezultatul, pe 4 biți, va fi afișat ca cifră hexazecimală cu ajutorul transcodorului de la pct. a). | ||
+ | Restricții: | ||
+ | |||
+ | *Creați un nou proiect, în care modulul top-level este denumit '''top'''. | ||
+ | *Cele două intrări se vor nota cu in1, respectiv in2, și se vor conecta la switchurile SW7-SW5 (corespunzător biților 2->0 ai lui '''in1''', în această ordine), respectiv SW4-SW2 (corespunzător biților 2->0 ai lui '''in2''', în această ordine) . | ||
+ | *Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente, Digit 2. | ||
+ | *Sumatorul și transcodorul vor fi descrise în module diferite (denumite '''sumator''' și '''afisaj7seg''', scrise în fișiere diferite, și instanțiate în modulul de ''top''. | ||
+ | |||
+ | |||
+ | |||
*Intrarea '''value''' se va conecta la switchurile SW5-SW2 (corespunzător biților 3->0 ai '''value''', în această ordine) | *Intrarea '''value''' se va conecta la switchurile SW5-SW2 (corespunzător biților 3->0 ai '''value''', în această ordine) |
Versiunea de la data 16 martie 2017 23:49
Noțiuni și cunoștințe necesare
- Utilizarea programului de sinteză Altera Quartus II
- Lista pinilor plăcii DE1
- 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. Testați decodorul aplicând intrarea pe SW1 și SW0 și afișând ieșirea pe afișajul cu 7 segmente, cifra din dreapta (Digit0).
Exerciții
Următoarele exerciții folosesc transcodorul binar - 7 segemente pentru afișarea în hexazecimal a rezultatului unei operații simple. Pentru a vă asigura că transcodorul este scris corect, la pct. a veți verifica funcționarea lui. Proiectul pe care trebuie să-l trimiteți la final este cel de la pct. b.
Exercitiul 1
a. Completați și modificații 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) pe a doua poziție din dreapta.
- Denumiți modulul afisaj7seg
- Biții out_seg corespund cu segmentele în modul următor:
- Bitul 6 corespunde segmentului 0
- Bitul 5 corespunde segmentului 1
- Bitul 4 corespunde segmentului 2
- Bitul 3 corespunde segmentului 3
- Bitul 2 corespunde segmentului 4
- Bitul 1 corespunde segmentului 5
- Bitul 0 corespunde segmentului 6
Verificați funcționarea corectă a afișajului pe placa DE1, conectând intrarea pe SW3-SW0. Modificați pinii la ieșire astfel încât valoarea să fie afișată pe Digit 1.
b. Realizați un circuit care adună două numere binare pe 3 biți, iar rezultatul, pe 4 biți, va fi afișat ca cifră hexazecimală cu ajutorul transcodorului de la pct. a). Restricții:
- Creați un nou proiect, în care modulul top-level este denumit top.
- Cele două intrări se vor nota cu a, respectiv b, și se vor conecta la switchurile SW2-SW0 (corespunzător biților 2->0 ai lui a, în această ordine), respectiv SW9-SW7 (corespunzător biților 2->0 ai lui b, în această ordine) .
- Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente, Digit 1.
- Sumatorul și transcodorul vor fi descrise în module diferite (denumite sumator și afisaj7seg, scrise în fișiere diferite, și instanțiate în modulul de top.
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 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
a. Completați și modificații 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) pe a doua poziție din stânga.
- Denumiți modulul afisaj7seg
- Biții out_seg corespund cu segmentele în modul următor:
- Bitul 6 corespunde segmentului 2
- Bitul 5 corespunde segmentului 4
- Bitul 4 corespunde segmentului 6
- Bitul 3 corespunde segmentului 3
- Bitul 2 corespunde segmentului 4
- Bitul 1 corespunde segmentului 1
- Bitul 0 corespunde segmentului 0
Verificați funcționarea corectă a afișajului pe placa DE1, conectând intrarea pe SW9-SW6. Modificați pinii la ieșire astfel încât valoarea să fie afișată pe Digit 2.
b. Realizați un circuit care adună două numere binare pe 3 biți, iar rezultatul, pe 4 biți, va fi afișat ca cifră hexazecimală cu ajutorul transcodorului de la pct. a). Restricții:
- Creați un nou proiect, în care modulul top-level este denumit top.
- Cele două intrări se vor nota cu in1, respectiv in2, și se vor conecta la switchurile SW7-SW5 (corespunzător biților 2->0 ai lui in1, în această ordine), respectiv SW4-SW2 (corespunzător biților 2->0 ai lui in2, în această ordine) .
- Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente, Digit 2.
- Sumatorul și transcodorul vor fi descrise în module diferite (denumite sumator și afisaj7seg, scrise în fișiere diferite, și instanțiate în modulul de top.
- 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.
O arhivă zip ce va conține:
- Un fișier Verilog cu extensia .v care conține descrierea Verilog a circuitului
- Un fișier de constrângeri, cu extensia .qsf
- Un fișier de tip proiect Quartus, cu extensia .qpf
Atentie, arhiva va contine doar cele 3 fisiere (fara directoare).
Subiectul mesajului de e-mail trebuie să respecte formatul [Nume]_[Prenume]_[Grupa]_7seg_[Nr. Exercitiu] de exemplu Petrica_Lucian_423B_7seg_4
Recomandări pentru cadrele didactice
- Se vor introduce noțiunile necesare folosirii afișajului cu 7 segmente