PRACTICA 2 - mrpss1234/Treball-de-Final-de-Grau GitHub Wiki
Enunciat Pràctica 2:
Mostrar dos dígits (4 bits en binari cadascun) a través del sistema de 4 displays 7-segments multiplexats de la training FPGA-UdL amb velocitat de refresc/multiplexació dels displays fixa (100 Hz)
Connexions a la placa de training FPGA-UdL:
Introducció dels digits:
Novament, haurem d'introduir els dos digits mitjançant la placa FPGA-UDL. Aquesta vegada haurem de utilitzar els dos DIP Swtich, ja que necessitarem 4 bits per cada numero. Assignarem el primer digit al DIP Switch B com a l'anterior pràctica i el segon digit al DIP Switch A. Les conexions javors quedaran de la seguent forma:
Primer Digit (Vermell)
- D4 <-- 4B
- D5 <-- 3B
- D6 <-- 2B
- D7 <-- 1B
Segon Digit (Groc)
- D12 <-- 2A
- D13 <-- 1A
- DD1 <-- 4A
- DD0 <-- 3A
Selecció del display a mostrar:
El funcionament d'aquesta part serà el mateix que el realitzat a la pràctica 1, amb la unica diferencia de que en aquesta pràctica tenim un temps de clock fixe de 1000 Hz. Al tenir una senyal de clock que fa que variin les senyals de control (Z1,Z0) tant rapidament provocara que es veguin els dos digits als dos displays de forma continua, si la senyal de clock fos inferior, com per exemple 1Hz, el que veuriem a la placa entrenadora es que els dos digits s'anirien mostrant sequencialment i mai es veurien els dos a la vegada. Al tenir un clock elevat provoquem que es doni l'efecte optic i pensem que s'estan mostrant els dos digits a la vegada.
Per generar el numero de selecció de display, s'utilitzara un flip-flop D, amb el clock de 100 Hz
. El seu esquema es aquet:
Aquest flip-flop esta dissenyat perque vagi treient com a sortida la sequencia 00-01-10-11 amb la velocitat del clock de 100 Hz.
Un cop tinguem el numero de selecció (Z1,Z0) de display en binari, s'utilitzaran una serie de portes logiques per activar segons cada estat de la sequencia un display diferent tal i com indica a la seguent imatge:
Quan el numero equival al 00 (Z1=0,Z0=0), indicara que volem activar la entrada 7S_E del display, per lo tant necessitarem 2 portes NOT per a transformar el 00 a 11 i activar el transistor amb una porta AND.
Z1 | Z0 | DISPLAY |
---|---|---|
0 | 0 | 7S_E |
0 | 1 | 7S_D |
1 | 0 | 7S_C |
1 | 1 | 7S_B |
Les conexions a la FPGA queden de la seguent forma:
Conexions als displays:
La La sortida O[3..0] es treu pels pins D8, D9, D10 i D11 de la FPGA i llavors es connecten a l'entrada del xip 4511
- D8 --> B0
- D9 --> B1
- D10 --> B2
- D11 --> B3
Realització de la pràctica:
Primer de tot, per evitar tenir que realitzar tantes conexions, treballarem amb un bus de 4 bits que contindra el digit que nosaltres em introduit mitjançant la FPGA. Aquest bus de 4 bits s'obte de la llibreria amb el nom de"Agregador Bus" però es pot dissenyar manualment mitjançant codi Verilog. Aquest agregador Bus esta programat de la seguent forma:
Diagrama conexions introducció 2 digits Icestudio:
Diagrama conexions Icestudio
La part vermella pertany al diagrama de generació de les variables de control Z1,Z0 i el control per seleccionar quin display s'ha d'iluminar. La part groga pertany al procés per seleccionar el digit a introduir. El bloc de la imatge esta pensat per poder introduir 4 digits de 4 numeros binaris cada un i poder anar-los seleccionant mitjançant les variables de Z1,Z0. Com a l'enunciat ens indica que nomes hem d'introduir un unic digit de 4 bits, nomes estara en funcionament un unic bus de dades, el XO[3,0]. Aquest digit en binari entrara com a I0 en els 4 multiplexors, de forma que a cada multiplexor hi haura un unic digit binari, es a dir, x3-x2-x1-x0 segons el multiplexor que toqui. Amb la senyal de selecció Z1,Z0 com a selecció dels multiplexors, aquestos aniran treient els digits que corresponguin segons quin valor de selecció hi ha en aquell moment. Ja que nomes em introduit un digit, quan selecció valgui un numero diferent de 00, els displays mostraran 0 ja que no hi ha cap altre numero conectat a les altres Ix del multiplexor. Per tant, quedara aixi:
Z1 | Z0 | Sortida Mux |
---|---|---|
0 | 0 | x3,x3,x2,x0 |
0 | 1 | 0,0,0,0 |
1 | 0 | 0,0,0,0 |
1 | 1 | 0,0,0,0 |