Digitális elektronika gyakorlat



Hasonló dokumentumok
Digitális elektronika gyakorlat

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

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

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

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

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

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

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

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

Újrakonfigurálható eszközök

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

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

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

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

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

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

HDL nyelvek: VHDL. 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)

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Újrakonfigurálható eszközök

FPGA fejlesztés a Xilinx ISE Webpack-ben

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

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

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

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

Attribútumok, constraint-ek

DIGITÁLIS TECHNIKA I

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

Elektronikus dobókocka tervezési példa

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

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

DIGITÁLIS TECHNIKA I

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

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

Újrakonfigurálható eszközök

A Picoblaze Core implementálása FPGA-ba

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

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.

Digitális technika (VIMIAA02) Laboratórium 5.5

2008. október 9. Verzió

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

Dr. Oniga István DIGITÁLIS TECHNIKA 9

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

Dr. Oniga István DIGITÁLIS TECHNIKA 4

Rendszerszintű tervezés: SystemC I.

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

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

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

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

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

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

Szintézis attributumok és constraint-ek

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

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

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.

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

Hardver leíró nyelvek (HDL)

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

5. Laborgyakorlat. Számláló funkciók, időzítő funkciók.

Digitális technika (VIMIAA02) Laboratórium 1

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

Digitális technika (VIMIAA02) Laboratórium 1

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

Nyolcbites számláló mintaprojekt

Labor gyakorlat Mikrovezérlők

Digitális technika (VIMIAA02) Laboratórium 3

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

Újrakonfigurálható eszközök

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

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

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

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

E-Laboratórium 1 Kombinációs digitális áramkörök alkalmazása Elméleti leírás

DIGITÁLIS TECHNIKA I PÉLDA: 3 A 8 KÖZÜL DEKÓDÓLÓ HOGYAN HASZNÁLHATÓ EGY 4/16-OS DEKÓDER 3/8-AS DEKÓDERKÉNT? D 2 3 DEKÓDER BŐVÍTÉS

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

Labor gyakorlat Mikrovezérlők

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

Digitális technika (VIMIAA02) Laboratórium 3

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

Digitális technika (VIMIAA02) Laboratórium 2

Microblaze Micro Controller

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

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

Dr. Oniga István DIGITÁLIS TECHNIKA 9

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

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

Programozott soros szinkron adatátvitel

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

10. Digitális tároló áramkörök

(BMEVIMIM322) Az NI 9263 DA és NI 9239 AD kártyákra alapuló mérések NI crio-9074 platformon. (BME-MIT-Beágyazott Rendszerek Csoport)

Digitális rendszerek. Mikroarchitektúra szintje

EB134 Komplex digitális áramkörök vizsgálata

Kombinációs hálózatok Adatszelektorok, multiplexer

Integrált áramkörök/6 ASIC áramkörök tervezése

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás

AF 088II DIO 16/8 AF 088II DIO 16. Digitális ki-, bemeneti modul. Digitális bemeneti modul

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

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

Egyszerű RISC CPU tervezése

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

Átírás:

FELADATOK 1. Felhasználva az XSA 50 FPGA lapon található 100MHz-es programozható oszcillátort, tervezzetek egy olyan VHDL modult, amely 1 Hz-es órajelet állít elő. A feladat megoldható az FPGA lap órajelének a megfelelő leosztásával. 2. Tervezzetek egy 4 bit-es, BCD kodú számlálót megvalósító VHDL modult. 3. Tervezzetek egy 7 szegmenses dekodoló VHDL modult. 4. A Schematic Editor segítségével kössétek őssze a megvalósított órajelgenerator modult a számlálót és a 7 szegmenses dekodoló modult, a dekdoló kimeneteit pedig vezessétek ki az FPGA lapon található 7 szegmenses kijelzőre. 1

1. 1 Hz órajelt generáló modul Az XSA 50 FPGA lapon tlálható progrmozható oszcillátórt az előző gyakorlatokban megismert GXSSetClk alkalmazást használva programozhatjuk. Valójában 2 hatványaival osztható az oszcillátor 100 Mhz-es alapfrekvenciája. A gyakorlatunk esetén a 100 Mhz-es alapfrekvenciát 2- vel osztva, 50 Mhz-es frekvenciájú órajelhez jutunk. Ez a jel hozzáférhető az FPGA lap MasterClk elnevezésú portján. A port számát kikereshetjük az XSA Board User Manual-ban található táblázatokból. Ahhoz, hogy 1 Hz frekvenciájú órajelet allítsunk elő, az 50 Mhz frekvenciájú jelet 50.000.000-val kellene osztani. A frekvenciaosztó áramkör elve egy számláló, amely 25.000.000-ig számol, és minden számolási ciklus után megtagadja a saját kimenetét. (25.000.000) 10 =(1011111010111100001000000) 2 Tehát 25.000.000 binárisan 25 bit-en ábrázolható. Deklaráljuk a bemeneti és kimeneti portokat: clk_in és clk_out, valamint egy reset portot, mely segítségével leállíthatjuk az órajel taktusait. Az architektura részben deklarálunk két segédváltozót: clk_cnt, amely 25.000.000-ig számol és clk_out amely az órajelgenerétorunk kimeneti bit-je. Megvizsgáljuk, a reset bemenet állapotát. Ha a reset bemenet 0 logikai értékű, a kimenetet és a belső számláló tartalmát nullázzuk. Ellenkező esetben a bemeneti órajel minden felfutó élénél (rising_edge) n0velj-k eggyel a belső számláló értékét és ha 25.000.000-hoz ért, nullázzuk es megtagadjuk a kimeneti bit értékét. Az alábbiakban megtalálható az órajelgeneráló modul VHDL forráskódja. 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 clock_1hz is Port ( reset : in std_logic; clk_in : in std_logic; clk_out : out std_logic); end clock_1hz; architecture behavioral of clock_1hz is signal clk_cnt : unsigned(24 downto 0); signal clk_bit : std_logic; 2

gen_clock: process (clk_in, reset) is if (reset = '0') then clk_cnt <= "0000000000000000000000000"; clk_bit <= '0'; elsif rising_edge(clk_in) then if (clk_cnt = 25_000_000) then clk_cnt <= "0000000000000000000000000"; clk_bit <= not clk_bit; else clk_cnt <= clk_cnt + 1; end if; end if; end process; clk_out <= clk_bit; end behavioral; 3

2. 4 bit-es számláló modul LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY count IS PORT ( clock: ); END count; IN STD_LOGIC; sload: IN STD_LOGIC; data: IN integer RANGE 0 TO 31; result: OUT integer RANGE 0 TO 31 ARCHITECTURE rtl OF count IS SIGNAL result_reg : integer RANGE 0 TO 31; BEGIN PROCESS (clock) BEGIN IF (clock'event AND clock = '1') THEN IF (sload = '1') THEN result_reg <= data; ELSE result_reg <= result_reg + 1; END IF; END IF; END PROCESS; result <= result_reg; END rtl; 4

3. Hétszegmenses dekodoló modul A hétszegmenses dekodoló modul eg y4 bit-es bináris számot kap bemenetként (A, B, C, D) és egy 8 bi-ből álló vektort ad kimenetként. A 8 bit megfelel egy hétszegmenses kijelző a, b, c, d, e, f, g szegmenseinek és a DP (decimal point) tízedesvesszőnek. 1.Ábra: Hétszegmenses kijelző A négy bemeneti bit ősszesen 16 bemeneti kombinációt enged meg. Mindeniknek megfelel egy kimeneti kombináció. A case útasítás segítségével értékelhetjük ki a bemeneten kapott értéket, miután egy 4 elemű vektorba másoljuk ezeket, és minden bemeneti kombináció esetén a kimeneti vektor elemeit a kivánt megjelenítendő szám szerint töltjük fel. Az alábbiakban megtalálható az hétszegmenses dekodoló modul VHDL forráskódja. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity hex_display is Port( A : in std_logic; B : in std_logic; C : in std_logic; D : in std_logic; segm : out std_logic_vector(7 downto 0) ); end hex_display; architecture Behavioral of hex_display is signal val : std_logic_vector(3 downto 0); process(a,b,c,d) 5

val(0)<=a; val(1)<=b; val(2)<=c; val(3)<=d; case val is when "0000" => segm<="01111110"; when "0001" => segm<="00001100"; when "0010" => segm<="10110110"; when "0011" => segm<="10011110"; when "0100" => segm<="11001100"; when "0101" => segm<="11011010"; when "0110" => segm<="11111010"; when "0111" => segm<="00001110"; when "1000" => segm<="11111110"; when "1001" => segm<="11011110"; when "1010" => segm<="11101110"; when "1011" => segm<="11111000"; when "1100" => segm<="01110010"; when "1101" => segm<="10111100"; when "1110" => segm<="11110010"; when "1111" => segm<="11100010"; when others => segm<="00000000"; end case; end process end Behavioral; 6