Szimuláció és verifikáció. Digitális rendszerek tervezése FPGA áramkörökkel Szimuláció és verifikáció. Kétfajta szimulációs módszer

Hasonló dokumentumok
Digitális rendszerek tervezése FPGA áramkörökkel Szimuláció és verifikáció

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

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

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

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

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika Xilinx ISE GUI használata

Újrakonfigurálható eszközök

Digitális technika (VIMIAA02) Laboratórium 4

Újrakonfigurálható eszközök

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1

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

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

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

Digitális technika (VIMIAA01) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

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

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

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

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

Hardver leíró nyelvek (HDL)

Attribútumok, constraint-ek

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

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

Digitális technika (VIMIAA02) Laboratórium 2

Digitális technika (VIMIAA02) Laboratórium 5.5

Újrakonfigurálható eszközök

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

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

Újrakonfigurálható eszközök

Digitális eszközök típusai

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

A Verilog HDL áttekintése

Mikrorendszerek tervezése

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

Egyszerű RISC CPU tervezése

Elektronikus dobókocka tervezési példa

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

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

Mikrorendszerek tervezése

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

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

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

A gyakorlatokhoz kidolgozott DW példák a gyakorlathoz tartozó Segédlet könyvtárban találhatók.

Mikrorendszerek tervezése

Újrakonfigurálható eszközök

A LOGSYS rendszer ismertetése

8.3. AZ ASIC TESZTELÉSE

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Digitális technika (VIMIAA01) Laboratórium 2

Digitális technika (VIMIAA01) Laboratórium 2

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

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

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

Újrakonfigurálható eszközök

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

A Picoblaze Core implementálása FPGA-ba

Újrakonfigurálható eszközök

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

Digitális technika VIMIAA01 9. hét

Mikrorendszerek tervezése

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

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

Dr. Oniga István DIGITÁLIS TECHNIKA 8

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

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

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

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

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

A ChipScope logikai analizátor

Bevezető az ISE 11.2 rendszer használatához

Verilog HDL ismertető

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

Xilinx ChipScope ismertető

The modular mitmót system. DPY kijelző kártya C API

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

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

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

Foglalkozási napló a 20 /20. tanévre

Készítette: Oláh István mestertanár

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.

Áramkörök elmélete és számítása Elektromos és biológiai áramkörök. 3. heti gyakorlat anyaga. Összeállította:

DIGITÁLIS TECHNIKA I

Mikroelektronikai tervezés

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

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

Rendszerszintű tervezés: SystemC I.

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

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

PROGRAMOZHATÓ LOGIKAI ESZKÖZÖK. Elıadó: Dr. Oniga István Egytemi docens

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

Digitális technika VIMIAA hét

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

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

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

Digitális elektronika gyakorlat

Á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 rszerek tervezése FPGA áramkörökkel Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT atórium Szimulációs lehetıségek Viselkedési Funkcionális Fordítás után Leképezés után Idızítési Elhelyezés, huzalozás után Verifikáció ChipScope Pro Hardver co-szimuláció Szimuláció a ISE Webpack-ben Szimulátor szoftverek ISE simulator Modelsim NC-Sim VCS MX Szimulációs módszerek Tesztvektor Grafikus HDL Eredmény Grafikus Text Kétfajta szimulációs módszer Grafikus tesztvektor Elsı minta Test Bench Waveform (TBW) generás Beállítások: Szimuláció hossza Idıalap Idızítések Elıkészítési idı Tartási idı Órajel 1 órajel több órajel kombinációs hálózat 1

TBW beállítása TBW viselkedési szimuláció Jeltípusok - beállítás Clock - automatikus Bemenet - gerjesztés Kimenet - elvárt eredmény Mi van a háttérben (HDL) I.? Mi van a háttérben II.? Modul dekraláció: Zárt doboz! Nincsenek be- és kimenetek A tesztelı modul (UUT) példányosítása A file tartalma: Összeköttetések reg ill. wire Modul dekraláció UUT példányosítás Órajel generálás Tesztvektor generálás Eredményvektor ellenırzése Órajel generálás: Mi van a háttérben III.? Mi van a háttérben IV.? Tesztvektor generálás: Eredményvektor ellenörzése: 2

Kétfajta szimulációs módszer Egy minta példa HDL tesztvektor Grafikus tesztvektor `timescale 1ns / 1ps module test; reg clk; reg [3:0] cntr ; always clk = 1'b0; #5 clk = 1'b1; #5; cntr=0; # 100 cntr = 10; repeat (5) @(posedge clk); cntr <= cntr+1; $display("time \t cntr"); $monitor("%t \t %d", $realtime, cntr); module Simulator is doing circuit ization process. Finished circuit ization process Time cntr. 0 0 5000 1 15000 2 25000 3 35000 4 45000 5 100000 10 Initial - always Órajel generálás Always: Initial blokk 0. idıpillanatban kezdıdik a végrehajtása Egyszer fut le Az blokkok egymással, és az always blokkokkal párhuzamosan mőködnek Az blokkon belüli késleltetések összeadódnak Forever: A teszt kód nem szintetizálható!!! a <= 0; #10 a <= 1; #25 a <= 2; #5 a <= 0; ; 0 1 2 0 10 35 40 Késleltetések megadása Ciklusok használata `timescale 1ns/1ps y1 <= in; y2 <= y1; #5 y1 <= in; #5 y2 <= y1; y1 <= #5 in; y2 <= #5 y1; repeat (30) #1 DATA_IN = $random; parameter WIDTH=32; reg [WIDTH-1:0] DATA; integer i; for (i=0; i<width; i=i+1) DATA[i] = 1'b0; forever : clock_10ns CLK = 1'b0; #5 CLK = 1'b1; #5; always @(posedge stop_clock) if (stop_clock) disable clock_10ns; while (empty==1'b0) #1 read_fifo = 1'b1; 3

Task-ok ISA write ciklus task isa_wr (input [11:0] address, input [7:0] data); isa_write <= 1; xisa_add <= address; isa_data <= data; #33 xisa_iown <= 0; #165 xisa_iown <= 1;... #165 isa_write <= 0; task reg [7:0] isa_data, temp; reg isa_write; assign xisa_d = (isa_write)? isa_data : 8'bz; #200 isa_wr(12'h300, 8'hab); isa_wr(12'h300, 8'h10); isa_wr(12'h300, 8'h05); Tristate meghajtás ISA buszos eszköz tesztelése isa_rd(12'h303, temp); Formátum karakterek %b Binary Value %h Hexadecimal Value %d Decimal Value %s String %c ASCII %f Real Value %e Exponential Value %o Octal Value %t Time %m Module Hierchical Name %v Strength Speciális karakterek \t Tab \n Newline \\ Backslash %% Percent \ Quote \<octal> ASCII representation Szöveg formázása Hol használjuk? $display - Szöveg kiíratása + CR/LF $write - Szöveg kiírása $monitor - Változók nyomonkövetése + $fdisplay - Fileba írás + CR/LF $fwrite -... $fmonitor -... Adat / szöveg kiírása File mőveletek Egyszeri / egyszerő kiírás + CR/LF #100000; $display( Szimuláció vége: %t", $realtime"); $stop; Kiírás CR/LF nélkül always @(posedge check) $write("."); Folyamatos állapotfigyelés $monitor( Time %t: Out %d, $realtime, cntr); Állapotváltozó figyelése reg[8*22:0] ascii_state; $monitor("current State is: %s", ascii_state); always @(UUT.top.state_reg) case (UUT.top.state_reg) 2'b00 : ascii_state = "Reset"; 2'b01 : ascii_state = "S"; 2'b10 : ascii_state = "Poll"; 2'b11 : ascii_state = "Receive"; default: ascii_state = "ERROR: Undefined State"; case Állapotátmenetek file-ba mentése integer outfile; outfile = $fopen(outfile, "output.dat", "w"); if (outfile == 0) $display("error!"); $finish; $fdisplay (outfile, Time - Counter"); $fmonitor (outfile, "%t %h", $realtime, cntr); #1000000; $fclose(outfile); real number; Számok olvasása file-ból while (i>0) i=$fscanf(number_file, "%f", number); $display("numb is %f", number); Memória file mőveletek reg [31:0] prom_data[1023:0]; $readmemb("mem_file_binary.dat", prom_data); MSB Bináris állomány LSB 1111000011110000 // Az elsı cím elsı 16 bitje 1010_0101_1010_0101 // A második cím elsı 16 bitje @025 // Cím megadása 11111111_00000000 Minta állomány Hexadecimális állomány reg [31:0] prom_data[1023:0]; $readmemh("mem_file_hex.dat", prom_data); Egyéb... Assign deassign - $assign(reg) - $deassign(reg) Force release - $force(reg/wire) - $release(reg/wire) Szimuláció leállítása - $stop Kilépés - $finish Véletlenszám - $ random(seed) Típuskonverzió - $signed(jelnév) - $unsigned(jelnév) Real integer - $ rtoi(real) Integer- real - $ itor(integer) pl. bithiba elıállítása 4

Szimulációs lehetıségek Viselkedési Funkcionális Fordítás után Leképezés után Idızítési Elhelyezés, huzalozás után Verifikáció ChipScope Pro Hardver co-szimuláció Logikai analizátor használata Tetszıleges belsı regiszter és vezeték kivezetése dedikált I/O lábokon át tüskesorra. IDİVISZONYOK!! Külsı logikai analizátor használata Nem igényel FPGA erıforrást (csak I/O-t) A max. frekvencia = I/O frekvencia Relatív nagy mintatár, sok jel megfigyelhetı belsı multiplexeléssel Tüskesor ChipScope - Belsı logikai analizátor Xilinx System Generator Vezérlı Trigger FPGA erıforrásból felépített analizátor Tetszıleges belsı regiszter és vezeték megfigyelése Max. frekvencia = logika sebessége Relatív kis mintatár (BRAM memória) A minták kiolvasása JTAG-en keresztül A chipscope alkalmazása 1, Trigger beállítása PC-n 2, Trigger esemény 3, Adatok mentése BRAM-ba 4, Adatok átvitele JTAG-en PC-re Extra Xilinx FPGA specifikus komponensek a Matlab Simulink- hez Alkalmazási területek: A funkcionalitás ellenırzése modell szinten Funkcionalitás ellenırzése idızítés analízis alapján (Modelsim) Magasszintő modell bázisú FPGA konfiguráció generálása FPGA kód funkcionális ellenırzése Összefoglalás Összefoglalás A tesztelés, verifikáció a tervezési idı több 50%-a A feladat legfájdalmasabb része A korai hibafelderítés költséget takarít meg x1 - x10 - x100 x1000. A szimuláció biztosítja a legrészletesebb képet Tetszıleges jel/esemény, tetszıleges pillanatban Tetszıleges megfigyelık, jelzık De csak szimuláció! A tesztelés, mérés az FPGA-val egyszerőbb Tesztkonfigurációk generálhatók, vizsgálhatók Szabad I/O-k esetén közvetlen hozzáférhetıség a belsı jelekhez Beágyazott mérı eszközök az FPGA szabad erıforrásaiból szintetizálható teszt környezet 5