Egyszerű mikroprocesszor RTL modellek (VHDL)

Hasonló dokumentumok
Digitális elektronika gyakorlat

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

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

Egyszerű RISC CPU tervezése

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 technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Újrakonfigurálható eszközök

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

ISA szimulátor objektum-orientált modell (C++)

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

Hardver leíró nyelvek (HDL)

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

Attribútumok, constraint-ek

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

Constraint-ek. 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

Szintézis attributumok és constraint-ek

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

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

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

Újrakonfigurálható eszközök

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

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

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.

Szekvenciális hálózatok és automaták

Elvonatkoztatási szintek a digitális rendszertervezésben

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

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

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

Végh János Bevezetés a Verilog hardver leíró nyelvbe INCK??? előadási segédlet

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

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

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

Digitális technika (VIMIAA02) Laboratórium 4

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

A Verilog HDL áttekintése

Mikroelektronikai tervezés

Verilog ismertető (Szántó Péter, BME MIT, )

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

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

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

A Picoblaze Core implementálása FPGA-ba

Mintavételes szabályozás mikrovezérlő segítségével

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

Digitális technika VIMIAA02 7. hét Fehér Béla BME MIT

Digitális technika VIMIAA02 7. hét

Digitális elektronika gyakorlat

következő: 2.)N=18 bites 2-es komplemens fixpontos rendszer p=3 Vmin+ =delta r=2^(-p)=2^(-3)=

Digitális technika VIMIAA02 9. hét

Szántó Péter BME Méréstechnika és Információs Rendszerek Tanszék, FPGA Labor

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

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

A MiniRISC processzor

Digitális technika VIMIAA02

Digitális technika VIMIAA02

Bevezetés az informatikába

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

Digitális eszközök típusai

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 (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

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

Tudományos diákköri dolgozat. Tervezési keretrendszer alkalmazásorientált mikroprocesszorokhoz

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

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

Verilog HDL ismertető

8.3. AZ ASIC TESZTELÉSE

5. Hét Sorrendi hálózatok

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

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

Elektronika, 5. gyakorlat: algoritmikus C szintézis

HDL tervezés. Gábor Bata FPGA Developer Microwave Networks Ericsson Hungary Ltd.

1. A VHDL mint rendszertervező eszköz

SZORGALMI FELADAT. 17. Oktober

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

Rendszerszintű tervezés: SystemC I.

Összeadás BCD számokkal

Digitális technika VIMIAA01

Joint Test Action Group (JTAG)

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

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

Újrakonfigurálható eszközök

Újrakonfigurálható eszközök

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

MIKROELEKTRONIKA, VIEEA306

Digitális technika VIMIAA01 5. hét

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

Digitális Rendszerek és Számítógép Architektúrák (BSc államvizsga tétel)

Mikrorendszerek tervezése

Digitális technika (VIMIAA01) Laboratórium 4

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

Digitális technika Laboratórium 6.

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

Digitális technika VIMIAA hét

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

Átírás:

Budapesti Műszaki és Gazdaságtudományi Egyetem Egyszerű mikroprocesszor RTL modellek (VHDL) Horváth Péter Elektronikus Eszközök Tanszéke 2014. augusztus 11. Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 1 / 17

Alapok RTL modellezés alapfogalmak elnevezés: Register-Transfer Level: az adattároló elemek közötti adatáramlást írjuk le nyelvek: tipikusan hardverleíró nyelvek (VHDL, Verilog), de a rendszerszintű modellező nyelvek (SystemVerilog, SystemC stb.) is le tudják írni ezt a fajta absztrakciót nyelvi eszközök: a hardverleíró nyelvek nyelvi szerkezeteinek csak egy részhalmaza tartozik az RTL nyelvi eszközök közé (szintetizálható nyelvi szerkezetek) az RTL modell a legmagasabb elvonatkoztatási szintű modell, ami a klasszikus eszközökkel szintetizálható Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 2 / 17

Nyelvi eszközök Leggyakoribb nyelvi szerkezet folyamat Az RTL modellek egyik leggyakrabban alkalmazott nyelvi szerkezete a folyamat (VHDL-ben process, Verilog-ban always-block). Leírhatók vele kombinációs hálózatok (kombinációs folyamat) és szinkron hálózatok (szinkron folyamat) egyaránt. Szerkezete érzékenységi lista: jelek halmaza, amelyek változása a folyamat törzsének lefutását eredményezi törzs: sorrendi utasítások, amelyek akkor hajtódnak végre, ha az érzékenységi listán valami változás történt A fenti viselkedést mindegyik RTL modellező nyelv implementálja valamilyen formában (VHDL, Verilog egyértelmű, SystemC-t lásd később) Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 3 / 17

Nyelvi eszközök Leggyakoribb nyelvi szerkezet folyamat Kombinációs folyamat: minden jobbérték az érzékenységi lista része L_ADDER : process ( op_a, op_b ) begin result <= unsigned ( op_a ) + unsigned ( op_b ); end process ; Szinkron folyamat: CSAK az órajel (és legfeljebb az aszinkron reset) van az érzékenységi listában L_REGISTER : process ( clk ) begin if ( rising_edge ( clk ) ) then if ( reset = 1 ) then dout <= ( others => 0 ); elsif ( ce = 1 ) then dout <= din ; end if; end if; end process ; Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 4 / 17

Nyelvi eszközök Állapotgépek Az RTL modellekben központi szerepe van az állapotgépek leírásának. Feladatai: vezérlési feladatok esetén a kimenetek időzítése, adatfeldolgozás esetén a műveletvégző erőforrások (ALU, regiszterek stb.) vezérlő jeleinek előállítása Részei állapotregiszter következőállapot-logika kimeneti logika HDL modellezés módjai egy-process: az összes kimenet szinkron (nagy erőforrásigény, glitch-mentes vezérlési vonalak) két-process: kisebb erőforrásigény, Mealy-bemenetek okozhatnak problémát három-process: a szintézis kimenete ua., mint a két-process megoldásnál Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 5 / 17

Mikroprocesszor RTL modellje HW/SW partícionálás Az RTL modell elkészítésekor a kiindulási alap általában valamilyen magasabb szintű modell (procedurális vagy objektum-orientált) El kell dönteni, hogy mit valósítunk meg hardverben és mi az, ami majd egy processzoron futó programként valósul meg. Az assembler + mikroprocesszor modell esetén ez egyszerű az assembler a leendő mikroprocesszoros rendszer szoftver komponense a mikroprocesszor magjáról, az utasításmemóriáról és az adatmemóriáról hardvermodell készül Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 6 / 17

Mikroprocesszor RTL modellje HDL forrásfájlok 00_package_demo_processor.vhd: konstansok definíciója 01_memories.vhd: utasítás- és adatmemória modellje 02_core.vhd: a mikroprocesszor két különböző RTL implementációja 03_structural_RTL_components.vhd: a strukturális RTL modell műveletvégző egységének komponensei 04_structural_RTL_datapath.vhd: a strukturális RTL modell műveletvégző egysége 05_structural_RTL_controller.vhd: a strukturális RTL modell vezérlő állapotgépe 06_testbench.vhd: tesztkörnyezet Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 7 / 17

Mikroprocesszor RTL modellje Memóriák Az utasítás- és adatmemória modelljei egyazon HDL forrásfájlban: 01_memories.vhd Mindkét modell generikus; címhossz és szóméret. Az utasításmemória a tesztprogram gépi kódjával, az adatmemória a bemenő adatokkal inicializált. Mindkét memória szinkron kimenetű. address_width clk data_in write_enable data_out content[address] data_width data_in address data_out data_width 0xEA 0xEA write_enable clk 0xEA Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) / 17

Mikroprocesszor RTL modellje A mikroprocesszor A mikroprocesszor RTL modelljei viselkedési RTL: A mikroprocesszor "monolit" megvalósítása. Egyetlen állapotgép, amely minden adat-manipulációt leír. A processzor belső erőforrási belső jelekként jelennek meg. strukturális RTL: A mikroprocesszor "finomabb felbontású" modellje. Nyelvi szinten megjelenik a műveletvégző - vezérlő szerkezet. A belső erőforrások különálló tervezési egyedek. A két RTL modell egyazon tervezési egyed (entity) két különálló implementációjaként (architecture) van leírva. (behavioral_rtl és structural_rtl) Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 9 / 17

Mikroprocesszor RTL modellje Hierarchia A testkörnyezet (06_testbench.vhd) példányosítja a mikroprocesszort, az utasítás- és adatmemóriát. Az órajelet és a stimulust is előállítja. entity testbench entity instruction_cache architecture behavior entity core architecture behavioral_rtl entity data_cache architecture behavior process clock process reset,run architecture structural_rtl controller datapath + Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 10 / 17

RTL implementációs részletek Viselkedési RTL modell A mikroprocesszor viselkedése egyetlen állapotgépben van leírva. Az adattároló erőforrások belső jelekként, az adatmanipuláló erőforrások a nyelv beépített operátorain keresztül valósulnak meg. type RF_type is array (0 to 15) of signed (7 downto 0); signal RF: RF_type := ( others => ( others => 0 )); signal op_a : signed (7 downto 0) := ( others => 0 ); signal op_b : signed (7 downto 0) := ( others => 0 ); signal imm : signed (7 downto 0) := ( others => 0 ); case state is when execute => case instruction_code is when i_i2rf => RF( destination ) <= imm ; state <= assert_flags ; when i_m2rf => state <= data_cache_read_access ; when i_rf2m => write_data_cache <= 1 ; state <= data_cache_write_access ; when i_add => RF( destination ) <= op_a + op_b ; state <= assert_flags ; end case ; end case ; Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 11 / 17

RTL implementációs részletek Strukturális RTL modell A strukturális RTL modell két fő komponensből áll műveletvégző egység (04_structural_RTL_datapath.vhd), amely az adattároló (regiszterek és regisztertömbök) és adatmanipuláló (operátorok) erőforrások példányosítását tartalmazza vezérlő egységet leíró állapotgép (04_structural_RTL_controller.vhd) A structural_rtl architektúra csak e két komponens példányosítását és összeköttetéseiket tartalmazza. Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 12 / 17

RTL implementációs részletek Strukturális RTL komponensek adattárolás wa din data_width RF we_rf ce clk reset data_width di do reg addr_width addr_width addr_width aa ab ac doc data_width data_width doa dob data_width data_width clk clk di ce do reset 0xEA 0xEA 0x00 data_in write_enable aa; wa doa content[11] 0xEA 0x0B 0xEA 0xEA Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 13 / 17

RTL implementációs részletek Strukturális RTL modell ALU Az aritmetikai-logikai egység egy kombinációs folyamatként van megvalósítva. L_MAIN_PROCESS : process ( alu_function, op_a, op_b ) variable v_result : signed (7 downto 0); begin case alu_function is when a_add => v_result := signed ( op_a ) + signed ( op_b ); when a_sub => v_result := signed ( op_a ) - signed ( op_b ); when a_and => v_result := signed ( op_a and op_b ); when a_or => v_result := signed ( op_a or op_b ); when a_xor => v_result := signed ( op_a xor op_b ); when others => v_result := signed ( op_b ); end case ; result <= std_logic_vector ( v_result ); if ( v_result = 0 ) then Z_out <= "1"; else Z_out <= "0"; end if; if ( v_result (7) = 1 ) then N_out <= "1"; else N_out <= "0"; end if; end process ; Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 14 / 17

RTL implementációs részletek Strukturális RTL modell műveletvégző egység A műveletvégző egység az erőforrások példányosításából és összeköttetéseikből áll. signal from_ir : std_logic_vector (15 downto 0); signal from_mux_ip : std_logic_vector (7 downto 0); signal from_ip : std_logic_vector (7 downto 0); L_IR : entity work. standard_register ( behavior ) generic map (16) port map (clk, reset, ce_ir, data_from_instruction_cache, from_ir ); L_MUX_IP : entity mux2 ( behavior ) generic map () port map ("00000000", from_ip_add_result, sel_ip, from_mux_ip ); L_IP : entity work. standard_register ( behavior ) generic map () port map (clk, reset, ce_ip, from_mux_ip, from_ip ); Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 15 / 17

RTL implementációs részletek Strukturális RTL modell vezérlő egység A vezéslő egység egy egy-process megvalósítású állapotgép. A kimeneti buffer-ek glitch-mentesítik a vezérlő vonalakat és csökkentik a clock-to-output késleltetést. case state is when wait_for_run => if ( run = 1 ) then end_of_job <= 0 ; sel_ip <= 0 ; ce_ip <= 1 ; state <= fetch_1 ; else state <= wait_for_run ; end case ; end if; Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 16 / 17

RTL implementációs részletek Strukturális RTL mdoell RTL kapcsolási séma address_to_instruction_cache data_from_instruction_cache data_to_data_cache address_to_data_cache data_from_data_cache 16 structural_rtl_datapath 0 ce_ir IR run 0 1 end_of_job we_rf write_data_cache sel_ip_add sel_ip ce_ip IP 1 1 0 + 4 [11:] 16 [7:4] [3:0] [11:] [15:12] [7:0] 4 ce_dest. destination 4 we_rf RF wa din 4 aa 4 ab 4 ac doc doa dob + ce_ir ce_ip ce_instruction_code ce_destination ce_op_a ce_op_b ce_imm ce_mar ce_mdr ce_z ce_n sel_ip sel_ip_add sel_alu ss_instruction_code ss_z ss_n structural_rtl_controller ce_instr.c. ce_imm ce_op_a ce_op_b ce_mar ce_mdr instr_code imm op_a op_b MAR MDR 4 ss_instruction_code 0 2 1 sel_alu opcode alu_f. instr_dec. 3 opa func. Z_out ALU opb N_out ce_z ce_n Z result N ss_z ss_n Horváth Péter Egyszerű mikroprocesszor RTL modellek (VHDL) 17 / 17