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

Méret: px
Mutatás kezdődik a ... oldaltól:

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

Átírás

1 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 rendszerek tervezése FPGA áramkörökkel SRAM FPGA Architektúrák Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT atórium

2 FPGA áramkörök felépítése Az alapvető erőforrások Logikai blokkok I/O blokkok Huzalozás Felhasználói szinten közvetlenül csak az első kettő jelenik meg A huzalozás nem direkt erőforrás, de kritikus esetekben az eszköz használati értékének igen fontos eleme

3 FPGA felépítés Egyszerűsített általános kép

4 Technológia és piac Az FPGA flexibilis eszköz, ez költségekkel jár Költség/szolgáltatás optimalizálása fontos Technológiai lehetőségek/elfogadható ár A VLSI félvezető technológia szempontjából az SRAM FPGA kedvező eszköztípus Sok egyszerű, azonos modul Szabályos ismétlődés, szimmetrikus struktúra Az I/O meghajtók és néhány PLL kivételével egyszerű, közönséges CMOS logika

5 FPGA gyártók részesedése Lattice 6% Microsemi 4% Egyéb 1% Altera 40% Xilinx 49% Megemlítendő még: Achronix

6 Technológiai háttér Az SRAM FPGA-k jellemzően a technológiai élvonalban vannak Altera Cyclone V, Stratix V 28 nm Altera Cyclone-IV 60 nm (TSMC) Xilinx UltraScale (20 nm), UltraScale+ (16 nm) Xilinx Artix-7/Kintex-7/Virtex-7 28 nm Xilinx Spartan-6 45 nm (TSMC) Lattice SC/M 90 nm Ezek a technológiák költségesek Ezt nem minden alkalmazás viseli el

7 Xilinx FPGA családok Logikai cella Spartan-3 Spartan-6 Virtex-6 Artix-7 Kintex-7 Virtex-7 33k 150k 760k 215k 480k 2000k BRAM 0,65 Mb 4,8 Mb 38 Mb 13 Mb 34 Mb 68 Mb DSP GMAC/s* 7, Transciever Tr. Bit rate - 3,2 Gb/s 11,18 Gb/s 6.6 Gb/s 12.5 Gb/s 28 Gb/s PCIe x1 2.0 x8 2.0 x4 2.0 x8 3.0 x8 Mem. vezérlő 166 Mb/s 800 Mb/s 1066 Mb/s 1066 Mb/s 1866 Mb/s 1866 Mb/s Ár (USD) ~70 ~240 ~ ~24.000

8 Xilinx Zynq SOC

9 Xilinx UltraScale+ MPSOC

10 Altera FPGA-k Cyclone: költséghatékony - ALM E, GX (3.125 Gbps), GT (5 Gbps) sorozat Max. 300k LE Arria: közepes teljesítményű - ALM GX (6,5 Gbps), GT (10,3125 Gbps), SX (SoC), ST (SoC) Max 500k LE Startix: nagy teljesítményű - ALM E (logika), GS (DSP), GX (14.1 Gbps), GT (28,05 Gbps) Max 1M LE SoC: Arria V SoC, Cyclone V SoC 2 magos ARM Coretx A9

11 Microsemi (ACTEL) FPGA-k Alacsony fogyasztás, flash alapú VersaTile LUT3, D-FF, Latch RAM/FIFO ARM Cortex M1 opció egyes típusokban IGLOO Max. 75k VersaTile (IGLOO/e) ProASIC3 Max. 75k VersaTile (ProASIC3/e)

12 Lattice ECP3 Lattice FPGA-k Sztenderd LUT4 alapú architektúra RAM, DSP, SerDes, PLL ice40 (ex-siliconblue) LP és HX sorozat Akkumulátoros üzemhez telefon, tablet Szinte 0 statikus fogyasztás Egyébként ~ MHz LUT4 alapú; RAM blokkok; PLL Pl. Samsung Galaxy S5: Lattice ice40 LP1K; LG C900: ice65

13 FPGA belső felépítés SRAM FPGA mindig LUT alapú (kivétel MOT ) A LUT egy 1 bit széles memória Mélysége (címvonalak száma ) változó Korai elemzések alapján a 4 bit tűnt optimálisnak Kompromisszum a huzalozás és granularitás között Egy logikai egység 2 4 LUT közelségére épít Lokális belső kapcsolatok a késleltetést csökkentik Legújabb irányzat a drágább termékvonalban alapelem mérete x4, azaz LUT6

14 Példa eszköz: Xilinx Spartan3E Általános felépítés egyszerű Homogén logikai struktúra Egyenletes CLB réteg Funkcionális blokkok BRAM MULT DCM I/O gyűrű

15 A logikai elemek Enyhe aszimmetria a CLB felépítésben 1 CLB = 2 x 2 Szelet Bal és jobb szelet eltérő Extra LUT módok Független függőleges kapcsolatok speciális logika aritmetika

16 A CLB struktúra Megosztott elrendezés Független belső blokkok Szempontok nem ismertek 4 bit számláló/aritmetika Kedvezőbb huzalozás? Az extra memória funkciók hasznosak A konfigurációs memória részletei felhasználói memóriaként is elérhetők

17 A CLB erőforrása Az eredeti koncepció nem változott (Spartan-3, Virtex-4 FPGA-kig) Az alap erőforrás az Logic Cell LC = 1 LUT + 1 FF LUT4 tetszőleges 4 változós fgv. 1 változóra hazárdmentes Működési idő bemenet és logikai komplexitás invariáns DFF Élvezérelt,, órajel eng. Szink/Aszink. SET/RESET Független kombinációs és regiszteres kimenet

18 A CLB erőforrása 1 Slice-ban az eddigi 2 helyett 4 LUT és 2*4 tárolóelem A LUT-ok 6 bemenetűek Elsősorban az FPGA-ban megvalósított, egyre bonyolultabb logikák indokolták (huzalozás!) A Slice-ok felében továbbra is megvalósítható extra funkció: shift regiszter, RAM

19 Dedikált CLB erőforrások Az egységes alapkoncepció finomítása A LUT4 természetesen mindenre jó, de A sokváltozós logikai függvények, a legegyszerűbbek is túl sok szintet igényelnek lassú Az aritmetikai műveletekben kell átvitel jel. Ez egy fontos, de csak belül szükséges, időkritikus jel. LUT4 alapon 100% redundancia lép fel (3 bemeneti jel 2 függvénye) Hagyományos tömbszorzónál egy-egy szinten kell lokális bitszorzat (AND2) és összeadás a részszorzatokhoz

20 A gyors átvitelképzés Az aritmetikai műveletek hatékonysága alapvető Sebességük a használhatóságot egyértelműen jellemzi Az elemei művelet: S j = A j xor B j xor C ij C oj = A j B j + A j C ij + B j C ij A teljes művelet végrehajtási ideje a C i0 C on-1 út terjedési ideje, n-1 az adatméret függvénye A beépített egyszerű átvitel lánc feleslegessé tesz bármilyen más CLA, CS módszert

21 A gyors átvitel logika A műveletet 1 bites fél összeadókra bontja A szelet Cin bejövő bitje BX input vagy alsó CLB Cout vagy fix 0 / 1 Összeg bit Fout= A0 xor B0 Xout = Fout xor Cin Átvitel Bit helyiértékenként átvitelterjesztés vagy átvitel generálás A CYMUXF vezérlése az Fout jellel Tehát ha Fout=1, terjeszt, ezért CoutF=Cin, egyébként CoutF=AB, vagyis generál, ha AB=1 Az erőforrások más logika megvalósítására is használhatók

22 A gyors átvitel logika Aritmetika ADD/SUB/INC/DEC művelet SUM=A xor B xor C i Átvitel terjesztés és/vagy generálás C o = AB + AC i + BC i C o = (A xor B)? C i : A;

23 Több bemenetű összeadók 3:2 Compressor + összeadó(k): Add3 LUT6-ban ABUS=X^Y^Z BBUS=(X&Y) (X&Z) (Y&Z) 1011_ _ _ _ _ _1100

24 Szorzás logikával A szorzás erőforrás igényes Bitszorzás AND2 Összegzés FA Kezdőszinten egyszerűsítés lehetséges, egyből 2 szint összegezhető

25 Szorzás CLB logikával Aritmetika MUL művelet Bitszintű szorzat és összegzés PP ij =PP ij-1 + A ik *B kj XOR kapu felső ága általában PP ij-1 Az ábra az első szintet mutatja, itt 2 bitszorzat összegezhető

26 Belső multiplexerek Szélesebb logikai kifejezésekhez A független szeletek kombinálhatók MUX4, MUX8, MUX16 egy CLB-ben

27 MUX használat logikához Más lehetőségek LUT5 generálása Tetszőleges 5 vált. fv. Egyedi 6 9 változós függvények Pl. MUX4 6 bemenettel

28 CYMUX használat logikához A MUX általános elem, lehet AND vagy OR kapu Ennek megfelelően a LUT4 részlet logikák összevonhatók szélesebb függvényekké

29 A részletes struktúra Egyszerűsített SliceM felső és alsó logikai cellája

30 Virtex-6 SLICEM

31 Stratix IV ALM

32 Memória funkciók a CLB-ben Elosztott memóriának hívják LUT méretű blokkokból építhető a szükséges méret Lehet természetesen ROM (alapvetően mindig az) RAM-nál szétválasztott adat be és kimeneti vonal Lehet szinkron beírású RAM Lehet szinkron beírású dual-port RAM 2x erőforrásigény Szinkron olvasás a CLB FF használatával Kezdőérték minden esetben megadható Sebesség illeszkedik a rendszerhez Kiváló elem regiszter készletek megvalósítására

33 Előzmények Ez a funkció a 4000-es családban jelent meg először A memória hagyományos aszinkron SRAM volt Ez nem kezelhető megbízhatóan az időzítések miatt Ezután lett az írás szinkron Ennek megfelelően az írás a WCLK jel élére történik Az olvasás azonos idejű, aszinkron

34 LUT RAM LUT RAM csak a SliceM oldalon realizálható 1 Slice 1db RAM16x1D vagy 1db RAM32x1S

35 LUT RAM Nagyobb méret relatív lokális elhelyezéssel A rendszer a RAM32x8S elemet 8 szeletben helyez el Használat HDL forrásnyelvi szintről Beépítés könyvtári primitívként

36 LUT RAM Verilog RAM16X1S #(.INIT(16'h0000) ) RAM16X1S_inst (.O(O),.A0(A0),.A1(A1),.A2(A2),.A3(A3),.D(D),.WCLK(WCLK),.WE(WE) ); module ram16 (input clk, we, input [3:0] a, input [7:0] d, output [7:0] o); reg [7:0] mem[15:0]; (posedge clk) if (we) mem[a] <= d; assign o = mem[a]; endmodule

37 LUT RAM VHDL primitív UNISIM library-ben definiált Library UNISIM; use UNISIM.vcomponents.all;... RAM16X1S_1_inst : RAM16X1S_1 generic map ( INIT => X"0000") port map ( O => O, -- RAM output A0 => A0, A1 => A1, A2 => A2, A3 => A3, ); -- RAM address[0] input -- RAM address[1] input -- RAM address[2] input -- RAM address[3] input -- RAM data input D => D, WCLK => WCLK, -- Write clock input WE => WE -- Write enable input

38 LUT RAM VHDL library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity ram16 is port ( clk : in std_logic; we : in std_logic; addr : in std_logic_vector (3 downto 0); din : in std_logic_vector (7 downto 0); dout : out std_logic_vector (7 downto 0)); end; architecture rtl of ram16 is type marray is array (15 downto 0) of std_logic_vector(7 downto 0); signal memory : marray;.. begin process(clk) begin if (clk'event and clk='1') then if (we='1') then memory(conv_integer(addr)) <= din; end if; end if; end process; dout <= memory(conv_integer(addr)); end;

39 LUT shift regiszter Érdekes elem, igen flexibilisen használható Származtatható a konfigurációs mechanizus ismeretében A konfigurációs bitek bekapcsoláskor egy nagy shiftregiszterbe léptetődnek be Minden konfigurációs elem egy-egy poziciója a konfigurációs tárnak 1 LUT 16 bitet foglal el Az SRL16 módban ezt a 16 bitet átemeljük a felhasználói logikába

40 LUT shift regiszter A megvalósítás Tulajdonságok Dinamikusan változtatható hosszúságú soros késleltető (1 16) Kaszkádosítható CLB-ken át Nincs SET/RESET, párhuzamos D/Q, van CE

41 LUT SRL használat Alapvetően mint késleltő, aszinkron dinamikus címzéssel Szinkron címzés FF használattal

42 LUT SRL Verilog SRLC16E #(.INIT(16'h0000) ) SRLC16E_inst (.Q(Q),.Q15(Q15),.A0(A0),.A1(A1),.A2(A2),.A3(A3),.CE(CE),.CLK(CLK),.D(D) ); module SRL(input clk, ce, d, input [3:0] a, output q, q15); reg [15:0] shr = 16 h0000; (posedge clk) if (ce) shr <= {shr[14:0], d}; assign q15 = shr[15]; assign q = shr[a]; endmodule

43 LUT SRL VHDL library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity ram16 is port ( clk : in std_logic; ce : in std_logic; addr : in std_logic_vector(3 downto 0); d : in std_logic; q, q15 : out std_logic;); end; architecture rtl of ram16 is signal shr : std_logic_vector(15 downto 0);. begin process(clk) begin if (clk'event and clk='1') then if (ce='1') then shr <= shr(14 downto 0) & d; end if; end if; end process; q <= shr(conv_integer(addr)); q15 <= shr(15); end;

44 LUT SRL használat Műveleti láncok belső pontjaiban pipe-line késleltetések kiegyenlítése Adatméretnek megfelelő számú LUT kell Kis méretű FIFO Adatok SRL-ben Kiegészítő logika, címszámláló, státusz jelzők

45 LUT SRL használat Véletlensorozat generátor LFSR használatával XAPP211, LFSR visszacsatoló polinomok n=3 és n=168 között Pl. Gold Code Generator for

46 LUT SRL használat Számlálók Gyűrűs számláló (one hot v. Johnson) max. 16 modulusig Konfigurációs inicializálás a értékre Modulus választható a LUT címbemeneten keresztül Szabadon futó, nincs RESET, de van CE

47 LUT SRL számláló Nagyobb modulus SRL16-ok sorba kötve Relatív prím hosszú SRL16-ok kimenetei AND kapcsolatban Példa: 3465 modulusú osztó Legyen az SRL16-ok egyedi modulusa a 3465 faktorizációja alapján 11, 9, 7 és 5. A TC csak minden 5x7x9x11= 385. ciklusban lesz aktív

48 LUT FF A szekvenciális logika alaperőforrása Megjegyzés: Néhány FPGA-ban nincs dedikált regiszter erőforrás, azt az általános logikai cellából alakítják ki Az SRAM FPGA-ak mindig tartalmaznak FF-ot Élvezérelt DFF órajel engedélyezéssel Alaphelyzet beállítás SET/RESET, szinkron/aszinkron Inicializálás: INIT0/INIT1

49 További erőforrások Huzalozás Bőven túlméretezett huzalozási erőforrások Történelmi okokból

50 Huzalozás Különböző huzalozási erőforrások Hosszú vonalak az IC teljes felületén Minden 6. CLB-hez A hatos csoportok között egyszintű átugrás Kapcsolat a második szomszédokhoz Alapvető szomszédos, direkt kapcsolatok Speciális globális hálózatok (Nem CLK!) GSR Globális SET/RESET vonal GTS Globális Hiz az I/O kimenetekre Az órajel hálózat más!

51 Egyéb erőforrások Az alacsony árfekvésű elemekben Nagyobb méretű memória blokkok Dedikált szorzó modulok Prémium kategóriában Többféle memória modul DSP blokk teljes MAC struktúrával Beépített CPU mag/magok Nagysebességű soros interfészek

52 Speciális blokkok az FPGA-ban Blokk RAM elhelyezése

53 Blokk RAM 2 4 kbyte dual port szinkron RAM Mérettől függő számban 4 36 db Adatméret rugalmasan választható 16kx1, 8kx2, 4kx4, nincs paritás 2kx(8+1), 1kx(16+2), 512x(32+4)

54 Használati módok Blokk RAM Igazi dual port, teljesen független CLKA és CLKB Kiváló elem független órajeltartományok közötti szinkronizációra, adatcserére Teljesen szinkron működés Írás: cím, adat és WE aktív, művelet CLK élére Olvasás: cím, RE aktív, CLK élére az adat a kimeneti regiszterbe kerül

55 Blokk RAM Beállítások NO_CHANGE a kimeneten az írást követően

56 Blokk RAM Beállítások READ_FIRST

57 Blokk RAM Beállítások WRITE_FIRST

58 Blokk RAM konfliktusok Természetesen, a dual portos működés miatt, egy cella írásakor, ugyanahhoz a cellához fordulva problémák adódnak Dual port módban egyidőben azonos címre írás eltérő adatokkal, az adat bizonytalan lesz (nincs prioritás) Aszinkron órajeleknél, írás és azonos idejű olvasás hozzáférés esetén az olvasás eredménye bizonytalan Az új belső adat még nem stabil az olvasás idején WRITE_FIRST vagy NO_CHANGE esetén egyik port írásakor a másik kimeneti latch tartalma módosul

59 BlokkRAM használat Tetszőleges memória funkció Adatméret átalakítás átvitel előtt PAR SER soros átvitel SER PAR, 32 bit 2 bit, 2 bit 32 bit A tartalom fele függetlenül használható, mint 2 db egy portos memória Ugyanígy fele akkora 72 bit széles memória is kialakítható Bufferek, késleltető vonalak, videó sor tároló

60 Blokk RAM használat Általános logika, mint egy nagyobb LUT n bemenet, m kimenet REGISZTERES! Függvénytáblázat sin/cos, stb. Mikroprogramozott vezérlő programtár és következő utasítás logika Tulajdonságok: Inicializálható felkonfiguráláskor RESET csak a kimeneti regisztert befolyásolja

61 Blokk RAM használat Újabb eszközökben további tulajdonságok Széles adatformátum esetén bájtonkénti írás engedélyezés Beágyazott rendszerek megvalósítása során fontos lehet CPU buszrendszere kínálja / igényli Operációs rendszer meglévő forrása használ rövid változókat (újrafordítható,.)

62 BlokkRAM FIFO FIFO használat támogatása Közvetlen HW kiegészítő logika Rendszer elem sebessége nem csökken Üzemmódok: Normál FWFT az első adat átesik a kimenetre Jelzések: Full, AlmostFull Empty, AlmostEmpty

63 FIFO használat Xilinx: Core Generator Altera: MegaWizard (vagy scfifo/dcfifo komponens)

64 BRAM példányosítás (Verilog) RAMB16_S36_S36 #(.WRITE_MODE_A("WRITE_FIRST") ) RAMB16_S36_S36_inst (.DOA(DOA),.DOB(DOB),.DOPA(DOPA),.DOPB(DOPB), // Port A 32-bit Data Output // Port B 32-bit Data Output // Port A 4-bit Parity Output // Port B 4-bit Parity Output.ADDRA(ADDRA), // Port A 9-bit Address Input.ADDRB(ADDRB), // Port B 9-bit Address Input.CLKA(CLKA), // Port A Clock.CLKB(CLKB), // Port B Clock.DIA(DIA), // Port A 32-bit Data Input.DIB(DIB), // Port B 32-bit Data Input.DIPA(DIPA), // Port A 4-bit parity Input.DIPB(DIPB), // Port-B 4-bit parity Input.ENA(ENA), // Port A RAM Enable Input.ENB(ENB), // Port B RAM Enable Input.SSRA(SSRA), // Port A Synchronous Set/Reset Input.SSRB(SSRB), // Port B Synchronous Set/Reset Input.WEA(WEA), // Port A Write Enable Input // Port B Write Enable Input.WEB(WEB) );

65 BRAM példányosítás RAMB16_S36_S36_inst : RAMB16_S36_S36 generic map ( WRITE_MODE_A => "WRITE_FIRST", WRITE_MODE_B => "WRITE_FIRST") port map ( DOA => DOA, -- Port A 32-bit Data Output DOB => DOB, -- Port B 32-bit Data Output DOPA => DOPA, -- Port A 4-bit Parity Output DOPB => DOPB, -- Port B 4-bit Parity Output ADDRA => ADDRA, -- Port A 9-bit Address Input ADDRB => ADDRB, -- Port B 9-bit Address Input CLKA => CLKA, -- Port A Clock CLKB => CLKB, -- Port B Clock DIA => DIA, -- Port A 32-bit Data Input DIB => DIB, -- Port B 32-bit Data Input DIPA => DIPA, -- Port A 4-bit parity Input DIPB => DIPB, -- Port-B 4-bit parity Input ENA => ENA, -- Port A RAM Enable Input ENB => ENB, -- PortB RAM Enable Input SSRA => SSRA, -- Port A Synchronous Set/Reset Input SSRB => SSRB, -- Port B Synchronous Set/Reset Input WEA => WEA, -- Port A Write Enable Input WEB => WEB -- Port B Write Enable Input );

66 BRAM példányosítás (2) RAMB16BWER_inst : RAMB16BWER generic map ( -- DATA_WIDTH_A/DATA_WIDTH_B: 0, 1, 2, 4, 9, 18, or 36 DATA_WIDTH_A => 0, DATA_WIDTH_B => 0, WRITE_MODE_A => "WRITE_FIRST", WRITE_MODE_B => "WRITE_FIRST") port map ( DOA => DOA, bit output: A port data output DOPA => DOPA, -- 4-bit output: A port parity output DOB => DOB, bit output: B port data output DOPB => DOPB, -- 4-bit output: B port parity output ADDRA => ADDRA, bit input: A port address input CLKA => CLKA, -- 1-bit input: A port clock input ENA => ENA, -- 1-bit input: A port enable input REGCEA => REGCEA, -- 1-bit input: A port register clock enable input RSTA => RSTA, -- 1-bit input: A port register set/reset input WEA => WEA, -- 4-bit input: Port A byte-wide write enable input DIA => DIA, bit input: A port data input DIPA => DIPA, -- 4-bit input: A port parity input ADDRB => ADDRB, bit input: B port address input CLKB => CLKB, -- 1-bit input: B port clock input ENB => ENB, -- 1-bit input: B port enable input REGCEB => REGCEB, -- 1-bit input: B port register clock enable input RSTB => RSTB, -- 1-bit input: B port register set/reset input WEB => WEB, -- 4-bit input: Port B byte-wide write enable input DIB => DIB, bit input: B port data input DIPB => DIPB -- 4-bit input: B port parity input );

67 Altera RAM Régebbi eszközökben csak BRAM, pl. Cyclone IV: M9K Cyclone V: M10K Stratix-III és IV: M9K és M144K Stratix-V: M20K ALM alapú eszközök (Cyclone V és Stratix-IIItól) MLAB 640 bites LUT alapú memória (10 ALM/MLAB)

68 Altera RAM példányosítás COMPONENT altsyncram GENERIC ( numwords_a : NATURAL; numwords_b : NATURAL; widthad_a : NATURAL; widthad_b : NATURAL; width_a : NATURAL; width_b : NATURAL; ); PORT ( clock0 : IN STD_LOGIC ; wren_a : IN STD_LOGIC ; address_b : IN STD_LOGIC_VECTOR (ADDR_WIDTH-1 DOWNTO 0); clock1 : IN STD_LOGIC ; data_b : IN STD_LOGIC_VECTOR (DATA_WIDTH-1 DOWNTO 0); q_a : OUT STD_LOGIC_VECTOR (DATA_WIDTH-1 DOWNTO 0); wren_b : IN STD_LOGIC ; address_a : IN STD_LOGIC_VECTOR (ADDR_WIDTH-1 DOWNTO 0); data_a : IN STD_LOGIC_VECTOR (DATA_WIDTH-1 DOWNTO 0); q_b : OUT STD_LOGIC_VECTOR (DATA_WIDTH-1 DOWNTO 0); aclr0 : IN STD_LOGIC; aclr1 : IN STD_LOGIC ); END COMPONENT;

69 BlockRAM Read First module sp_ram(input clk, input we, input en, input [10:0] addr, input [ 7:0] din, output [7:0] dout); reg [7:0] memory[2047:0]; reg [7:0] dout_reg; (posedge clk) if (en) begin if (we) memory[addr] <= din; dout_reg <= memory[addr]; end assign dout = dout_reg; endmodule

70 BlockRAM Read First library IEEE; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; USE ieee.std_logic_unsigned.all; entity ram is port ( clk, ce, we : in std_logic; addr : in std_logic_vector(8 downto 0); din : in std_logic_vector(35 downto 0); dout : out std_logic_vector(35 downto 0)); end; architecture rtl of ram is type marray is array (511 downto 0) of std_logic_vector(35 downto 0); signal memory : marray; begin process(clk) begin if (clk'event and clk='1') then if (ce='1') then if (we='1') then memory(conv_integer(addr)) <= din; end if; dout <= memory(conv_integer(addr)); end if; end if; end process; end;

71 BlockRAM Write First module sp_ram(input clk, input we, input en, input [10:0] addr, input [ 7:0] din, output [7:0] dout); reg [7:0] memory[2047:0]; reg [7:0] dout_reg; (posedge clk) if (en) begin if (we) memory[addr] = din; dout_reg = memory[addr]; end assign dout = dout_reg; endmodule

72 BlockRAM Write First library IEEE; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; USE ieee.std_logic_unsigned.all; entity ram is port ( clk, ce, we : in std_logic; addr : in std_logic_vector(8 downto 0); din : in std_logic_vector(35 downto 0); dout : out std_logic_vector(35 downto 0)); end; architecture rtl of ram is type marray is array (511 downto 0) of std_logic_vector(35 downto 0); signal memory : marray; process(clk) begin if (clk'event and clk='1') then if (ce='1') then if (we='1') then memory(conv_integer(addr)) <= din; dout <= din; else dout <= memory(conv_integer(addr)); end if; end if; end process; end;

73 BlockRAM No Change module sp_ram(input clk, input we, input en, input [10:0] addr, input [ 7:0] din, output [7:0] dout); reg [7:0] memory[2047:0]; reg [7:0] dout_reg; (posedge clk) if (en) begin if (we) memory[addr] <= din; else dout_reg <= memory[addr]; end assign dout = dout_reg; endmodule

74 BlockRAM No Change library IEEE; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; USE ieee.std_logic_unsigned.all; entity ram is port ( clk, ce, we : in std_logic; addr : in std_logic_vector(8 downto 0); din : in std_logic_vector(35 downto 0); dout : out std_logic_vector(35 downto 0)); end; architecture rtl of ram is type marray is array (511 downto 0) of std_logic_vector(35 downto 0); signal memory : marray; process(clk) begin if (clk'event and clk='1') then if (ce='1') then if (we='1') then memory(conv_integer(addr)) <= din; else dout <= memory(conv_integer(addr)); end if; end if; end process; end;

75 DP BlockRAM module dp_ram(input clk_a, we_a, en_a, clk_b, we_b, en_b, input [10:0] addr_a, addr_b, input [ 7:0] din_a, din_b, output [7:0] dout_a, dout_b); reg [7:0] memory[2047:0]; reg [7:0] dout_reg_a, dout_reg_b; (posedge clk_a) if (en_a) begin if (we_a) memory[addr_a] <= din_a; dout_reg_a <= memory[addr_a]; end assign dout_a = dout_reg_a; (posedge clk_b) if (en_b) begin if (we_b) memory[addr_b] <= din_b; dout_reg_b <= memory[addr_b]; end assign dout_b = dout_reg_b; endmodule

76 DP BlockRAM VHDL (1) entity bram is generic( ADDR_WIDTH : integer := 12; DATA_WIDTH : integer := 18 ); port( clk_a : in std_logic; rst_a : in std_logic; ce_a : in std_logic; we_a : in std_logic; addr_a : in std_logic_vector(addr_width-1 downto 0); din_a : in std_logic_vector(data_width-1 downto 0); dout_a : out std_logic_vector(data_width-1 downto 0); clk_b : in std_logic; rst_b : in std_logic; ce_b : in std_logic; we_b : in std_logic; addr_b : in std_logic_vector(addr_width-1 downto 0); din_b : in std_logic_vector(data_width-1 downto 0); dout_b : out std_logic_vector(data_width-1 downto 0) ); end bram;

77 DP BlockRAM VHDL (2) architecture rtl of bram is type array_wbyd is array ((2**ADDR_WIDTH)-1 downto 0) of std_logic_vector(data_width- 1 downto 0); shared variable memory : array_wbyd := (others=>conv_std_logic_vector(0, DATA_WIDTH)); signal dout_reg_a0 : std_logic_vector(data_width-1 downto 0); signal dout_reg_a1 : std_logic_vector(data_width-1 downto 0); signal dout_reg_b0 : std_logic_vector(data_width-1 downto 0); signal dout_reg_b1 : std_logic_vector(data_width-1 downto 0); begin

78 DP BlockRAM VHDL (3) -- PORT A process(clk_a) begin if (clk_a'event and clk_a='1') then if (ce_a='1') then if (rst_a='1') then dout_reg_a0 <= (others=>'0'); dout_reg_a1 <= (others=>'0'); else dout_reg_a0 <= memory(conv_integer(addr_a)); dout_reg_a1 <= dout_reg_a0; end if; if (we_a='1') then memory(conv_integer(addr_a)) := din_a; end if; end if; end if; end process; dout_a <= dout_reg_a1;

79 DP BlockRAM VHDL (4) -- PORT B process(clk_b) begin if (clk_b'event and clk_b='1') then if (ce_b='1') then if (rst_b='1') then dout_reg_b0 <= (others=>'0'); dout_reg_b1 <= (others=>'0'); else dout_reg_b0 <= memory(conv_integer(addr_b)); dout_reg_b1 <= dout_reg_b0; end if; if (we_b='1') then memory(conv_integer(addr_b)) := din_b; end if; end if; end if; end process; dout_b <= dout_reg_b1; end rtl;

80 Implementációs constraint-ek Szintézer függő a constraint-ek elnevezése XST (ISE) többnyire támogatja a Synplify constraint-eket is Verilog: kommentben, synthesis kulcsszó reg [31:0] reg_a /* synthesis KEEP= TRUE */; (* KEEP= TRUE *) reg [31:0] reg_a; VHDL: attributum megadás signal reg_a: std_logic_vector(31 downto 0); attribute keep : string; attribute keep of reg_a: signal is TRUE ; UCF file-ban

81 XST RAM constraint-ek Globálisan a project-ben megadható Változónként is felüldefiniálható RAM implementáció RAM_EXTRACT: yes vagy no RAM_STYLE: auto, block, distributed, pipe_distributed reg [7:0] memory[511:0] /* synthesis RAM_EXTRACT= YES RAM_STYLE= BLOCK */; type marray is array (511 downto 0) of std_logic_vector(35 downto 0); signal memory : marray; attribute RAM_EXTRACT : string; attribute RAM_STYLE : string; attribute RAM_EXTRACT of memory : signal is YES ; attribute RAM_STYLE of memory : signal is BLOCK ;

82 Szorzó A felhasználók régi vágya Teljes párhuzamos tömbszorzó 18x18 bites Illeszkedik a BlokkRAM 18 bites konfigurációjához A fizikai beépítés is támogatja az együttes használatot, pl. FIR szűrő 2 s komplemens, előjeles művelet 36 bites teljes eredmény

83 Xilinx szórzó (DSP) áramkörök V2, V2P, SP3: MULT18x18 és MULT18x18S: 18x18 bit, előjeles, kimeneti regiszter SP3E, SP3A MULT18x18SIO: 18x18 bit, előjeles, be- és kimeneti regiszterek SP3A DSP (SP6: SDP48A1) V4 V5 DSP48A: 18x18 bit + pre-adder + akkumulátor DSP48: 18x18 bit + akkumulátor DSP48E: 25x18 bit MUL, akkumulátor, ALU (+/-, logikai műveletek) V6, 7-es sorozat DSP48E1: 25x18 bit MUL, akkumulátor, ALU (+/-, logikai műveletek), pre-adder

84 Szorzó Működési sebessége a nagy, illeszkedik a RAM-hoz Megőrizhető az opcionális pipe-line regiszterekkel Használható Önállóan Kaszkádosítva

85 Szorzó HDL module mul_s (input clk, en, input signed [17:0] a, b, output reg signed [35:0] p); (posedge clk) if (en) p <= a*b; endmodule library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_signed.all; entity mul_s is port( clk, en : in std_logic; a : in std_logic_vector(17 downto 0); b : in std_logic_vector(17 downto 0); p : out std_logic_vector(35 downto 0)); end mul_s; architecture rtl of mul_s is begin process(clk) begin if rising_edge(clk) then if (en) p <= a * b; end if; end if; end process; end rtl;

86 Szorzó HDL library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_signed.all; entity mul_s is port( clk, en : in std_logic; a : in std_logic_vector(17 downto 0); b : in std_logic_vector(17 downto 0); p : out std_logic_vector(35 downto 0)); end mul_s; architecture rtl of mul_s is begin process(clk) begin if rising_edge(clk) then if (en) p <= a * b; end if; end if; end process; end rtl;

87 Szorzó Kibővítés nagyobb pontosságra, pl. 35 x 35 bit 4 db keresztszorzat, MSW x MSW LSW x LSW MSW x LSW LSW x MSW Előjel kiterjesztés!

88 Xilinx DSP48A

89 Xilinx DSP48

90 Xilinx DSP48E Max. 600 MHz működési frekvencia MAC (multiplay-and-accumulate) művelethez optimalizált architektúra Pl. FIR szűrő Műveletvégzők 48 bites összeadó/kivonó (2x24, 2x12 SIMD) 48 bites logikai egység (AND, OR, NOT,..) 25x18 bites szorzó 25 bites elő-összeadó

91 Xilinx DSP48E

92 Xilinx DSP48E1

93 35x35 bites szorzó (SP6)

94 DSP Adder Tree vs. kaszkád

95 Több bemenetű összeadók 3:2 Compressor + összeadó(k): Add3 LUT6-ban ABUS=X^Y^Z BBUS=(X&Y) (X&Z) (Y&Z)

96 6 bementű összadó 6:3 Compressor + 2 db 2 bemenetű összeadó X = A^B^C^C^D^E^F Y = AB^AC^AD^AE^AF^ BC^BD^BE^BF^ CD^CE^CF^DE^DF^EF Z = ABCD ABCE ABCF ABDE ABDF ABEF ACDE ACDF ACEF ADEF BCDE BCDF BCEF BDEF CDEF

97 Xilinx constarint-ek MULT_STYLE: auto, block, pipe_block, kcm, csd, lut, pipe_lut KCM: constant coefficient multiplier CSD: canonic signed digit (konstansok átkódolása hatékonyabb műveletvégzéshez) USE_DSP48: auto, yes, no Szorzáshoz automatikusan használja Összeadáshoz nem

98 Összeadó DSP48-cal module add( input clk, input signed [47:0] a, input signed [47:0] b, output signed [47:0] p )/* synthesis USE_DSP48="yes" */; reg signed [47:0] a_reg; reg signed [47:0] b_reg; reg signed [47:0] p_reg; (posedge clk) begin a_reg <= a; b_reg <= b; p_reg <= a_reg + b_reg; end assign p = p_reg; endmodule

99 Összeadó DSP48-cal library IEEE; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; USE ieee.std_logic_signed.all; entity dsp is port ( clk : in std_logic; d0, d1 : in std_logic_vector(47 downto 0); q : out std_logic_vector(47 downto 0) ); attribute USE_DSP48 : string; attribute USE_DSP48 of dsp : entity is "YES"; end; architecture rtl of dsp is begin process(clk) begin if (clk'event and clk='1') then q <= d0 + d1; end if; end process; end;

100 Órajel erőforrások Az FPGA tervek legfontosabb szempontja az órajelezés Alapvető a szinkron tervezés Egy modulon/blokkon belül egy órajelet használunk Lassabb ütemezést órajel engedélyezésen keresztül valósítunk meg. Természetesen egy teljes terven belül lehet több órajel tartomány Ezek között a kommunikációt igen gondosan kell megtervezni!!!

101 Órajel erőforrások Globális órajel terjesztő hálózat (minden szinkron elemhez) - BUFGMUX Globális órajel bemenet (GCK láb) Órajel menedzsment modulok (DCM, PLL) Belső logika Clock-capable I/O BUFIO I/O órajel buffer CSAK I/O-hoz BUFR Regionális órajel buffer adott régióhoz

102 Globális órajel hálózatok A teljes felület negyedekre osztva Negyedenként 8-8 globális órajel hálózat Ezek globalizálhatók vagy függetlenül használhatók (fogyasztás!) Meghajtás csak globális órajel bufferekről MUX funciója is van, az órajel forrás átkapcsolható Órajel forrás lehet Közvetlenül külső dedikált GCLK láb Órajel kezelő modul kimenet Belső jel

103 Órajel hálózatok tulajdonságai A teljes felületen minimális késleltetés Globális szinkron paradigma Csak FF, RAM, vagy más elem órajel bemenetére csatlakoztatható Nem használható, mint általános logikai jel A FF órajel bemenet meghajtható általános jelekről, de ez egy nem ajánlott tervezési stílus BUFGMUX átkapcsolás glitch mentesen két tetszőleges frekvenciájú aszinkron órajel között S vált, CKa ciklus végét megvárja, kimenet 0, ezután vár CKb alacsony értékére és átkapcsol rá

104 Verilog leírás Az órajelként használt külső jelek bufferelése automatikus (IBUFG, IBUFGDS nem!) Az FPGA-ban generált órajelekre ez nem igaz!! BUFGMUX BUFGMUX_inst (.O(O),.I0(I0),.I1(I1),.S(S) ); // Clock output // Clock0 input // Clock1 input // Clock select IBUFGDS IBUFGDS_inst (.O(O),.I(I),.IB(IB) ); // Clock output // Diff_p input // Diff_n input

105 VHDL leírás Az órajelként használt külső jelek bufferelése automatikus (IBUFG, IBUFGDS nem!) Az FPGA-ban generált órajelekre ez nem igaz!! BUFGMUX_inst : BUFGMUX port map ( O => O, I0 => I0, -- Clock0 input I1 => I1, -- Clock1 input S => S -- Clock select input ); -- Clock MUX output IBUFGDS_inst : IBUFGDS generic map ( IOSTANDARD => "DEFAULT") port map ( O => O, -- Clock buffer output I => I, -- Diff_p clock buffer input IB => IB -- Diff_n clock buffer input );

106 Regionális órajelek (1.) FPGA mérettől függő számú órajel régió (6 18)

107 Regionális órajelek (2.) BUFIO/BUFR használat

108 Órajel multiplexálás logikával

109 Órajel multiplexálás logikával library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity clock_mux is port ( clk_i0 : in std_logic; clk_i1 : in std_logic; sel : in std_logic; clk_o : out std_logic ); end clock_mux; architecture rtl OF clock_mux is signal ff_clk0 : std_logic_vector(2 downto 0) := "000"; signal ff_clk1 : std_logic_vector(2 downto 0) := "000"; signal clk_o : std_logic; begin process(clk_i0) begin if (clk_i0'event and clk_i0='1') then ff_clk0(0) <= not sel and not ff_clk1(2); ff_clk0(1) <= ff_clk0(0); end if; end process; process(clk_i0) begin if (clk_i0'event and clk_i0='0') then ff_clk0(2) <= ff_clk0(1); end if; end process; process(clk_i1) begin if (clk_i1'event and clk_i1='1') then ff_clk1(0) <= sel and not ff_clk0(2); ff_clk1(1) <= ff_clk1(0); end if; end process; process(clk_i1) begin if (clk_i1'event and clk_i1='0') then ff_clk1(2) <= ff_clk1(1); end if; end process; clk_o <= (clk_i0 and ff_clk0(2)) or (clk_i1 and ff_clk1(2));

110 Órajel generálás Spartan-3: DCM Spartan-6: DCM, DCM_CLKGEN, PLL Virtex-5, Virtex-6: MMCM (PLL) Artix-7, Kintex-7, Virtex-7: MMCM, PLL

111 Órajel kezelő modul Általános célú órajel kezelő Szinkronizáló, Frekvencia osztó 2x szorzó Fázistoló / fázis hasító DFS frekvencia szintézer Tipikus alkalmazás

112 Órajel kezelő modul Fázis toló egység Beállítható késleltetés, ps lépésben Belső felépítés: Visszacsatolt szabályozó kör, ami kompenzálja a késleltetést

113 Órajel kezelő egység Belső / külső késleltetés kompenzáció Azonos késleltetésű komponensek beépítésével az egyes késleltetések kompenzálhatók A külső és belső órajel események szinkronizálhatóak

114 Órajel kezelő egység Órajel kondicionálás Szinkronizáció Frekvencia kétszerezés 4 fázisú órajelezés Különböző leosztott késleltetés kompenzált CLKDIV frekvenciák: 1.5, 2, 2.5, 3,..8, 9,.. 10, 16 (CLK2x/K, ahol K = 3 32)

115 Órajel kezelő egység Frekvencia szintézer Lényegében egy frekvencia szorzó egység Fout = F_CKin * FX_Mult/FX_Div, ahol FX_Mult 2 32 FX_Div 1 32 A kimeneti CK_FX lehet fáziszárt vagy független a referenciától (CLK_FB használata) Frekvencia szintézis lehetséges független és fáziszárt üzemmódban A használható frekvencia tartomány eltérő Spartan 3E 5MHz 250MHz, ha szinkronizált (DLL is kell) Spartan 3E 200kHz 333MHz, ha nem kell szinkronizáció

116 DCM példányosítás DCM_SP #(.CLKDV_DIVIDE(2.0),.CLKFX_DIVIDE(1),.CLKFX_MULTIPLY(4),.CLKIN_DIVIDE_BY_2("FALSE"),.CLKIN_PERIOD(0.0),.CLKOUT_PHASE_SHIFT("NONE"),.CLK_FEEDBACK("1X"),.DLL_FREQUENCY_MODE("LOW"),.DUTY_CYCLE_CORRECTION("TRUE"),.PHASE_SHIFT(0),.STARTUP_WAIT("FALSE") ) DCM_SP_inst (.CLK0(CLK0),.CLK180(CLK180),.CLK270(CLK270),.CLK2X(CLK2X),.CLK2X180(CLK2X180),.CLK90(CLK90),.CLKDV(CLKDV),.CLKFX180(CLKFX180),.LOCKED(LOCKED),.PSDONE(PSDONE),.STATUS(STATUS),.CLKFB(CLKFB),.CLKIN(CLKIN),.PSCLK(PSCLK),.PSEN(PSEN),.PSINCDEC(PSINCDEC),.RST(RST) );

117 DCM kaszkádosítás DCM kényes a reset-re process(clk0_fx_bufg, rst, dcm_locked(0)) begin if (rst='1' or dcm_locked(0)='0') then rst_cnt <= (others=>'0'); dcm_rst <= '1'; elsif (clk0_fx_bufg'event and clk0_fx_bufg='1') then if (rst_cnt(23)='0') then rst_cnt <= rst_cnt+1; elsif (rst_cnt(23)='1' and dcm_locked(1)= 0') then rst_cnt <= (others=>'0'); end if; if (rst_cnt(23 downto 22)="00") then dcm_rst <= '1'; else dcm_rst <= '0'; end if; end if; end process;

118 DCM időzítési kritériumok Spartan-6, -2, DLL Bemenet: MHz Kimenet: MHz Spartan-6, -2, DFS Bemenet: 0,5 333 MHz Kimenet: MHz

119 PLL Phase Locked Loop (6-os sorozattól) 6 kimenet, egyedi fázissal és osztási aránnyal Újrakonfigurálható F VCO F OUT F CLKIN 1 F VCO O M D

120 PLL időzítési kritériumok Spartan-6, -2 Bemenet (BUFIO): MHz Bemenet (BUFG): MHz PFD: MHz VCO: MHz Kimenet (BUFG): 3, MHz Kimenet (BUFPLL): 3, MHz

121 Altera órajel kezelés Hasonló a Xilinx-hoz, picit több megkötés

122 Altera Clk Control + PLL

123 Altera Cyclone IV PLL

124 Altera PLL időzítési kritériumok Cyclone IV, -8 Bemenet: 5 472,5 MHz PFD: MHz VCO: MHz Kimenet: 0 402,5 MHz

125 Összefoglalás FPGA belső erőforrások Logikai blokk sokféle lehet SRAM-nál tipikus a LUT4 + DFF Kiegészítő tulajdonságok: Átvitelgyorsító Elosztott memória SRL16 Speciális modulok Órajel kezelő Szorzó BlokkRAM

126 I/O erőforrások Több I/O szabvány támogatása Aszimmetrikus ( Single ended ) LVCMOS, LVTTL, HSTL, SSTL, PCI Differneciális LVDS, RSDS, TMDS, Differential HSTL & SSTL Vcco (kimeneti feszültség) és Vccaux I/O bankonként Kimeneti meghajtás erősség & slew rate állítás PULLUP, PULLDOWN, KEEPER

127 IOB IOB Kapcsolat a láb (PAD) és az FPGA belső erőforrásai között

128 IOB attributumok PULLUP: gyenge felhúzó ellenállás PULLDOWN: gyenge lehúzó ellenállás KEEPER: gyenge fel/lehúzás, az utolsó logikai szintet tartja a meghajtás után is (nem lebeg) DRIVE_STRENGTH: meghajtás erősség (amper) SLEW_RATE: jelváltási sebesség (FAST/SLOW)

129 I/O referencia feszültség I/O bankonként állítható Megegyezik az adott bankban használt I/O feszültséggel Lehet külső forrás (VREF lábak) Egyes FPGA-knál belül is előállítható

130 Termináció Ki/bemenet impedancia illesztése Külső ellenállás DCI Digitally Controlled Impedance

131 DCI Digitally Controlled Impedance On-Die Termination Egy (külső) referencia ellenállás értékét másolja VRN/VRP lábak Folyamatosan változik (pl. hőmérséklet, tápfeszültség változás kompenzációja) Soros vagy párhuzamos lezáró ellenállás

132 DCI példa: DDR2 adatvonal Külső ellenállásokkal DCI a bemeneten DCI mindkét oldalon

133 I/O primitívek Single ended IBUF, IBUFG, OBUF, OBUFT, IOBUF Differenciális IBUFDS, IBUFGDS, OBUFDS, OBUFTDS,

134 Bemenetek Standard lehetőségek Kombinációs; regiszterezett; latch bemenet DDR bemeneti FF OPPOSITE_EDGE, SAME_EDGE, SAME_EDGE_PIPELINED

135 DDR bemeneti FF DDR OPPOSITE_EDGE

136 DDR bemeneti FF DDR SAME_EDGE DDR SAME_EDGE_PIPELINED

137 Kimenetek Standard lehetőségek Kombinációs, FF, latch FF rendelkezésre áll a a tri-state vezérlőjelhez is DDR kimeneti regiszter

138 DDR kimeneti FF OPPOSITE_EDGE SAME_EDGE

139 Órajel kimenet Belső, nagy frekvenciás órajel osztása reg [1:0] clk_div; (posegde clk) clk_div <= clk_div + 1; assign clk_d2 = clk_div[0]; assign clk_d4 = clk_div[1]; ODDR FF ODDR2 ODDR2_clk (.Q(clk_pin),.C0(clk),.C1(~clk),.CE(1'b1),.D0(1'b1),.D1(1'b0),.R(1'b0),.S(11b0) );

140 I/O Delay Programozható késleltetővonal (SP6, V4, V5, V6) CE & INC késleltetés állítás CINVCTRL: órajel invertálás IDELAYCTRL Kalibráció V4, V5, V6 Fix 200 MHz-ről üzemel Példányosítás, automatikus replikáció (általában )

141 ISERDES Soros-párhuzamos átalakító SP6 SDR:2,3,4 bites kimenet, kaszkádosítható (5,6,7,8) V4, V5, V6 SDR: 2,3,4,5,6 bites kimenet, kaszkádosítható (7,8) DDR: 4,6,8,10 bites kimenet, kaszkádosítható (8, 10)

142 ISERDES (SP6)

143 OSERDES Párhuzamos-soros átalakító Adat és háromállapotú vezérlőjel bemenet SP6 SDR: 2,3,4 bites bemenet V5, V6 SDR, DDR: 2,3,4,5,6 bites bemenet (háromállapotú: max 4)

144 Xilinx UltraScale 1 Slice = 8 LUT + 16 FF, 1 Slice/CLB 4 CE/CLB, több kimenet/slice: LUT, MUX, FF F9MUX Distributed RAM Független írási/olvasási CE BRAM: Dedikált kaszkádosítás UltraRAM: 4Kx72 bit, dual-port DSP: 27x18 szorzó Transciever: Gb/s Megnövelt huzalozási kapacitás Átdolgozott órajel terjesztés kisebb skew

145 Altera Stratix III USD Gyors összehasonlítás Xilinx Virtex USD Lattice SC/M USD

146 Gyors összehasonlítás Altera Stratix IV: USD

147 Gyors összehasonlítás Xilinx Virtex-6: USD

148 Altera Cyclone IV USD Xilinx Spartan USD Lattice ECM USD Gyors összehasonlítás Actel IGLOO USD

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

FPGA áramkörök alkalmazásainak vizsgálata FPGA áramkörök alkalmazásainak vizsgálata Kutatási beszámoló a Pro Progressio alapítvány számára Raikovich Tamás, 2012. 1 Bevezetés A programozható logikai áramkörökön (FPGA) alapuló hardver gyorsítók

Részletesebben

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

PROGRAMOZHATÓ LOGIKAI. Előadó: Dr. Oniga István PROGRAMOZHATÓ LOGIKAI ESZKÖZÖK Előadó: Dr. Oniga István Összeállította Dr. Oniga István A következő anyagok felhasználásával Digitális rendszerek tervezése FPGA áramkörökkel. Fehér Bela Szanto Peter, Lazanyi

Részletesebben

Xilinx 7-es sorozatú FPGA-k architektúrája

Xilinx 7-es sorozatú FPGA-k architektúrája Xilinx 7-es sorozatú FPGA-k architektúrája FPGA gyártók részesedése Microsemi Lattice 4% 6% Egyéb 1% Altera 40% Xilinx 49% Altera: Intel felvásárolta Microsemi: Actel felvásárlás Lattice: saját + SiliconBlue

Részletesebben

Attribútumok, constraint-ek

Attribútumok, constraint-ek 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

Részletesebben

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

Tervezési módszerek programozható logikai eszközökkel Pannon Egyetem, MIK-VIRT, Veszprém Dr. VörösháziZsolt voroshazi.zsolt@virt.uni-pannon.hu Tervezési módszerek programozható logikai eszközökkel 7. VHDL FELADATOK: Speciális nyelvi szerkezetek. Sorrendi

Részletesebben

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

Constraint-ek. Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Constraint-ek Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás

Részletesebben

Szintézis attributumok és constraint-ek

Szintézis attributumok és constraint-ek és constraint-ek BLACK BOX: forrás szinten nem adott modul (pl. szintetizált huzalozási lista) attribute black_box : string; attribute black_box of beh : architecture is yes; CLOCK_BUFFER_TYPE entity test

Részletesebben

Digitális rendszerek tervezése FPGA áramkörökkel SRAM FPGA Architektúrák

Digitális rendszerek tervezése FPGA áramkörökkel SRAM FPGA Architektúrák 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 rendszerek tervezése FPGA áramkörökkel SRAM FPGA Architektúrák

Részletesebben

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

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 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 Elméleti anyag: Processzoros vezérlés általános tulajdonságai o z induló készletben

Részletesebben

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

VHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót VHDL szimuláció Labor II. Dr. Hidvégi Timót Tervezés 1 Lefoglalt szavak abs access after alias all and architecture array assert attribute block body buffer bus case component configuration constant disconnect

Részletesebben

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ. 2012. szeptember 18. Verzió 1.0. http://logsys.mit.bme.hu

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ. 2012. szeptember 18. Verzió 1.0. http://logsys.mit.bme.hu LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ 2012. szeptember 18. Verzió 1.0 http://logsys.mit.bme.hu Tartalomjegyzék 1 Bevezetés... 1 2 Memóriák... 3 2.1 Aszinkron SRAM... 3 2.2 SPI buszos soros FLASH

Részletesebben

Digitális elektronika gyakorlat

Digitális elektronika gyakorlat 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

Részletesebben

Digitális rendszerek. I. rész. Dr. Turóczi Antal turoczi.antal@nik.uni-obuda.hu

Digitális rendszerek. I. rész. Dr. Turóczi Antal turoczi.antal@nik.uni-obuda.hu Digitális rendszerek I. rész Dr. Turóczi Antal turoczi.antal@nik.uni-obuda.hu A tárgy célja Bevezető Digitális rendszertervezés alapjai Programozható logikai áramkörök Hardverleíró nyelvek (VHDL) A digitális

Részletesebben

Rendszertervezés FPGA eszközökkel

Rendszertervezés FPGA eszközökkel Rendszertervezés FPGA eszközökkel 1. előadás Programozható logikai eszközök 2011.04.13. Milotai Zsolt Tartalom Bevezetés: alkalmazási lehetőségek Nem programozható és programozható eszközök összehasonlítása

Részletesebben

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

VHDL alapismeretek. (Xilinx FPGA-k programozása VHDL nyelven) Oktatási jegyzet. Összeállította: dr. Zigó Tamás VHDL alapismeretek (Xilinx FPGA-k programozása VHDL nyelven) Oktatási jegyzet Összeállította: dr. Zigó Tamás E-mail: zigotamas@bytestudio.hu www.bytestudio.hu ByteStudio Bt. 2013. 10. 07. VHSIC (Very High

Részletesebben

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése A felsőfokú informatikai oktatás minőségének fejlesztése, modernizációja TÁMOP-4.1.2.A/1-11/1-2011-0104 Főkedvezményezett:

Részletesebben

Pannon Egyetem, MIK-VIRT, Veszprém. Dr. Vörösházi Zsolt voroshazi.zsolt@virt.uni-pannon.hu

Pannon Egyetem, MIK-VIRT, Veszprém. Dr. Vörösházi Zsolt voroshazi.zsolt@virt.uni-pannon.hu Pannon Egyetem, MIK-VIRT, Veszprém Dr. Vörösházi Zsolt voroshazi.zsolt@virt.uni-pannon.hu Tervezési módszerek programozható logikai eszközökkel 1. Programozható logikai eszközök (PLD) és FPGA-k bemutatása.

Részletesebben

HDL nyelvek: VHDL. 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 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK HDL nyelvek: VHDL Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás

Részletesebben

Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA)

Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA) Beágyazott elektronikus rendszerek (P-ITEEA_0033) Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA) 5. előadás 2015. március 11. Analóg jelfeldolgozás Analóg bejövő jelek (egy folyamat

Részletesebben

HDL nyelvek: VHDL. 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 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK HDL nyelvek: VHDL Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás

Részletesebben

A MiniRISC processzor

A MiniRISC processzor BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK A MiniRISC processzor Fehér Béla, Raikovich Tamás, Fejér Attila BME MIT

Részletesebben

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő) Memóriák (felejtő) Memória Kapacitás Ár Sebesség Memóriák - tárak Háttértár (nem felejtő) Memória Vezérlő egység Központi memória Aritmetikai Logikai Egység (ALU) Regiszterek Programok Adatok Ez nélkül

Részletesebben

Digitális elektronika gyakorlat

Digitális elektronika gyakorlat FELADATOK 1. Tervezzetek egy félösszeadó VHDL modult 2. Tervezzetek egy teljes összeadó VHDL modult 3. Schematic Editor segítségével tervezzetek egy 4 bit-es öszeadó áramkört. A két bemeneti számot a logikai

Részletesebben

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Ó

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Ó Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar Szabó Tamás Dr. Lovassy Rita - Tompos Péter DIGITÁLIS TECHNIKA LABÓRATÓRIUMI ÚTMUTATÓ 3. kiadás Mikroelektronikai és Technológia Intézet Budapest, 2014-1

Részletesebben

A mikroszámítógép felépítése.

A mikroszámítógép felépítése. 1. Processzoros rendszerek fő elemei mikroszámítógépek alapja a mikroprocesszor. Elemei a mikroprocesszor, memória, és input/output eszközök. komponenseket valamilyen buszrendszer köti össze, amelyen az

Részletesebben

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

Programozás és digitális technika II. Logikai áramkörök. Pógár István Debrecen, 2016 Programozás és digitális technika II. Logikai áramkörök Pógár István pogari@eng.unideb.hu Debrecen, 2016 Gyakorlatok célja 1. Digitális tervezés alapfogalmainak megismerése 2. A legelterjedtebb FPGA-k

Részletesebben

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

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő

Részletesebben

12.1.1. A Picoblaze Core implementálása FPGA-ba

12.1.1. A Picoblaze Core implementálása FPGA-ba 12.1.1. A Picoblaze Core implementálása FPGA-ba A Picoblaze processzor Ebben a fejezetben kerül bemutatásra a Pikoblaze-zel való munka. A Picoblaze szoftveres processzort alkotója Ken Chapman a Xilinx

Részletesebben

Egyszerű mikroprocesszor RTL modellek (VHDL)

Egyszerű mikroprocesszor RTL modellek (VHDL) 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

Részletesebben

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

Digitális rendszerek tervezése FPGA áramkörökkel 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 rendszerek tervezése FPGA áramkörökkel Fehér Béla Szántó Péter,

Részletesebben

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Dr. Oniga István DIGITÁLIS TECHNIKA 9 r. Oniga István IGITÁLIS TEHNIKA 9 Regiszterek A regiszterek több bites tárolók hálózata S-R, J-K,, vagy kapuzott tárolókból készülnek Fontosabb alkalmazások: adatok tárolása és adatmozgatás Funkcióik:

Részletesebben

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

Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium 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 rendszerek tervezése FPGA áramkörökkel Verilog RTL kódolás Fehér

Részletesebben

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

A Xilinx FPGA-k. A programozható logikákr. Az FPGA fejlesztés s menete. BMF KVK MAI, Molnár Zsolt, 2008. A Xilinx FPGA-k A programozható logikákr król általában A Spartan-3 3 FPGA belső felépítése Az FPGA fejlesztés s menete BMF KVK MAI, Molnár Zsolt, 2008. A programozható logikák k I. Logikai eszközök: -

Részletesebben

Egyszerű RISC CPU tervezése

Egyszerű RISC CPU tervezése IC és MEMS tervezés laboratórium BMEVIEEM314 Budapesti Műszaki és Gazdaságtudományi Egyetem Egyszerű RISC CPU tervezése Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013. február 14. Nagy Gergely

Részletesebben

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

Az INTEL D-2920 analóg mikroprocesszor alkalmazása Az INTEL D-2920 analóg mikroprocesszor alkalmazása FAZEKAS DÉNES Távközlési Kutató Intézet ÖSSZEFOGLALÁS Az INTEL D 2920-at kifejezetten analóg feladatok megoldására fejlesztették ki. Segítségével olyan

Részletesebben

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

Szűrő architektúrák FPGA realizációjának vizsgálata Szűrő architektúrák FPGA realizációjának vizsgálata Kutatási beszámoló a Pro Progressio alapítvány számára Szántó Péter, 2013. Bevezetés Az FPGA-ban megvalósítandó jelfeldolgozási feladatok közül a legfontosabb

Részletesebben

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

PROGRAMOZHATÓ LOGIKAI. Előadó: Dr. Oniga István PROGRAMOZHATÓ LOGIKAI ESZKÖZÖK Előadó: Dr. Oniga István Összeállította Dr. Oniga István A következő anyagok felhasználásával Digitális rendszerek tervezése FPGA áramkörökkel. Fehér Bela Szanto Peter, Lazanyi

Részletesebben

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

Előadó: Nagy István (A65) Programozható logikai áramkörök FPGA eszközök Előadó: Nagy István (A65) Ajánlott irodalom: Ajtonyi I.: Digitális rendszerek, Miskolci Egyetem, 2002. Ajtonyi I.: Vezérléstechnika II., Tankönyvkiadó, Budapest,

Részletesebben

MEMÓRIA TECHNOLÓGIÁK. Számítógép-architektúrák 4. gyakorlat. Dr. Lencse Gábor. tudományos főmunkatárs BME Híradástechnikai Tanszék lencse@hit.bme.

MEMÓRIA TECHNOLÓGIÁK. Számítógép-architektúrák 4. gyakorlat. Dr. Lencse Gábor. tudományos főmunkatárs BME Híradástechnikai Tanszék lencse@hit.bme. MEMÓRIA TECHNOLÓGIÁK Számítógép-architektúrák 4. gyakorlat Dr. Lencse Gábor 2011. október 3., Budapest tudományos főmunkatárs BME Híradástechnikai Tanszék lencse@hit.bme.hu Tartalom Emlékeztető: mit kell

Részletesebben

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

Digitális elektronika gyakorlat. A VHDL leírástípusok A VHDL leírástípusok 1. A funkcionális leírásmód Company: SAPIENTIA EMTE Engineer: Domokos József Create Date: 08:48:48 03/21/06 Design Name: Module Name: Logikai es kapuk funkcionalis leirasa- Behavioral

Részletesebben

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

Hobbi Elektronika. A digitális elektronika alapjai: Újrakonfigurálható logikai eszközök Hobbi Elektronika A digitális elektronika alapjai: Újrakonfigurálható logikai eszközök 1 Programozható logikai eszközök Programozható logikai áramkörök (Programmable Logic Devices) a kombinációs logikai

Részletesebben

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

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd SZE MTK MSZT lovas.szilard@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? Nem reprezentatív felmérés kinek van

Részletesebben

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

7.hét: A sorrendi hálózatok elemei II. 7.hét: A sorrendi hálózatok elemei II. Tárolók Bevezetés Bevezetés Regiszterek Számlálók Memóriák Regiszter DEFINÍCIÓ Tárolóegységek összekapcsolásával, egyszerű bemeneti kombinációs hálózattal kiegészítve

Részletesebben

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 II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással Megoldás Elméleti anyag: Processzor belső felépítése, adat

Részletesebben

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

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához Ellenőrizzük a projektből importált adatokat. Ha rendben vannak, akkor kattintsunk a Next gombra. Válasszuk a Create Design

Részletesebben

Digitális Rendszerek és Számítógép Architektúrák

Digitális Rendszerek és Számítógép Architektúrák PANNON EGYETEM, Veszprém Villamosmérnöki és Információs Rendszerek Tanszék Digitális Rendszerek és Számítógép Architektúrák 6. előadás: Programozható logikai eszközök: CPLD, FPGA. HLS: magas szintű szintézis

Részletesebben

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

Digitális rendszerek tervezése FPGA áramkörökkel Rendszerspecifikáció 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 rendszerek tervezése FPGA áramkörökkel

Részletesebben

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

ISE makró (saját alkatrész) készítése ISE makró (saját alkatrész) készítése 1. Makró (saját alkatrész) hozzáadása meglévő projekthez... 2 1.1. Kapcsolási rajz alapú makró készítése... 2 1.2. Kapcsolási rajz alapú saját makró javítása... 4

Részletesebben

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

VHDL alapú tervezés. (nem a teljes változat) Írta : Dr. Hidvégi Timót egyetemi docens VHDL alapú tervezés (nem a teljes változat) Írta : Dr. Hidvégi Timót egyetemi docens BEVEZETÉS... 4 A VHDL NYELV MEGADÁSA... 5 A VHDL NYELV ELEMEI... 5 Kommentek... 5 Fentartott szavak... 5 Adattípusok...

Részletesebben

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Dr. Oniga István DIGITÁLIS TECHNIKA 8 Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók

Részletesebben

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

Kombinációs áramkörök modelezése Laborgyakorlat. Dr. Oniga István Kombinációs áramkörök modelezése Laborgyakorlat Dr. Oniga István Funkcionális kombinációs egységek A következő funkcionális egységek logikai felépítésével, és működésével foglalkozunk: kódolók, dekódolók,

Részletesebben

Digitális technika VIMIAA01

Digitális technika VIMIAA01 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 technika VIMIAA01 Fehér Béla BME MIT Digitális Rendszerek Számítógépek

Részletesebben

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

FPGA & Verilog ismertetı. BME Méréstechnika és Információs Rendszerek Tanszék FPGA & Verilog ismertetı BME Méréstechnika és Információs Rendszerek Tanszék FPGA-k FPGA: Field Programmable Gate Array programozható logikai áramkör Jelentısebb gyártók: Xilinx, Altera, Actel, Quicklogic,

Részletesebben

Digitális technika VIMIAA02 6. EA

Digitális technika VIMIAA02 6. EA 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 technika VIMIAA02 6. EA Fehér Béla BME MIT Kiegészítés az eddigi

Részletesebben

Digitális technika VIMIAA02 6. EA Fehér Béla BME MIT

Digitális technika VIMIAA02 6. EA Fehér Béla BME MIT 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 technika VIMIAA02 6. EA Fehér Béla BME MIT Kiegészítés az eddigi

Részletesebben

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

Digitális rendszerek tervezése FPGA áramkörökkel LOGSYS példa 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 rendszerek tervezése FPGA áramkörökkel LOGSYS példa Fehér Béla

Részletesebben

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

PROTOTÍPUSKÉSZÍTÉS. Előadó: Dr. Oniga István PROTOTÍPUSKÉSZÍTÉS VERILOG NYELVEN Előadó: Dr. Oniga István Összeállította Dr. Oniga István A következő anyagok felhasználásával Digitális rendszerek tervezése FPGA áramkörökkel. Fehér Bela Szanto Peter,

Részletesebben

1. Ismertesse az átviteltechnikai mérőadók szolgáltatásait!

1. Ismertesse az átviteltechnikai mérőadók szolgáltatásait! Ellenőrző kérdések A mérés elején öt kérdésre kell választ adni. Egy hibás válasz a mérésre adott osztályzatot egy jeggyel rontja. Kettő vagy annál több hibás válasz pótmérést eredményez! A kapcsolási

Részletesebben

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

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN Dr. Oniga István 1. Ismerkedés az ISE fejlesztőrendszerrel és a LOGSYS kártyával 2. Első projekt (Rajz) egyszerű logikai kapuk 3. Második projekt (Verilog) egyszerű

Részletesebben

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

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István Laborgyakorlat 3 A modul ellenőrzése szimulációval Dr. Oniga István Szimuláció és verifikáció Szimulációs lehetőségek Start Ellenőrzés után Viselkedési Funkcionális Fordítás után Leképezés után Időzítési

Részletesebben

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

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István LOGIKI TERVEZÉS HRDVERLEÍRÓ NYELVEN Dr. Oniga István Digitális komparátorok Két szám között relációt jelzi, (egyenlő, kisebb, nagyobb). három közül csak egy igaz Egy bites komparátor B Komb. hál. fi

Részletesebben

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

Tervezési módszerek programozható logikai eszközökkel Pannon Egyetem, MIK-VIRT, Veszprém Dr. Vörösházi Zsolt voroshazi.zsolt@virt.uni-pannon.hu Tervezési módszerek programozható logikai eszközökkel 3. Xilinx ISE Design Suite integrált fejlesztő rendszer használata.

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5 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 technika (VIMIAA02) Laboratórium 5 Fehér Béla Raikovich Tamás,

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5 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 technika (VIMIAA02) Laboratórium 5 Fehér Béla Raikovich Tamás,

Részletesebben

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

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai Xilinx System Generator Szántó Péter BME MIT, FPGA Laboratórium Xilinx System Generator MATLAB Simulink Toolbox Simulink Modell alapú grafikus

Részletesebben

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

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Multiplexer (MPX) A multiplexer egy olyan áramkör, amely több bemeneti adat közül a megcímzett bemeneti adatot továbbítja a kimenetére.

Részletesebben

Funkcionális áramkörök vizsgálata

Funkcionális áramkörök vizsgálata Dienes Zoltán Funkcionális áramkörök vizsgálata A követelménymodul megnevezése: Elektronikai áramkörök tervezése, dokumentálása A követelménymodul száma: 0917-06 A tartalomelem azonosító száma és célcsoportja:

Részletesebben

Pannon Egyetem, MIK-VIRT, Veszprém. Dr. Vörösházi Zsolt

Pannon Egyetem, MIK-VIRT, Veszprém. Dr. Vörösházi Zsolt Pannon Egyetem, MIK-VIRT, Veszprém Dr. Vörösházi Zsolt voroshazi.zsolt@virt.uni-pannon.hu Tervezési módszerek programozható logikai eszközökkel 1. Programozható logikai eszközök (PLD) és FPGA-k bemutatása.

Részletesebben

12. NYOMÓGOMBOK ÉS KAPCSOLÓK PERGÉSMENTESÍTÉSE A FEJLESZTŐLAPON

12. NYOMÓGOMBOK ÉS KAPCSOLÓK PERGÉSMENTESÍTÉSE A FEJLESZTŐLAPON 12. NYOMÓGOMBOK ÉS KAPCSOLÓK PERGÉSMENTESÍTÉSE A FEJLESZTŐLAPON 1 Az FPGA eszközök bemeneti jeleit gyakran mechanikai kapcsolókkal hozzuk létre. Használható váltókapcsoló, amely a nulla és az egyes logikai

Részletesebben

Digitális rendszerek tervezése FPGA áramkörökkel Verilog RTL kódolás

Digitális rendszerek tervezése FPGA áramkörökkel Verilog RTL kódolá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 rendszerek tervezése FPGA áramkörökkel Verilog RTL kódolás Fehér

Részletesebben

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

1. Kombinációs hálózatok mérési gyakorlatai 1. Kombinációs hálózatok mérési gyakorlatai 1.1 Logikai alapkapuk vizsgálata A XILINX ISE DESIGN SUITE 14.7 WebPack fejlesztőrendszer segítségével és töltse be a rendelkezésére álló SPARTAN 3E FPGA ba:

Részletesebben

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ. 2012. szeptember 19. Verzió 1.2. http://logsys.mit.bme.hu

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ. 2012. szeptember 19. Verzió 1.2. http://logsys.mit.bme.hu LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ 2012. szeptember 19. Verzió 1.2 http://logsys.mit.bme.hu Tartalomjegyzék 1 Bevezetés... 1 2 Memóriák... 3 2.1 Aszinkron SRAM... 3 2.2 SPI buszos soros

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 4. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei Kutató Intézet kisszámítógépes rendszerekben Tudományos számításokban gyakran nagy mennyiségű aritmetikai művelet elvégzésére van

Részletesebben

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

LOGIKAI TERVEZÉS PROGRAMOZHATÓ. Elő Előadó: Dr. Oniga István LOGIKI TERVEZÉS PROGRMOZHTÓ ÁRMKÖRÖKKEL Elő Előadó: Dr. Oniga István Funkcionális kombinációs ió egységek következő funkcionális egységek logikai felépítésével, és működésével foglalkozunk: kódolók, dekódolók,

Részletesebben

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

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő

Részletesebben

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?

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? System on a Chip Programmable Chip Lazányi János 2010 Tartalom A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban? Page 2 1 A hagyományos technológia Elmosódó határvonalak ASIC

Részletesebben

4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA 4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA A címben található jelölések a mikrovezérlők kimentén megjelenő tipikus perifériák, típus jelzései. Mindegyikkel röviden foglalkozni fogunk a folytatásban.

Részletesebben

Digitális áramkörök és rendszerek alkalmazása az űrben 3.

Digitális áramkörök és rendszerek alkalmazása az űrben 3. Budapest Universit y of Technology and Economics Digitális áramkörök és rendszerek alkalmazása az űrben 3. Csurgai-Horváth László, BME-HVT 2016. Fedélzeti adatgyűjtő az ESEO LMP kísérletéhez European Student

Részletesebben

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai Közlekedés gépjárművek elektronikája, diagnosztikája Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai TÁMOP-2.2.3-09/1-2009-0010 A Széchenyi István Térségi Integrált Szakképző

Részletesebben

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

Verilog HDL ismertető 4. hét : hét dia BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Verilog HDL ismertető 4. hét : 1.-3. hét + 41 61 dia Fehér Béla, Raikovich

Részletesebben

Mikrorendszerek tervezése

Mikrorendszerek tervezése BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Mikrorendszerek tervezése Beágyazott rendszerek Fehér Béla Raikovich Tamás

Részletesebben

2008. október 9. Verzió 1.0. http://logsys.hu

2008. október 9. Verzió 1.0. http://logsys.hu LOGSYS SPARTAN 3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ 2008. október 9. Verzió 1.0 http://logsys.hu Tartalomjegyzék 1 Bevezetés... 1 2 Memóriák... 3 2.1 Aszinkron SRAM... 3 2.2 SPI buszos soros FLASH memória...

Részletesebben

Számítógép Architektúrák (MIKNB113A)

Számítógép Architektúrák (MIKNB113A) PANNON EGYETEM, Veszprém Villamosmérnöki és Információs Rendszerek Tanszék Számítógép Architektúrák (MIKNB113A) 9. előadás: Memóriák Előadó: Vörösházi Zsolt Jegyzetek, segédanyagok: Könyvfejezetek: http://www.virt.vein.hu

Részletesebben

Újrakonfigurálható eszközök

Újrakonfigurálható eszközök Újrakonfigurálható eszközök 8. Egy minimalista 8-bites mikrovezérlő tervezése 1 Felhasznált irodalom és segédanyagok Icarus Verilog Simulator: htttp:iverilog.icarus.com/ University of Washington Comttputer

Részletesebben

Verilog HDL ismertető

Verilog HDL ismertető BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Verilog HDL ismertető Fehér Béla, Raikovich Tamás BME MIT Verilog bevezető,

Részletesebben

Hardver leíró nyelvek (HDL)

Hardver leíró nyelvek (HDL) Hardver leíró nyelvek (HDL) Benesóczky Zoltán 2004 A jegyzetet a szerzıi jog védi. Azt a BME hallgatói használhatják, nyomtathatják tanulás céljából. Minden egyéb felhasználáshoz a szerzı belegyezése szükséges.

Részletesebben

Dr. Oniga István DIGITÁLIS TECHNIKA

Dr. Oniga István DIGITÁLIS TECHNIKA Dr. Oniga István DIGITÁLIS TECHNIKA Összeállította Dr. Oniga István A következő anyagok felhasználásával Digitális rendszerek tervezése FPGA áramkörökkel. Fehér Bela Szanto Peter, Lazanyi Janos, Raikovich

Részletesebben

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

Digitális technika VIMIAA01 6. hét Fehér Béla BME MIT 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 technika VIMIAA01 6. hét Fehér Béla BME MIT Kiegészítés az eddigi

Részletesebben

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

Verilog HDL ismertető 2. hét : 1. hét dia BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Verilog HDL ismertető 2. hét : 1. hét + 15 25 dia Fehér Béla, Raikovich

Részletesebben

Számítógép Architektúrák

Számítógép Architektúrák Számítógép Architektúrák Perifériakezelés a PCI-ban és a PCI Express-ben 2015. március 9. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu Tartalom A

Részletesebben

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

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Előadó: Dr. Oniga István LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN Előadó: Dr. Oniga István Összeállította Dr. Oniga István A következő anyagok felhasználásával Digitális rendszerek tervezése FPGA áramkörökkel. Fehér Bela Szanto Peter,

Részletesebben

ELŐADÁS 2016-01-05 SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

ELŐADÁS 2016-01-05 SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA ELŐADÁS 2016-01-05 SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA A PC FIZIKAI KIÉPÍTÉSÉNEK ALAPELEMEI Chip (lapka) Mikroprocesszor (CPU) Integrált áramköri lapok: alaplap, bővítőkártyák SZÁMÍTÓGÉP FELÉPÍTÉSE

Részletesebben

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

Verilog ismertető (Szántó Péter, BME MIT, ) Verilog ismertető (Szántó Péter, BME MIT, 2006-09-17) Tartalomjegyzék 1. Bevezetés...1 2. Verilog nyelvi elemek...2 2.1. Modulok definiálása...2 2.2. Operátorok...3 2.3. Változók, értékadások...4 2.3.1.

Részletesebben

Verilog HDL ismertető

Verilog HDL ismertető BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Verilog HDL ismertető 1. hét: 1 14 diák 2. hét: 15 25 diák 3. hét: 26

Részletesebben

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

Végh János Bevezetés a Verilog hardver leíró nyelvbe INCK??? előadási segédlet 1 Debreceni Egyetem Informatikai Kara Végh János Bevezetés a Verilog hardver leíró nyelvbe INCK??? előadási segédlet V0.30@14.11.07 Tartalomjegyzék (folyt) 2 Tartalomjegyzék I. Alapfogalmak 1.. A digitális

Részletesebben

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

Szántó Péter BME Méréstechnika és Információs Rendszerek Tanszék, FPGA Labor Verilog ismertető Szántó Péter BME Méréstechnika és Információs Rszerek Tanszék, FPGA Labor 2011-07-20 Tartalomjegyzék 1. Bevezetés... 1 2. Verilog nyelvi elemek... 2 2.1. Modulok definiálása... 2 2.2.

Részletesebben

funkcionális elemek regiszter latch számláló shiftregiszter multiplexer dekóder komparátor összeadó ALU BCD/7szegmenses dekóder stb...

funkcionális elemek regiszter latch számláló shiftregiszter multiplexer dekóder komparátor összeadó ALU BCD/7szegmenses dekóder stb... Funkcionális elemek Benesóczky Zoltán 24 A jegyzetet a szerzői jog védi. Azt a BM hallgatói használhatják, nyomtathatják tanulás céljából. Minden egyéb felhasználáshoz a szerző belegyezése szükséges. funkcionális

Részletesebben

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

DIGITÁLIS TECHNIKA 13. Dr. Oniga István DIGITÁLIS TECHNIKA 13 Dr. Oniga István Xilinx FPGA-k Több család Spartan: hatékony, optimalizált struktúra Virtex: speciális funkciók, gyorsabb, komplexebb, gazdagabb g funkcionalitás Felépítés: CLB: logikai

Részletesebben

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

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István IGITÁLIS TECHNIKA 7 Előadó: r. Oniga István Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók S tárolók JK tárolók T és típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók

Részletesebben