Attribútumok, constraint-ek

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

Szintézis attributumok és constraint-ek

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

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

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

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

Digitális elektronika gyakorlat

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

Újrakonfigurálható eszközök

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 4

Egyszerű mikroprocesszor RTL modellek (VHDL)

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

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

Digitális technika (VIMIAA02) Laboratórium 5.5

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

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

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

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

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

Mikrorendszerek tervezése

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

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

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

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

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

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

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

A Picoblaze Core implementálása FPGA-ba

Digitális elektronika gyakorlat

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

Újrakonfigurálható eszközök

Digitális technika (VIMIAA01) Laboratórium 4

2008. október 9. Verzió

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

Tulajdonságalapú tesztelés

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 3

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

Digitális technika (VIMIAA02) Laboratórium 3

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.

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

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.

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

Modell alapú tesztelés mobil környezetben

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

Digitális technika VIMIAA01 9. hét

Nyolcbites számláló mintaprojekt

Xilinx ChipScope ismertető

Bevezetés az informatikába

DIGITÁLIS TECHNIKA. Szabó Tamás Dr. Lovassy Rita - Tompos Péter. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar LABÓRATÓRIUMI ÚTMUTATÓ

Bemutatás. Elrendezés. Leírás. Műszaki adatok. Funkciók

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

Adattípusok. Max. 2GByte

8.3. AZ ASIC TESZTELÉSE

Adattípusok. Max. 2GByte

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

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

Digitális technika Xilinx ISE GUI használata

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

A ChipScope logikai analizátor

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

Modellező eszközök, kódgenerálás

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

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

Analóg kamera menüi DINION 4000 AN. Gyors kezelési útmutató

Kezelési Útmutató DVR 411M Digitális rögzítő. (Cserélhető HDD-vel)

Első lépések. File/New. A mentés helyét érdemes módosítani! Pl. Dokumentumok. Fájlnév: pl. Proba

MEMS eszközök redukált rendű modellezése a Smart Systems Integration mesterképzésben Dr. Ender Ferenc

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel


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

Ethernet/IP címzés - gyakorlat

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

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

Indulás után a kontroller jelszót kér, a gyári adminisztrátori jelszó: 9999

Gyártórendszerek modellezése: MILP modell PNS feladatokhoz

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

Digitális technika VIMIAA02

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

Digitális technika VIMIAA02

A Xilinx FPGA-k. A programozható logikákr. Az FPGA fejlesztés s menete. BMF KVK MAI, Molnár Zsolt, 2008.

BESZERELÉSI ÉS HASZNÁLATI ÚTMUTATÓ. Fejtámlamonitor

Rendszertervezés FPGA eszközökkel

Verilog HDL ismertető

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

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

(NGB_TA024_1) MÉRÉSI JEGYZŐKÖNYV

Verilog HDL ismertető

Adatbányászat és Perszonalizáció architektúra

FPGA áramkörök alkalmazásainak vizsgálata

SQLServer. SQLServer konfigurációk

MSP430 programozás Energia környezetben. Nokia 5110 grafikus kijelzo vezérlése

RHadoop. Kocsis Imre Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Az Ipoly árvízi előrejelző rendszer

KP-S110. GSM riasztó rendszer. Kezelési utasítás.

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

I/O constraint-ek (UCF) LOC location constraint láb megadása IOSTANDARD Pl. LVCMOS, LVTTL, DIFF_SSTL_18_II PULLUP, PULLDOWN Gyenge fel-, lehúzó ellenállás Net DDR2_CS_n[1] LOC= B34 IOSTANDARD=SSTL18_II;

Időzítések (UCF) Igényelt órajel frekvencia megadása NET "clk1" TNM_NET = "clk1"; TIMESPEC TS_clk1 = PERIOD "clk1" 50 MHz HIGH 50%; Automatikus constraint terjesztés DCM-ek és PLL-ek kimeneti órajeleire automatikusan generálódik constraint az órajel generálás paramétereinek megfelelően Órajel multiplexerek kimenetére meg kell adni a kritériumot Bármilyen egyéb, az FPGA-ban generált órajelre is ugyanez igaz. ELLENŐRZÉS: PAR report, Timing Analyzer

Időzítések (UCF) Csoportok INST *cpu_if* TNM=FFS TNM_CPU_REGS; INST *filter* TNM=FFS TNM_FILTER_REGS; -- FFS, RAMS, LATCHES, CPUS, MULTS Explicit TIMESPEC "TS_FALSE1" = FROM "TNM_CPUREGS" TO TNM_FILTER_REGS 10 ns; False Path TIMESPEC "TS_FALSE1" = FROM "TNM_CPUREGS" TO TNM_FILTER_REGS TIG; Clock-domain NET "clk1" TNM_NET = "clk1"; NET "clk2" TNM_NET = "clk2"; TIMESPEC TS_clk1_to_clk2 = FROM clk1 TO clk2 10 ns;

Elhelyezés Csoport AREA_GROUP "AGROUP1" RANGE = SLICE_X6Y11:SLICE_X9Y6 ; GROUP: CLOSED, OPEN PLACE: CLOSED, OPEN Elemek hozzárendelése INST "RAM_CCNT" AREA_GROUP = "AGROUP1";

Attribútumok Szintézer direktívák Attributum készlet szintézer függő Signal/variable, példány, entity, entity test is port( ); attribute opt_mode: string; attribute opt_mode of test: entity is "area"; end test; architecture rtl of test is attribute max_fanout : string; signal res : std_logic_vector(7 downto 0); attribute max_fanout of res : signal is 50 ; begin end rtl;

FSM_EXTRACT Attribútumok (1.) attribute FSM_EXTRACT : string; attribute FSM_EXTRACT of state: signal is TRUE ; FSM_STYLE attribute FSM_STYLE : string; attribute FSM_STYLE of state: signal is lut ; FSM_ENCODING -- LUT, BRAM attribute FSM_ENCODING : string; attribute FSM_ENCODING of state: signal is one-hot ; -- auto, one-hot, compact, sequential, gray, johnson, user type state_type is (IDLE, CFG_RAM_RD, PREPARE, REQ, TRANSFER, SLAVE_TERM, CFG_RAM_WR); signal state : state_type; attribute fsm_encoding : string; attribute fsm_encoding of state : signal is "user"; attribute enum_encoding : string; attribute enum_encoding of state_type : type is "0000001 0000010 0000100 0001000 0010000 0100000 1000000";

FSM példa attribute fsm_encoding : string; attribute enum_encoding : string; type state_type is (RX_DW0DW1, RX_REQ_DW23_WR32, RX_REQ_DW23_WR64, RX_REQ_DW45_WR64, RX_REQ_DW23_RD32, RX_REQ_DW23_RD64, RX_CPLD_DW23_32, RX_CPLD_D32, RX_WAIT_CPL); attribute enum_encoding of state_type : type is "0000 0001 0010 0011 0100 0101 0110 0111 1000 "; signal rx_state : state_type; attribute fsm_encoding of rx_state : signal is "user"; Found finite state machine <FSM_0> for signal <rx_state>. -------------------------------------------------------- States 9 Transitions 25 Inputs 9 Outputs 10 Clock clk (rising_edge) Reset rst (positive) Reset type synchronous Reset State rx_dw0dw1 Power Up State rx_dw0dw1 Encoding user Implementation LUT -------------------------------------------------------- <rx_state[1:4]> with user encoding. ------------------------------ State Encoding ------------------------------ rx_dw0dw1 0000 rx_req_dw23_wr32 0001 rx_req_dw23_wr64 0010 rx_req_dw45_wr64 0011 rx_req_dw23_rd32 0100 rx_req_dw23_rd64 0101 rx_cpld_dw23_32 0110 rx_cpld_d32 0111 rx_wait_cpl 1000 ------------------------------

Attribútumok (2.) REGISTER_DUPLICATION attribute REGISTER_DUPLICATION : string; attribute REGISTER_DUPLICATION of test: entity is yes ; EQUIVALENT_REGISTER_REMOVAL attribute EQUIVALENT_REGISTER_REMOVAL : string; attribute EQUIVALENT_REGISTER_REMOVAL of test: entity is yes ; REGISTER_BALANCING attribute REGISTER_BALANCING : string; attribute REGISTER_BALANCING of test: entity is yes ; -- signal/entity; yes, no, forward, backward attribute MOVE_FIRST_STAGE : string; attribute MOVE_FIRST_STAGE of test: entity is yes ; attribute MOVE_LAST_STAGE : string; attribute MOVE_LAST_STAGE of test: entity is yes ;

Attribútumok (3.) USE_CLOCK_ENABLE attribute USE_CLOCK_ENABLE : string; attribute USE_CLOCK_ENABLE of data: signal is yes ; -- signal, entity, component, instance; auto, yes, no USE_SYNC_RESET attribute USE_SYNC_RESET : string; attribute USE_SYNC_RESET of test: entity is yes ; USE_SYNC_SET attribute USE_SYNC_SET : string; attribute USE_SYNC_SET of test: entity is yes ; Megj: setup time-ok: D: 0,27; CE: 0,47; RST: 0,78

Attribútumok (4.) MAX_FANOUT attribute MAX_FANOUT : string; attribute MAX_FANOUT of data: signal is 5 ; -- signal, entity; integer KEEP attribute KEEP : string; attribute KEEP of data: signal is TRUE ; IOB attribute IOB : string; attribute IOB of test: label is TRUE ; -- component, entity, label; auto, true, false

Attribútumok (5.) ROM_STYLE attribute ROM_STYLE : string; attribute ROM_STYLE of mem: signal is distributed ; -- signal, entity; auto, block, distributed --!! ROM_EXTRACT RAM_STYLE attribute RAM_STYLE : string; attribute RAM_STYLE of data: signal is block ; -- signal, entity; auto, block, distributed --!! RAM_EXTRACT SHREG_EXTRACT attribute SHREG_EXTRACT: string; attribute SHREG_EXTRACT of srl: signal is yes ;

Attribútumok (6.) USE_CARRY_CHAIN attribute USE_CARRY_CHAIN : string; attribute USE_CARRY_CHAIN of add: signal is no MULT_STYLE attribute MULT_STYLE : string; attribute MULT_STYLE of data: signal is block ; -- auto, block, pipe_block, lut, pipe_lut, kcm, csd USE_DSP48 attribute USE_DSP48 : string; attribute USE_DSP48 of data: signal is yes ;

Attribútumok (7.) OPT_MODE attribute OPT_MODE : string; attribute OPT_MODE of test: entity is area ; -- entity; area, speed Példa: PORTOK ); attribute opt_mode: string; attribute opt_mode of test: entity is "area"; end test;

RLOC attribute u_set : string; attribute u_set of XORCY_L_DW: label is ("SET" & str(num, 10)); attribute u_set of REG_OUT_DW: label is ("SET" & str(num, 10)); attribute rloc: string; attribute rloc of XORCY_L_DW : label is "X0Y0"; attribute rloc of REG_OUT_DW : label is "X0Y0"; muxcy_out(0) <= '0'; GEN_MUXCY: for I in 0 to DW generate mux_sel(i) <= (not op_a(i)) xor op_b(i); -- op_a!= op_b MUXCY_L_i : MUXCY_L port map ( LO => muxcy_out(i+1), CI => muxcy_out(i), DI => op_a(i), S => mux_sel(i) ); end generate; XORCY_L_DW: XORCY_L port map ( LO => sub_res(dw), CI => muxcy_out(dw+1), LI => mux_sel(dw) ); REG_OUT_DW: FDCE port map ( Q => res(dw), C => clk, CE => en, CLR => '0', D => sub_res(dw) );

Összefoglalás Az FPGA erőforrások használata a HDL nyelvekből különböző módokon is elérhető Érdemes a magasabb szintű leírást használni Kevesebb munka, tömör leírás Egyértelmű tervezői szándék specifikáció Eszköz független leírás, könnyebben migrálható más eszközökre A speciális funkciók, egyedi beállítások szükségessé tehetik az alacsonyszintű technológiai primitívek használatát