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

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

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

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

Digitális elektronika gyakorlat

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

Bevezető Típusok és operátorok a VHDL-ben A VHDL nyelv vezérlési szerkezetei Hieararchikus tervezés. Budapesti Műszaki és Gazdaságtudományi Egyetem

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

Budapesti Műszaki és Gazdaságtudományi Egyetem VHDL. Horváth Péter, Nagy Gergely. Elektronikus Eszközök Tanszéke (BME) október 3.

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

Digitális elektronika gyakorlat

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

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

Attribútumok, constraint-ek

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

Egyszerű mikroprocesszor RTL modellek (VHDL)

HDL alapú tervezés Milotai Zsolt

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

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

Szintézis attributumok és constraint-ek

Tartalom Tervezési egység felépítése Utasítások csoportosítása Értékadás... 38

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

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

Algoritmizálás és adatmodellezés tanítása 1. előadás

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

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

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

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

3. Gyakorlat Ismerkedés a Java nyelvvel

Megoldott feladatok. Informatika

VHDL oktatási segédlet

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

Kifejezések. Kozsik Tamás. December 11, 2016

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

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

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

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

Matematikai alapok. Dr. Iványi Péter

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

PASzSz. Dr. Kotsis Domokos

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

1. Kombinációs hálózatok mérési gyakorlatai

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

S z á m í t ó g é p e s a l a p i s m e r e t e k

Érdekes informatika feladatok

B IT MAN 65/1. Adatbázis Rendszerek II. Ellenőrző kérdések APLSQL B IT MAN. v:

Egyszerű RISC CPU tervezése

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

1. A feladatról. 2. Az áramkör leírása. Mechatronika, Optika és Gépészeti Informatika Tanszék D528. Léptetőmotor vezérlése

BASH script programozás II. Vezérlési szerkezetek

Database Systems II. ZH összefoglaló

Adatbázisok* tulajdonságai

A MiniRISC processzor

A BECKHOFF típusú PLC használata.

E- Laboratórium 3 Az ABB robotok alkalmazásai Elméleti leírás

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

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

Programozás alapjai. 5. előadás

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

Bevezetés a C++ programozásba

Internet technológiák

Adatok szűrése, rendezése

Algoritmizálás + kódolás C++ nyelven és Pascalban

S z á m í t ó g é p e s a l a p i s m e r e t e k

Információs Technológia

INFORMATIKAI ALAPISMERETEK

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Kriptográfiai algoritmus implementációk időalapú támadása Endrődi Csilla, Csorba Kristóf BME MIT

Haladó DBMS ismeretek 1

Neumann János Tehetséggondozó Program Gráfalgoritmusok II.

Programozási nyelvek I. (Az Ada) Kozsik Tamás

Adatok ábrázolása, adattípusok. Összefoglalás

16F628A megszakítás kezelése

PROGRAMOZÁSI NYELVEK - ADA. GYAKORLAT JEGYZET

SQL/PSM kurzorok rész

C# gyorstalpaló. Készítette: Major Péter

Mikrokontrollerek. Tihanyi Attila május 8

VB C++ C# JScript J# Common Language Specification. ADO.NET and XML. Base Class Library. Common Language Runtime. Operating System

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

Bevezetés a C++ programozási nyelvbe

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

A héj vezérlő szerkezetei I.

DIGITÁLIS TECHNIKA I KARNAUGH TÁBLA, K-MAP KARNAUGH TÁBLA PROGRAMOK PÉLDA: ÖT-VÁLTOZÓS MINIMALIZÁLÁS PÉLDA: ÖT-VÁLTOZÓS MINIMALIZÁLÁS

8. előadás Dinamikus memóriakezelés. Mutatók. Láncolt adatszerkezetek.

Aritmetikai és logikai műveletek. Adattömb kezelése.

Tipp A Word makrók kimerítõ tárgyalását megtalálhatjuk az O Reilly gondozásában megjelent Writing Word Macros címû könyvben.

A számítógép alapfelépítése

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

MOSFET kapcsolóeszközök VHDL szimulációja

A PHP nyelv alapjai. Web-Sky Consulting Kft Tóth Imre 2009

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

Ködös határ (Félreértés, hiba)

Programozás 5. Dr. Iványi Péter

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

Programozás I gyakorlat

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

Átírás:

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

Lefoglalt szavak abs access after alias all and architecture array assert attribute block body buffer bus case component configuration constant disconnect downto else elsif end entity exit file for function generate generic guarded if in inout Is label library linkage loop map mod nand new next nor not null of on open or others out package port procedure process range record register rem report return select severity signal subtype then to transport type units until use variable wait when while with xor group impure inertial literal postponed pure reject rol ror shared sla sll sra srl unaffected xnor VHDL program szerkezete Logikai áramkör Entitás Architektúra Strukturális Viselkedési 2

A VHDL program felépítése A B CIN? S COUT entitás entity fa1 is port ( A, B, CIN : in bit; S, COUT : out bit); end fa1; architektúra architecture struct of fa1 is S <= A xor B xor CIN; COUT <= (A and B) or (A and CIN) or (B and CIN); end struct; Entitás entity NÉV is generic (konstansok); port( bemenet neve : bemenet típusa; kimenet neve : kimenet típusa); end NÉV; entity pelda1 is end pelda1; generic (integer : kesleltetes := 10 ns); port(a, B, Cin : in bit; S, Cout : out bit); entity szamlalo is generic (szelesseg : integer := 16); port(d : in bit_vector (szelesseg-1 downto 0); CLK, EN : in bit; S : out bit_vector (szelesseg-1 downto 0)); end szamlalo; 3

Architektúra ARCHITECTURE architektúra-neve OF entitás-neve IS komponensek megadása jelek deklarációja folyamatok definíciója függvények definíciója BEGIN processek leírások END architektúra-neve; Komponens component azonosító generic lista; port lista; end component; component count1 generic (m : integer := 7); port ( DCOUNT : in std_logic_vector(m downto 0); CLK : in std_logic; CLR : in std_logic; QCOUNT : out std_logic_vector(m downto 0)); end component; 4

Adattípusok I. SIGNAL A1 : bit; SIGNAL A2 : bit_vector(7 downto 0); A1 <= 1 ; A2 <= 00110011 ; bit_vector(7 downto 0); bit_vector(8 downto 1); bit_vector(0 downto 7); 0 1 Z - L H U X W LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL bit_vector(1 downto 8); std_logic; std_logic_vector(7 downto 0); Adattípusok II. Ezekkel tudunk aritmetikai műveleteket végezni. signal X1, X2, Y : real; Y <= X1 + X2; Boolean értéke true vagy false lehet. SIGNAL A1 : BOOLEAN; A type segítségével tudunk különböző értékeket megadni egy változónak. TYPE BYTE IS ARRAY(7 downto 0) of bit; -- Létrehozzuk a byte típust TYPE MEMORY_TYPE IS ARRAY(1 to 16) of byte; -- Definiáljuk a memóriát, mint -- tömböt SIGNAL MEMORY : MEMORY_TYPE; -- A memory változóhoz hozzárendeljük -- a 16 szavas, 8 bites memóriát MEMORY(4) <= 00110011 -- A 4. memória címre 00110011-et írunk 5

Példa I. F = AB + CD Entitás Architektúra A B C D? F A B C D & & 1 F Strukturális leírás entity fpelda is port (A, B, C, D : in bit; F : out bit); end fpelda; architecture struct of fpelda is F <= (A and B) or (C and not(d)); end struct; entitás architektúra 6

Viselkedési leírás entity fpeldav is port (A, B, C, D : in bit; F : out bit); end fpeldav; architecture viselk of fpeldav is process(a,b,c,d) if (A= 1 and B= 1 )or (C= 1 and D= 0 ) then F <= 1 ; else F <= 0 ; end if; end process; end viselk; Multiplexer entity multip2 is port(a0, A1, v: in bit; Y: out bit); end multip2; arhitecture structural of multip2 is Y <= (A0 and not(v)) or (A1 and v); end structural; A0 A1 v & & 1 Y arhitecture viselkedes of multip2 is Y <= A0 when v = '0' else A1; end viselkedes; A0 A1 Y v 7

Process címke: process (szenzitív lista) deklarációs lista; utasítások; end process címke; process(clk, CLR) if CLK'event and CLK = '1' then if CLR = '1' then for i in 0 to m-1 loop SQ(i) <= '0'; end loop; Q <= SQ; else SQ <= SQ + 1; Q <= SQ; end if; else null; end if; end process; Feltételes szerkezetek (IF) IF feltétel1 THEN utasítások1 ELSE utasítások2 END IF; IF feltétel1 THEN utasítások ELSIF feltétel2 THEN utasítások ELSIF feltétel3 THEN... ELSE feltételn END IF; 8

Feltételes szerkezet if RST = 1 and CLK event and CLK = 1 then if RST = 1 then if CLK event and CLK = 1 then if CLK event and CLK = 1 then if RST = 1 then Feltételes szerkezetek (CASE) CASE expression IS WHEN c1 => sequential-statements; WHEN c2 => sequential-statements;... WHEN OTHERS => sequential-statements; end CASE; 9

Feltételes szerkezetek (WHEN) entity condstmt is port(a, B, C, D : in bit_vector(7 downto 0); S : in bit_vector(1 downto 0); Y : out bit_vector(7 downto 0)); end condstmt; architecture RTL of condstmt is Begin Y <= A when S ="00" else B when S="01" else C when S="10" else D; end RTL; library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity szorzo1 is port(a, B : in std_logic_vector(3 downto 0); P : out std_logic_vector(7 downto 0)); end szorzo1; architecture viselk of szorzo1 is P <= A * B; end viselk; Adattípusok 10

Ciklusok loop Feltétel nélküli hurok. A next vagy az exit utasítás használatáig vagyunk a ciklusban. cimke: loop utasítások end loop cimke while A ciklusmag addig hajtódik végre, amíg a feltétel igaz. címke: for Adott iterációban hajtódik végre a ciklusmag. címke: while feltétel loop utasítások end loop címke; for ciklusváltozó in tartomány utasítások end loop címke; for ciklus if CLR = '1' then for i in 0 to m-1 loop SQ(i) <= '0'; end loop; Q <= SQ; else..... 11

Várakozás (WAIT) wait on Addig várakozunk, amíg az adott jel értéke meg nem változik wait on CLK; wait on RST, CLK, SET; wait until Logikai feltétel wait until RST = 1 ; wait for Adott ideig várakozunk wait for 20 ns; Szimuláció DS CLKS QS RSTS A szimulálandó áramkör A szimulálandó áramkör és a testbench A szimulálandó Áramkör VHDL kódja 12

A szimulált kód QS A DFF szimulációja 13

Szorzó (8x8) A(7.. 0) B(7.. 0) P(15.. 0) Tesztkörnyezet 14

Szimuláció 4/1 multiplexer szimulációja X(31.. 0) Y(7.. 0) SEL0 SEL1 15

A tesztkörnyezet? 4/1 multiplexer szimulációja 16