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



Hasonló dokumentumok
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

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

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

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

Digitális technika Xilinx ISE GUI használata

Újrakonfigurálható eszközök

Újrakonfigurálható eszközök

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1

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

Digitális technika (VIMIAA02) Laboratórium 5

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

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

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

Hardver leíró nyelvek (HDL)

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

Digitális technika (VIMIAA01) Laboratórium 4

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

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

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

Attribútumok, constraint-ek

Digitális eszközök típusai

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

Digitális technika (VIMIAA02) Laboratórium 5.5

Újrakonfigurálható eszközök

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

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

Digitális technika (VIMIAA02) Laboratórium 2

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

Újrakonfigurálható eszközök

A Verilog HDL áttekintése

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

Elektronikus dobókocka tervezési példa

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

Egyszerű RISC CPU tervezése

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

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

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

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

Mikrorendszerek tervezése

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Újrakonfigurálható eszközök

8.3. AZ ASIC TESZTELÉSE

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 LOGSYS rendszer ismertetése

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

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

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

Digitális technika VIMIAA01 9. hét

A Picoblaze Core implementálása FPGA-ba

Újrakonfigurálható eszközök

Mikrorendszerek tervezése

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

Újrakonfigurálható eszközök

Mikrorendszerek tervezése

Bevezető az ISE 11.2 rendszer használatához

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

Xilinx ChipScope ismertető

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

Dr. Oniga István DIGITÁLIS TECHNIKA 8

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

Verilog HDL ismertető

Digitális technika (VIMIAA01) Laboratórium 2

Digitális technika (VIMIAA01) Laboratórium 2

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

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

A ChipScope logikai analizátor

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

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

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

Rendszerszintű tervezés: SystemC I.

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.

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

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

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

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

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

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

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

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

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

Mikroelektronikai tervezés

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

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

Digitális technika VIMIAA hét

Digitális elektronika gyakorlat

Digitális technika VIMIAA hét

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

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

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

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

Bevezető az ISE 13.2 rendszer használatához

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

Szűrő architektúrák FPGA realizációjának vizsgálata

Á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 Szimuláció és verifikáció Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT atórium

Szimuláció és verifikáció 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ó Logikai analizátor ChipScope Pro Hardver co-szimuláció Start Szintézis Implementáció FPGA programozás Ellenırzés Viselkedési szimuláció Funkcionális szimuláció Idızítés analízis Idızítési szimuláció Verifiká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 Grafikus eredmény

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

TBW beállítása Jeltípusok - beállítás Clock - automatikus Bemenet - gerjesztés Kimenet - elvárt eredmény

TBW viselkedési szimuláció

Mi van a háttérben (HDL) I.? 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

Mi van a háttérben II.? Órajel generálás:

Tesztvektor generálás: Mi van a háttérben III.?

Mi van a háttérben IV.? Eredményvektor ellenörzése:

Kétfajta szimulációs módszer Grafikus tesztvektor Grafikus eredmény HDL tesztvektor Grafikus eredmény

Egy minta példa `timescale 1ns / 1ps module test; reg clk; reg [3:0] cntr ; always begin clk = 1'b0; #5 clk = 1'b1; #5; initial begin cntr=0; # 100 cntr = 10; initial begin repeat (5) begin @(posedge clk); cntr <= cntr+1; initial begin $display("time \t cntr"); $monitor("%t \t %d", $realtime, cntr); module Simulator is doing circuit initialization process. Finished circuit initialization process Time. 0 0 5000 1 15000 2 25000 3 35000 4 45000 5 100000 10 cntr

Initial - always Órajel generálás Always: Forever: A teszt kód nem szintetizálható!!!

Initial blokk 0. idıpillanatban kezdıdik a végrehajtása Egyszer fut le Az initial blokkok egymással, és az always blokkokkal párhuzamosan mőködnek Az initial blokkon belüli késleltetések összeadódnak initial begin a <= 0; #10 a <= 1; #25 a <= 2; #5 a <= 0; ; 0 1 2 0 10 35 40

Késleltetések megadása `timescale 1ns/1ps always @ (posedge clk) begin y1 <= in; y2 <= y1; always @ (posedge clk) begin #5 y1 <= in; #5 y2 <= y1; always @ (posedge clk) begin y1 <= #5 in; y2 <= #5 y1;

Ciklusok használata initial begin repeat (30) begin @(posedge CLK); #1 DATA_IN = $random; parameter WIDTH=32; initial forever begin : clock_10ns CLK = 1'b0; #5 CLK = 1'b1; #5; always @(posedge stop_clock) if (stop_clock) disable clock_10ns; reg [WIDTH-1:0] DATA; integer i; initial for (i=0; i<width; i=i+1) DATA[i] = 1'b0; initial begin while (empty==1'b0) begin @(posedge CLK); #1 read_fifo = 1'b1;

Task-ok ISA write ciklus task isa_wr (input [11:0] address, input [7:0] data); begin 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; Tristate meghajtás ISA buszos eszköz z tesztelése se assign xisa_d = (isa_write)? isa_data : 8'bz; initial begin #200 isa_wr(12'h300, 8'hab); isa_wr(12'h300, 8'h10); isa_wr(12'h300, 8'h05); isa_rd(12'h303, temp);

Szöveg formázása %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 \t Tab \n Newline \\ Backslash %% Percent \ Quote \<octal> ASCII representation Formátum karakterek Speciális karakterek 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 Egyszeri / egyszerő kiírás s + CR/LF initial begin #100000; $display( Szimuláció vége: %t", $realtime"); $stop; Kiírás s CR/LF nélkn lkül always @(posedge check) $write("."); Folyamatos állapotfigyelés initial $monitor( Time %t: Out %d, $realtime, cntr); Állapotváltozó figyelése reg[8*22:0] ascii_state; initial $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

File mőveletek Állapotátmenetek tmenetek file-ba mentése integer outfile; initial begin outfile = $fopen(outfile, "output.dat", "w"); if (outfile == 0) begin $display("error!"); $finish; $fdisplay (outfile, Time - Counter"); $fmonitor (outfile, "%t %h", $realtime, cntr); #1000000; $fclose(outfile); real number; Számok olvasása sa file-ból while (i>0) begin i=$fscanf(number_file, "%f", number); $display("numb is %f", number); @(posedge CLK);

Memória file mőveletek Bináris állomány reg [31:0] prom_data[1023:0]; initial $readmemb("mem_file_binary.dat", prom_data); Hexadecimális állomány reg [31:0] prom_data[1023:0]; initial $readmemh("mem_file_hex.dat", prom_data); MSB 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

Egyéb... Assign Force deassign - $assign(reg reg) - $deassign(reg reg) release - $force(reg reg/wire) - $release(reg reg/wire) Szimuláci ció leáll llítása - $stop Kilépés - $finish pl. bithiba elıállítása Véletlenszám - $ random(seed seed) Típuskonverzió - $signed(jeln (jelnév) - $unsigned(jeln (jelnév) Real integer - $ rtoi(real real) Integer- real - $ itor(integer)

Szimuláció és verifikáció Szimulációs lehetıségek Viselkedési Funkcionális Fordítás után Leképezés után Idızítési Verifikáció Elhelyezés, huzalozás után Logikai analizátor ChipScope Pro Hardver co-szimuláció

Logikai analizátor használata FPGA 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

ChipScope - Belsı logikai analizátor 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

Xilinx System Generator 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 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ó!

Összefoglalás 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 Logikai analizátor szintetizálható teszt környezet