Digitális rendszerek tervezése FPGA áramkörökkel LOGSYS példa



Hasonló dokumentumok
Digitális elektronika gyakorlat

Digitális technika (VIMIAA01) Laboratórium 1

Digitális elektronika gyakorlat

Tervezési módszerek programozható logikai eszközökkel

Digitális elektronika gyakorlat. A VHDL leírástípusok

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

Tervezési módszerek programozható logikai eszközökkel

VHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót

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

A Picoblaze Core implementálása FPGA-ba

ISE makró (saját alkatrész) készítése

VHDL alapismeretek. (Xilinx FPGA-k programozása VHDL nyelven) Oktatási jegyzet. Összeállította: dr. Zigó Tamás

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

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

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

Digitális technika Xilinx ISE GUI használata

Digitális rendszerek. I. rész. Dr. Turóczi Antal

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.

Constraint-ek. Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium

Attribútumok, constraint-ek

Bev Be e v z e e z t e ő t az ISE re r nds nds e z r e használatához

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

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

LOGIKAI TERVEZÉS. Előadó: Dr. Oniga István

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

Nyolcbites számláló mintaprojekt

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

Dr. Oniga István DIGITÁLIS TECHNIKA 9

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

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

VHDL alapú tervezés. (nem a teljes változat) Írta : Dr. Hidvégi Timót egyetemi docens

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Digitális technika (VIMIAA02) Laboratórium 4

2008. október 9. Verzió

Egyszerű RISC CPU tervezése

Digitális technika (VIMIAA02) Laboratórium 4

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

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

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

Hardver leíró nyelvek (HDL)

Tisztelt Ügyfelünk! 1) Böngészési elızmények törlése

Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium

DIGITÁLIS TECHNIKA. Szabó Tamás Dr. Lovassy Rita - Tompos Péter. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar LABÓRATÓRIUMI ÚTMUTATÓ

Programozás és digitális technika II. Logikai áramkörök. Pógár István Debrecen, 2016

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

FPGA fejlesztés a Xilinx ISE Webpack-ben

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

HDL nyelvek: VHDL. Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium

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

Dr. Oniga István DIGITÁLIS TECHNIKA 8

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

Digitális technika (VIMIAA01) Laboratórium 4

Dial-UP Kapcsolat létrehozása angol nyelvű Windows 2000 alatt

A VHDL kódtól az FPGA-ba való ágyazásig From the VHDL Code to the Implementation to FPGA-s

Bevezető az ISE 11.2 rendszer használatához

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

Vektoros elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

Egyszerű mikroprocesszor RTL modellek (VHDL)

FTP-kapcsolat létrehozása FlashFXP alatt

Újrakonfigurálható eszközök

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

Digitális technika (VIMIAA02) Laboratórium 5.5

Laborgyakorlat Windows 7 upgrade-je, felhasználói adatok költöztetése

Tervezési módszerek programozható logikai eszközökkel

A MiniRISC processzor

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

Bevezetés az újra konfigurálható eszközök programozásába

SAP JAM. Felhasználói segédlet

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

FPGA alapú áramkörök fejlesztése a Xilinx ISE Webpack használatával

Kép részlet kivágás útvonalak létrehozása és szerkesztése útvonalak kijelöléssé alakítása Kijelölés > Lágy szél

MSP430 programozás Energia környezetben. Nokia 5110 grafikus kijelzo vezérlése

6. hét: A sorrendi hálózatok elemei és tervezése

GE4 4 és 6 digites Digitális számláló/idõzítõ

ISE makró (saját alkatrész) készítése

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]

A LOGSYS rendszer ismertetése

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

Joint Test Action Group (JTAG)

HDL nyelvek: VHDL. Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium

LOGIKAI TERVEZÉS. Előadó: Dr. Oniga István egyetemi docens I félév

DIGITÁLIS TECHNIKA 13. Dr. Oniga István

LOGSYS LOGSYS 10/100 ETHERNET MODUL FELHASZNÁLÓI ÚTMUTATÓ szeptember 16. Verzió

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

FPGA & Verilog ismertetı. BME Méréstechnika és Információs Rendszerek Tanszék

7.hét: A sorrendi hálózatok elemei II.

Klórérzékelı vezérlı elektronika

Tervezési módszerek programozható logikai eszközökkel

Üzembehelyezıi leírás

QGIS tanfolyam (ver.2.0)

Mikrorendszerek tervezése

Szintézis attributumok és constraint-ek

FPGA alapú robotkarvezérlés megvalósítása

LOGIKAI TERVEZÉS PROGRAMOZHATÓ. Elő Előadó: Dr. Oniga István

Újrakonfigurálható eszközök

TC-900 Ri clock HŰTÉSTECHNIKAI SZABÁLYZÓ, VALÓS IDEJŰ ÓRÁVAL VEZÉRELT LEOLVASZTÁSSAL, RS485 SOROS VONALI KOMMUNIKÁCIÓVAL

Az első lépések. A Start menüből válasszuk ki a Minden program parancsot. A megjelenő listában kattintsunk rá az indítandó program nevére.

Átírás:

BUDAPESTI MŐSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális rendszerek tervezése FPGA áramkörökkel LOGSYS példa Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT atórium

Egyszerő példa 8 bites tölthetı számláló megvalósítása a LOGSYS Spartan-3E FPGA kártyán: Lefelé számláljon Szinkron reset Szinkron töltés A számláló állapota jelenjen meg a LED-eken Töltés esetén a DIP kapcsolók értékét töltse be Legyen végállapot jelzés

Egyszerő példa LOGSYS fejlesztıi kábel MISO RST MOSI CLK Számláló CLK TC RST LOAD DIP kapcsoló D[7:0] Q[7:0] LED-ek

Egyszerő példa Verilog kód module cnt8(clk, rst, ld, d, q, tc); input wire clk; //Órajel. input wire rst; //Szinkron reset jel. input wire ld; //Szinkron töltés jel. input wire [7:0] d; //Töltéskor a számlálóba írt adat. output reg [7:0] q; //A számláló állapotát tároló regiszter. output wire tc; //Végállapot jelzés. always @(posedge clk) begin if (rst) q <= 8'b0000_0000; //Reset: alapállapot. else if (ld) q <= d; //Töltés: beírjuk d értékét a regiszterbe. else q <= q - 1; //Számlálás: csökkentjük a regiszter értékét. end assign tc = (q == 8'b0000_0000); //Végállapot jelzés. endmodule

Egyszerő példa UCF fájl #A LOGSYS fejlesztıi kábel jelei. NET "clk" LOC = "P129" ; NET "clk" PULLDOWN ; #CLK NET "rst" LOC = "P119" ; NET "rst" PULLDOWN ; #RST NET "ld" LOC = "P120" ; NET "ld" PULLDOWN ; #MOSI NET "tc" LOC = "P143" ; #MISO #DIP kapcsoló: töltéskor a számlálóba írandó adat. NET "d<0>" LOC = "P101" ; NET "d<1>" LOC = "P95" ; NET "d<2>" LOC = "P89" ; NET "d<3>" LOC = "P84" ; NET "d<4>" LOC = "P78" ; NET "d<5>" LOC = "P69" ; NET "d<6>" LOC = "P48" ; NET "d<7>" LOC = "P47" ; #8 darab LED: a számláló állapotának megjelenítése. NET "q<0>" LOC = "P59" ; NET "q<1>" LOC = "P58" ; NET "q<2>" LOC = "P54" ; NET "q<3>" LOC = "P53" ; NET "q<4>" LOC = "P52" ; NET "q<5>" LOC = "P51" ; NET "q<6>" LOC = "P50" ; NET "q<7>" LOC = "P43" ;

Egyszerő példa Verilog kód module cnt8( // A lábkiosztás megadása a TOP verilog modulban, Verilog attribútumként (* LOC = "P129" *) input wire clk, //Órajel. (* LOC = P119 *) input wire rst, //Szinkron reset jel. (* LOC = P120 *) input wire ld, //Szinkron töltés jel. (* LOC = P47,P48,P69,P78,P84,P89,P95,P101 *) input wire [7:0] d, //Töltéskor a számlálóba írt adat. (* LOC = P43,P50,P51,P52,P53,P54,P58,P59 *) output reg [7:0] q, //A számláló állapotát tároló //regiszter. (* LOC = P143 *) output wire tc //Végállapot jelzés. ); always @(posedge clk) begin if (rst) q <= 8'b0000_0000; //Reset: alapállapot. else if (ld) q <= d; //Töltés: beírjuk d értékét a regiszterbe. else q <= q - 1; //Számlálás: csökkentjük a regiszter értékét. end assign tc = (q == 8'b0000_0000); //Végállapot jelzés. endmodule

Egyszerő példa VHDL kód library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity cnt8 is Port ( clk : in STD_LOGIC; -- Órajel end cnt8; rst : in STD_LOGIC; -- Szinkron reset ld : in STD_LOGIC; -- Szinkron töltés d : in STD_LOGIC_VECTOR (7 downto 0); -- 8 bites adat töltéshez q : out STD_LOGIC_VECTOR (7 downto 0); -- A számláló kimenete tc : out STD_LOGIC); -- Végérték jelzés (=0)

Egyszerő példa VHDL kód architecture Behavioral of cnt8 is -- RTL szintő viselkedési leírás signal qint : STD_LOGIC_VECTOR (7 downto 0); -- Számláló belsı regiszter begin process (clk) -- A mőködést leíró órajelszinkron folyamat begin if (clk='1' and clk'event) then -- Ha órajel felfutó él esemény van, if rst='1' then -- akkor aktív reset esetén qint <= (others => '0'); -- legyen a számláló regiszter értéke 0 elsif ld ='1' then -- egyébként, ha a töltés jel aktív qint <= d; -- töltsük be a külsı adatot else qint <= qint - 1; -- egyébként számlálunk lefelé end if; end if; end process; q <= qint; -- A belsı számláló regisztert a -- kimeneti portra másoljuk tc <= '1' when qint = x"00" else '0'; -- A végérték kimenet jelez, ha a -- számláló regiszter értéke 0. end Behavioral;

ISE projekt létrehozása File menü: New project Név és elérési út megadása, HDL A használt eszköz megadása, ISE szimulátor, Verilog nyelv Új forrás hozzáadása a projekthez (most nem) Létezı forrás hozzáadása a projekthez (most nem) Összesítés a projektrıl

Forrás hozzáadása a projekthez Meglévı fájlok hozzáadása a projekthez: Project menü: Add Copy of Source Válasszuk ki a cnt8.v és a cnt8.ucf fájlokat

Forrás hozzáadása a projekthez Új forrás hozzáadása (ha gépelni szeretnénk ): Project menü: Add New Source Két fájlt adjunk hozzá a projekthez: Verilog Module: cnt8.v Implementation Constraint File: cnt8.ucf UCF fájl szerkesztése: Processes: User Constraints Edit Constraints (Text)

A kapcsolási rajz megtekintése Processes: Synthesize-XST View RTL Schematics: RTL szintő (kapuk, számlálók, stb.) View Technology Schematics: FPGA szintő (LUT, FF, stb.)

Szimuláció (ISE szimulátor) Viselkedési szimuláció: Az elhelyezés és a huzalozás hatása nincs figyelembe véve Adjunk hozzá a projekthez egy teszt környezetet: Új forrás hozzáadása: Test Bench Waveform A fájl neve: cnt8_test

Szimuláció (ISE szimulátor) A szimulátor érzékeli, hogy van órajel a tervben Idızítési paraméterek: Az alapértelmezett beállítások megfelelıek Állítsuk a teszt idıtartamát 10000 ns-ra: 50 órajel periódus

Szimuláció (ISE szimulátor) Készítsük el a teszt hullámformát: Kék jelzés: bemenetek, ezek beállíthatók Sárga jelzés: kimenetek (nem állíthatók) A szimuláció elindítása: Sources: Implementation Behavioral Simulation Sources: cnt8_test.tbw kiválasztása Processes: Xilinx ISE Sim. Simulate Behavioral Model

Szimuláció (ISE szimulátor) A szimuláció eredménye

Konfigurációs fájl létrehozása BIT fájl: Processes Generate Programming File SVF fájl: Processes Config. Target Device Manage Cfg. Project Prepare a Boundary-Scan File: SVF opció kiválasztása Az SVF fájl nevének megadása (legyen most cnt8.svf) A BIT fájl megnyitása (jelen esetben cnt8.bit) Jobb kattintás az eszközre Program menüpont kiválasztása Kattintsunk az OK gombra Létrejön az SVF fájl

Az FPGA felkonfigurálása Indítsuk el a LOGSYS alkalmazást Csatlakoztassuk a fejlesztıi kábelt a számítógéphez és az FPGA kártyához Kapcsoljuk be a tápfeszültséget: V out : 5V; V ref I/O: 3,3V; V ref JTAG: 2,5V; I out : kb. 50mA Nyissuk meg a JTAG konfigurációs interfészt Azonosítsuk a JTAG láncban található eszközöket Válasszuk ki az FPGA-t a listából (csak egy eszköz van) Töltsük le a cnt8.svf vagy a cnt8.bit fájlt az FPGA-ra BIT fájl esetén az impact elvégzi az SVF konverziót A DONE LED kigyulladása jelzi a sikeres konfigurálást

A számláló mőködésének ellenırzése Nyissuk meg a BitBang I/O funkciót Állítsunk be 4 Hz órajel frekvenciát Adjunk ki 3 órajelpulzust: A számláló állapota: 0x00 0xFF 0xFE 0xFD Adjunk ki folyamatos órajelet: A számláló állapota: 0xFD 0xFC 0xFB

A számláló mőködésének ellenırzése Állítsuk magasra az RST jelet: A számláló alapállapotba áll: XX 0x00 0x00 Reset alatt a végállapot jelzés (MISO) aktív Állítsuk alacsonyra az RST jelet: A számláló állapota: 0x00 0xFF 0xFE 0xFD

A számláló mőködésének ellenırzése Állítsuk le az órajelet A DIP kapcsolón állítsuk be a 0x06 értéket Adjunk ki LD jelet (MOSI): bináris 0100 Adjunk ki 12 órajelpulzust: A számláló tölt, a 0x00 állapotban TC (MISO) magas lesz