Diferență între revizuiri ale paginii „CID Lab Lucrarea 2”

De la WikiLabs
Jump to navigationJump to search
Linia 18: Linia 18:
 
== Exerciții ==
 
== 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 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 DE1 este conform regulii:
+
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). Modificați pinii la ieșire astfel încât valoarea fie afișată pe Digit 1.
* selection = 0 aprinde cifra corespunzătoare Digit0
 
* selection = 1 aprinde cifra corespunzătoare Digit1
 
* selection = 2 aprinde cifra corespunzătoare Digit2
 
* selection = 3 aprinde cifra corespunzătoare Digit3
 
  
 
Modulul top-level se va numi '''afisaj7seg'''.
 
Modulul top-level se va numi '''afisaj7seg'''.
  
 
=== Exercitiul 1===
 
=== Exercitiul 1===
a.
+
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'''.  
  
*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:
 
*Biții '''out_seg''' corespund cu segmentele în modul următor:
  
**Bitul 6 corespunde segmentului 6
+
**Bitul 6 corespunde segmentului 0
**Bitul 5 corespunde segmentului 5
+
**Bitul 5 corespunde segmentului 1
**Bitul 4 corespunde segmentului 4
+
**Bitul 4 corespunde segmentului 2
 
**Bitul 3 corespunde segmentului 3
 
**Bitul 3 corespunde segmentului 3
**Bitul 2 corespunde segmentului 2
+
**Bitul 2 corespunde segmentului 4
**Bitul 1 corespunde segmentului 1
+
**Bitul 1 corespunde segmentului 5
**Bitul 0 corespunde segmentului 0
+
**Bitul 0 corespunde segmentului 6
 +
 
 +
Verificați funcționarea corectă a afișajului pe placa DE1. 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 module diferite, scrise în fișiere diferite, și instanțiate în modulul de top.
  
*Ieșirile se vor conecta la pinii corespunzători pentru afișajul cu 7 segmente.
 
  
 
===Exercitiul 2===
 
===Exercitiul 2===

Versiunea de la data 16 martie 2017 23:25

Noțiuni și cunoștințe necesare

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

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). Modificați pinii la ieșire astfel încât valoarea să fie afișată pe Digit 1.

Modulul top-level se va numi afisaj7seg.

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.

  • 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. 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 module diferite, 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

  • 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.

Transcoder.png

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