14. TARTALOM FUTTATÁSA A FEJLESZTŐLAP HÉTSZEGMENSES KIJELZŐJÉN

Hasonló dokumentumok
11. KÓDÁTALAKÍTÓ TERVEZÉSE HÉTSZEGMENSES KIJELZŐHÖZ A FEJLESZTŐLAPON

12. NYOMÓGOMBOK ÉS KAPCSOLÓK PERGÉSMENTESÍTÉSE A FEJLESZTŐLAPON

Újrakonfigurálható eszközök

Újrakonfigurálható eszközök

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

Ellenőrző mérés mintafeladatok Mérés laboratórium 1., 2011 őszi félév

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Újrakonfigurálható eszközök

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

Hardver leíró nyelvek (HDL)

10. EGYSZERŰ HÁLÓZATOK TERVEZÉSE A FEJLESZTŐLAPON Ennél a tervezésnél egy olyan hardvert hozunk létre, amely a Basys2 fejlesztőlap két bemeneti

Elektronikus dobókocka tervezési példa

Kombinációs áramkörök modelezése Laborgyakorlat. Dr. Oniga István

Digitális technika (VIMIAA02) Laboratórium 5.5

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Beágyazott és Ambiens Rendszerek Laboratórium BMEVIMIA350. Mérési feladatok az 1., 2. és 3. mérési alkalomhoz

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron

Kiegészítő segédlet szinkron sorrendi hálózatok tervezéséhez

Hobbi Elektronika. A digitális elektronika alapjai: Újrakonfigurálható logikai eszközök

Bevezetés a mikrovezérlők programozásába: MAX6958: Hétszegmenses LED kijelző vezérlő

Hobbi Elektronika. A digitális elektronika alapjai: Sorrendi logikai áramkörök 3. rész

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Digitális elektronika gyakorlat

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

Újrakonfigurálható eszközök

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 19. Verzió

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg: Olvasható aláírás:...

Egyszerű RISC CPU tervezése

Bevezetés az elektronikába

Újrakonfigurálható eszközök

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Előadó: Dr. Oniga István

Verilog HDL ismertető 4. hét : hét dia

Mérési jegyzőkönyv. az ötödik méréshez

Digitális technika (VIMIAA02) Laboratórium 4

Verilog HDL ismertető

Digitális technika VIMIAA hét

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Digitális technika (VIMIAA02) Laboratórium 3

LOGSYS EGYSZERŰ ALKALMAZÁS KÉSZÍTÉSE A LOGSYS KINTEX-7 FPGA KÁRTYÁRA A XILINX VIVADO FEJLESZTŐI KÖRNYEZET HASZNÁLATÁVAL június 16. Verzió 1.

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika VIMIAA hét

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Útmutató EDC kézivezérlőhöz

Digitális technika (VIMIAA01) Laboratórium 4

A Picoblaze Core implementálása FPGA-ba

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Előadó: Nagy István (A65)

Budapesti Műszaki és Gazdaságtudományi Egyetem. A Verilog HDL II. Nagy Gergely. Elektronikus Eszközök Tanszéke (BME) szeptember 26.

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

MSP430 programozás Energia környezetben. Hétszegmenses LED kijelzok

III. Alapfogalmak és tervezési módszertan SystemC-ben

DIGITÁLIS TECHNIKA feladatgyűjtemény

Számlálók, adatfeldolgozó egységek

3.6. HAGYOMÁNYOS SZEKVENCIÁLIS FUNKCIONÁLIS EGYSÉGEK

2) Tervezzen Stibitz kód szerint működő, aszinkron decimális előre számlálót! A megvalósításához

2008. október 9. Verzió

A Verilog HDL áttekintése

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

SZORGALMI FELADAT. 17. Oktober

C2RF Többzónás programozható vezeték nélküli digitális szobatermosztát

Az MSP430 mikrovezérlők digitális I/O programozása

Újrakonfigurálható eszközök

A VERILOG HARDVER LEÍRÓ NYELV ALKALMAZÁSA A LOGIKAI SZINTÉZISBEN

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR

Digitális technika VIMIAA01 5. hét

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

Verilog HDL ismertető 2. hét : 1. hét dia

Silabs STK3700, Simplicity Studio laborgyakorlat

Digitális technika VIMIAA01 5. hét Fehér Béla BME MIT

S2302RF vezeték nélküli programozható digitális szobatermosztát

Sanxing SX601 P12S01. Egyfázisú SMART Fogyasztásmérő

PROTOTÍPUSKÉSZÍTÉS. Előadó: Dr. Oniga István

Újrakonfigurálható eszközök

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Gépészmérnöki és Informatikai Kar Automatizálási és Kommunikáció- Technológiai Tanszék

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

Leírás az ügyfelek számára. Sanxing SX501 (SX1A1-SELS-05) Egyfázisú smart fogyasztásmérő GPRS modemmel

MicLab Javítási útmutató

5. Hét Sorrendi hálózatok

PLC Versenyfeladat. XIV. Országos Irányítástechnikai Programozó Verseny Budapest, március Összeállította az EvoPro Kft.

LOGSYS LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ november 8. Verzió

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 18. Verzió

Joint Test Action Group (JTAG)

Ütem Lámpafázisok A számláló értéke ütemmerker 1 P 0 M1 2 P 1 M2 3 P S 2 M3 4 Z 3 M4 5 Z 4 M5 6 Z 5 M6 7 Z 6 M7 8 S 7 M8

Leírás az ügyfelek számára

A C programozási nyelv I. Bevezetés

PROTOTÍPUSKÉSZÍTÉS. Előadó: Dr. Oniga István

Számítógépek felépítése, alapfogalmak

Informatika érettségi vizsga

Dr. Oniga István DIGITÁLIS TECHNIKA 9

DIGITÁLIS TECHNIKA I

Átírás:

14. TARTALOM FUTTATÁSA A FEJLESZTŐLAP HÉTSZEGMENSES KIJELZŐJÉN A digitális berendezések kijelzőjének kezelésénél gyakori feladat a kijelzett tartalom mozgatása valamilyen szabály szerint. Ebben a példában erre látunk megoldást. 1

14.2. FELADAT DEFINIÁLÁSA A Basys2 fejlesztőlap kijelző egysége négy darab hétszegmenses LED kijelzőből áll, ahogyan azt a 11. fejezetben láttuk. A szegmensek egymástól függetlenül vezérelhetők, így nem csak decimális/ hexadecimális számjegyek jeleníthetők meg, hanem minden más szegmens kombináció is. A vezérlő vonalak számának csökkentése érdekében a vezérlés időmultiplex segítségével történik, ahogy ezt a 11.2 pontban láthattuk. 2

A jelen feladat az, hogy bizonyos rögzített tartalmat fél másodpercenként balra léptessünk, a bal szélen kieső számjegyet viszont visszatápláljuk a jobb szélső kijelzőre. A konkrét tartalom az 1, 2, 3, 4 számok és négy üres hely (sötét kijelző). Nem szükséges a tartalom változtatása vagy más beavatkozás a működés során. 3

14.3. TERV HDL LEÍRÁSA Az időmultiplex megvalósítása és a tartalom léptetése olyan feladatok, amelyek sorrendi hálózat megépítését teszik szükségessé. A sorrendi hálózat működtetéséhez órajel generátort kell építenünk (DCM_Module). Az időmultiplex megvalósítása és a tartalom lassú léptetés az órajel megfelelő arányú leosztásával oldható meg. A kijelző működtetését egy további Verilog modul (DisplayDriver) írja le. 4

A vezérlést végző logikai automatának két állapota van, ezeket a következő konstansokkal jelöltük: S_RESET, S_WAIT_HALF_SEC. Az automata a konfigurálást követően az S_RESET állapotból indul, itt töltődik be az előírt tartalom a Seg0...Seg7 regiszterekbe. Ezt követően az automata a S_WAIT_HALF_SEC állapotba lép, ahol az első feladat egy számláló üzemeltetése, ezzel állítjuk be a fél másodpercenkénti léptetést. 5

Nulláról indulva a számláló a 3,125,000/2 értéket fél másodperc alatt éri el, mivel a számláló léptetésének frekvenciája 3,125MHz. A megfelelő tartalom elérése után megtörténik a tartalom eltolása, majd reszeteljük a számlálót. A főmodul Verilog kódja a következő: 6

module Rotation( output [7:0] DisplaySegments, output AN0, AN1, AN2, AN3, input iclk50mhz); DCM_Module DCM_Module_inst(iClk50MHz, Clk3MHz125, buf_clk50mhz, Clk50MHz); reg [ 7:0] Seg0, Seg1, Seg2, Seg3, Seg4, Seg5, Seg6, Seg7; 7

DisplayDriver DisplayDriver_inst(.DisplaySegments(DisplaySegments),.AN0(AN0),.AN1(AN1),.AN2(AN2),.AN3(AN3),.DSP0_To_Display(Seg0),.DSP1_To_Display (Seg1),.DSP2_To_Display(Seg2),.DSP3_To_Display(Seg3),.Clk3MHz125 (Clk3MHz125)); 8

localparam [3:0] S_RESET = 4'd0, S_WAIT_HALF_SEC = 4'd1; reg[ 3:0] State = S_RESET; reg[21:0] cnt_wait_half_sec; always@(posedge Clk3MHz125) begin case(state) S_RESET: begin Seg0 <= ~(8'b0000_0110); Seg1 <= ~(8'b0101_1011); 9

Seg2 <= ~(8'b0100_1111); Seg3 <= ~(8'b0110_0110); Seg4 <= 8'hFF; Seg5 <= 8'hFF; Seg6 <= 8'hFF; Seg7 <= 8'hFF; State <= S_WAIT_HALF_SEC; end S_WAIT_HALF_SEC: begin cnt_wait_half_sec <= cnt_wait_half_sec + 1'd1; 10

if(cnt_wait_half_sec == (22'd3_125_000 >> 1)) begin Seg0 <= Seg7; Seg1 <= Seg0; Seg2 <= Seg1; Seg3 <= Seg2; Seg4 <= Seg3; Seg5 <= Seg4; Seg6 <= Seg5; Seg7 <= Seg6; cnt_wait_half_sec <= 0; end 11

end endcase end Endmodule Az 3,125MHz-es órajelet előállító órajel modul HDL leírását megtaláljuk a 12.3 pontban. A kijelzőt vezérlő Verilog modul (DisplayDriver) a megfelelő regiszterek (Seg_0...Seg_3) tartalmát kiküldi az FPGA megfelelő kivezetéseire (DisplaySegments). 12

Az időmultiplex megvalósításához szükséges egy számláló (cnt_5ms), amely egymás után, periódikusan, 5-5ms időre felvillantja az egyes számjegyeket. Mivel a számláló 3,125MHz frekvenciájú órajelet kap, az 5ms-os időzítéshez 0-tól 15624-ig kell számlálnia (3,125,000 5 10-3 = 15625). A kijelző modul működését egy logikai automata vezérli. 13

Ez a konfigurálást követő S_RESET állapotban elvégzi az AN0...AN3 regiszterek beállítását, hogy egyszerre csak egy számjegy villanjon fel, majd áttér az S_COUNTING állapotba, ahonnan nem lép ki sohasem. Ez utóbbi állapotban történik a tartalom megjelenítése. A megfelelő Verilog kód a következő: 14

module DisplayDriver( output reg [7:0] DisplaySegments, output reg AN3, AN2, AN1, AN0, input [7:0] DSP3_To_Display, input [7:0] DSP2_To_Display, input [7:0] DSP1_To_Display, input [7:0] DSP0_To_Display, input Clk3MHz125); localparam [3:0] S_RESET = 4'd0, S_COUNTING = 4'd1; 15

reg [3:0] State = S_RESET; reg [13:0] cnt_5ms = 0; always@(posedge Clk3MHz125) begin case(state) S_RESET: begin cnt_5ms <= 0; AN0 <= 0; AN1 <= 1'd1; AN2 <= 1'd1; AN3 <= 1'd1; 16

State <= S_COUNTING; end S_COUNTING: begin cnt_5ms <= cnt_5ms + 1'd1; if(cnt_5ms == 14'd15624) begin cnt_5ms <= 0; {AN3, AN2, AN1, AN0} <= {AN2, AN1, AN0,AN3}; end end endcase end 17

always@(*) begin case({an3, AN2, AN1, AN0}) 4'b0111:DisplaySegments = DSP3_To_Display; 4'b1011:DisplaySegments = DSP2_To_Display; 4'b1101:DisplaySegments = DSP1_To_Display; 4'b1110:DisplaySegments =DSP0_To_Display; default: DisplaySegments = 0; endcase end endmodule 18

14.4. FELHASZNÁLÓI MEGKÖTÉSEK BEÁLLÍTÁSA Az FPGA eszköz tizenhárom kivezetését kell összekötni a tervezett logikai hálózattal. Ezek a következők: az 50 MHz-es órajel bemenet, a kijelző négy anódja, a kijelző nyolc katódkivezetése (hét szegmens és a tizedes pont). 19

A 20