Programovatelné obvody, trendy, projekty FEL

Transkript

Programovatelné obvody, trendy, projekty FEL
Programovatelné obvody, trendy, projekty FEL
Fakulta elektrotechnická
Západočeská univerzita v Plzni
www.fel.zcu.cz
Martin Poupa
Katedra aplikované elektroniky a telekomunikací
Obsah
Výrobci a architektury prog. log. obvodů
Programovací a simulační jazyky
Návrh prog. log. obvodů
Softwarové procesory v obvodech FPGA
Hardwarové procesory v obvodech FPGA
Projekty na FEL s obvody FPGA
Martin Poupa, KAE FEL ZČU
2
Výrobci PLD obvodů
založena 1983
1984 první EPLD
Obrat $1954 M/rok
založena 1984
1985 první FPGA
1988 první CPLD
Obrat $2369 M/rok
Pět největších výrobců:
Lattice
Semiconduct
or
6%
Microsemi
(Actel)
4%
QuickLogic
1%
Altera
40%
Xilinx
49%
Podíl na trhu v roce 2010 podle obratu
Martin Poupa, KAE FEL ZČU
3
Architektury PLD obvodů (SPLD,CPLD)
• SPLD (Simple PLD), EPLD
– obvody řady GAL, ispGAL, aj.
– nízký počet hradel
– nízký počet klopných obvodů
– E2PROM, některé ISP prog.
• CPLD (Complex PLD)
– Altera: MAX3000, MAX7000
– Lattice: ispMACH, ispLSI, ispXPLD
– Xilinx: XC9500, CoolRunner
– 600 – 12k hradel (Altera, Xilinx)
– 600 - 300k hradel, 512 kbit SRAM (Lattice)
– ISP programování: IEEE Std 1149.1 nebo IEEE Std 1532
– Napájecí napětí 5V; 3,3V; 2.5V; 1.8V; 1.5V; 1.2V
– E2PROM, většina dnes Flash
Martin Poupa, KAE FEL ZČU
4
Architektury CPLD obvodů
Architektury CPLD obvodů se skládají z:
Velkého centrálního propojovacího pole
Funkčních bloků skládajících se z:
logický
blok
GND
VCCIO
I/O blok
výstupní
propojovací
pole
TMS
TCK
GND
VCC
TDI
TDO
..
.
..
.
I/O blok
logický
blok
logický
blok
výstupní
propojovací
pole
..
.
výstupní
propojovací
pole
..
.
logický
blok
velké centrální propojovací pole
GCLK
výstupní
propojovací
pole
GND
VCCIO
Výstupního propojovacího pole
Vstupních/výstupních bloků
I/O blok
•
•
Matice mnoha vstupových AND hradel
Několika makrobuněk (většinou 8)
GSR
GOE
•
•
I/O blok
•
•
Martin Poupa, KAE FEL ZČU
5
CPLD obvody (parametry, vlastnosti)
Parametry a vlastnosti současných CPLD obvodů:
•
•
•
•
Velikost 32 až 1024 makrobuněk (cca 300.000 ekviv. hradel)
Garantovaný počet programovacích cyklů: 1.000 až 10.000
Garantované udržení konfiguračních dat: 20 let
ISP (In System Programmable) – obvody lze programovat osazené na desce
-
•
•
•
•
•
•
JTAG - IEEE Standard Test Access Port and Boundary-Scan Architecture (IEEE Std 1149.1)
IEEE Standard for In-System Configuration of Programmable Devices (IEEE Std 1532)
Pouzdra PLCC, xQFP, BGA
Většina obvodů má min. dvojí napájecí napětí (pro jádro a pro I/O)
Napájecí napětí 5V; 3.3V; 2.5V; 1.8; 1.5V; 1.2V (záleží na výrobci a řadě obvodu)
Podpora mnoha napěťových I/O SE standardů (LVTTL, LVCMOS, PCI, SSTL, HSTL, ...)
Podpora mnoha napěťových I/O diff. standardů (SSTL, HSTL, LVDS, RSDS, LVPECL, ...)
Některé nové řady obvodů označovaných výrobci jako CPLD NEJSOU CPLD obvody, ale
FPGA obvody s konfigurační pamětí na čipu (např. Altera - MAX II, MAX V; Lattice
Semiconductor - Mach XO)
Martin Poupa, KAE FEL ZČU
6
Architektury FPGA obvodů
VCCIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
VCCPLL
GND
CLKIN
VCCIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
VCCIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
VCCIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O blok
PLL
PLL
VCCIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
VCCIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
VCCIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
VCC
GND
VCCIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
TCK
TDI
TDO
TMS
TRST
VCC
GND
VCCIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
VCC
GND
VCCIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
RAM
násobička
CLKIN
GND
VCCPLL
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
GND
VCCIO
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
GND
VCCIO
PLL
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
GND
VCCIO
PLL
CLKIN
GND
VCCPLL
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
GND
VCCIO
• bloky LUT/ALUT
• propojení lok. / vert. / horiz.
• I/O bloky
• bloky PLL/fPLL
• bloky RAM
• bloky násobiček/DSP
• bloky XCVR/PCIe
VCCPLL
GND
CLKIN
Field Programmable Gate Array
logický blok
logický prvek
lokální propojovací pole
horizontální a vertikální propojení
RAM
Martin Poupa, KAE FEL ZČU
7
Architektury FPGA obvodů – logický element
vstup
přenosu
z předchozího
logického prvku
LUT
logika
přenosu
vstupy
do horizontálních
propojení
D
Q
EN
CLK
SR
do vertikálních
propojení
do lokálního
propojení
výstup
přenosu
en
clk
sr
do dalšího
logického prvku
synchronní /
asynchronní řízení
klopného obvodu
Martin Poupa, KAE FEL ZČU
8
Vlastnosti obvodů FPGA
Řady:
Altera:
•
•
•
Lattice:
•
Xilinx:
•
•
•
•
•
Cyclone/II/III/IV/V (3k – 301k LUT, 6kbit – 12Mbit RAM)
Arria/II/V (21k – 503k LUT, 1.2Mbit – 24Mbit RAM)
Stratix/II/III/IV/V(16k – 952k LUT, 425kbit – 52Mbit RAM)
ORCA, ispXPGA, XP/2, EC, ECP/2/3 (2k – 150k LUT, 90kbit – 6,8Mbit RAM)
Spartan/XL/II/IIE/3/3E/3L/3A/3AN/6 (1k – 150k LUT, 3kbit – 4,8Mbit RAM)
Virtex/E/II/II-Pro/4/5/6 (3k – 760k LUT, 32kbit – 38Mbit RAM)
Artix-7 (101k - 215 k LUT, 4.8Mbit – 13Mbit RAM)
Kintex-7 (65k - 480 k LUT, 4.8Mbit – 34Mbit RAM)
Virtex7 (326k – 2M LUT, 4.3Mbit – 68Mbit RAM)
Vlastnosti:
•
Technologie SRAM (3,3V; 2,5V; 1,5V; 1,2V; 1,1V; 1V; 0,9V; 0,85V)
•
ISP programování: IEEE Std 1149.1 nebo IEEE Std 1532
•
SRAM => nutnost naprogramovaní po zapnutí napájení
•
Rychlé konfigurovatelné paměti (jedno, dvou bránové, fifo, …)
•
Podpora pro aritmetické operace (rychlé přenosy, hw násobičky, DSP bloky)
•
Podpora mnoha napěťových I/O SE standardů (LVTTL, LVCMOS, PCI, SSTL, HSTL, ...)
•
Podpora mnoha napěťových I/O diff. standardů (SSTL, HSTL, LVDS, RSDS, LVPECL, ...)
•
Fázové závěsy, sync. RAM, SERDES, XCVR, řadiče sync. DRAM, A/D převodníky
•
Nové řady mají podporu pro šifrování bitstreamu
Martin Poupa, KAE FEL ZČU
9
Programovací/simulační jazyky pro návrh PLD
Hardware Description Language (HDL):
• Firemní jazyky: např. ABEL, AHDL
• VHDL - IEEE Std 1076 (1987, 1993, 2000, 2002, 2008)
• Verilog HDL - IEEE Std 1364 (1995, 2001, 2005)
• SystemVerilog HDL - IEEE Std 1800 (2005, 2009, 2012?)
Jazyky založené na jazyku C:
• Firemní jazyky: Handel-C, Impulse C
• SystemC - IEEE Std 1666 (2011)
• OpenCL - Open Computing Language
• Verifikace: URM+AVM > OVM+VMM > UVM
Vlastnosti HDL jazyků:
• Jazyk vysoké úrovně pro popis, simulaci, a syntézu číslicových obvodů a
systémů
• datové typy, funkce, procedury, práce se soubory, přetížené operátory
• Tři druhy popisu: chování, datové toky, strukturální
• Signály mohou nabývat více hodnot:
• Např. u VHDL-93: 9-úrovňová logika MVL9V (IEEE Std 1164)
• Hodnoty: 0, 1, Z, X, U, W, L, H, –
Martin Poupa, KAE FEL ZČU
10
Popis pomocí VHDL
library ieee;
use ieee.std_logic_1164.all
all;
all
entity dff is
port (
clk : in std_
std_logic;
logic
r : in std_
std_logic;
logic
d : in std_
std_logic;
logic
q : out std_
std_logic
);
end dff;
architecture rtl of dff is
begin
process (clk, r)
begin
if r = '1' then
q <= '0';
elsif rising_edge(clk) then
q <= d;
end if;
if
end process;
process
end rtl;
Martin Poupa, KAE FEL ZČU
11
Typické použití programovacích/simulačních jazyků
Běžné návrhy číslicových systémů:
•
•
RTL návrh a testbenche: VHDL, Verilog, SystemVerilog
Verifikace: System Verilog a UVM
Velké systémy (SoC):
•
•
Virtuální prototypy: C++, System C, TLM-2.0
High Level syntéza: C/C++, System C, Open CL
Martin Poupa, KAE FEL ZČU
12
Klasický postup návrhu PLD obvodů
specifikace zadání
systémová analýza
rozdělení do bloků
popis jednotlivých
bloků RTL popisem
tvorba testovacího
prostředí (testbench)
funkční RTL
simulace
syntéza RTL kódu
simulace po syntéze
rozmístění a
propojení
simulace na úrovni
hradel
časová simulace
konfigurování obvodu
Martin Poupa, KAE FEL ZČU
13
Softwarové procesory v obvodech FPGA
Jedná se o klasické CPU (RISC nebo CISC) realizované v obvodech FPGA.
Výhody SW CPU oproti CPU realizovaným jako ASIC:
–
–
–
Flexibilita: CPU lze přizpůsobit dle konkrétních požadavků včetně periférií a paměti
Snížení ceny: díky realizaci celého mikroprocesorového systému jedním obvodem
Dlouhý životní cyklus: v případě že ukončení výroby obvodu, lze SW procesor poměrně snadno
realizovat v novějším obvodu bez změny funkčnosti mikroprocesorového systému => žádné
změny již např. certifikovného software
Vybrané SW procesory:
–
–
–
–
–
–
–
Altera NIOS II
Lattice Micro32
Xilinx Microblaze
ARM Cortex M-1, M-3
Freescale V1 ColdFire
Gaisler Research Leon 2, 3, 4
MIPS MP32
Martin Poupa, KAE FEL ZČU
14
Nios II/e
DMIPS/MHz
0,15
Max DMIPS
28
Fmax MHz
175
Velikost LE
980
Max DMIPS
48
Fmax MHz
340
Velikost ALUT 520
Nios II/s
0,64
77
120
1600
140
230
800
Nios II/f
1,13
170 (CIV)
150 (CIV)
2100 (CIV)
340 (SIII)
290 (SIII)
1020 (SIII)
SRAM
FLASH
CPU
IRQ
RISC architektura s pipeline
32-Bit instrukce/data
NIOS/f/s 1 clk/i, NIOS/e 6 clk/i
32 registrů, 32/64 IRQ, 2GB adresový prostor
Až 256 uživatelských instrukcí
Hardwarový debuging přes JTAG
PBM
SW CPU Altera NIOS II
Timer
Sériový
port
UART
DSP
20k hradel
volných
Cyclone EP1C3
400k hradel
volných
Cyclone EP1C20
Martin Poupa, KAE FEL ZČU
15
SW CPU Altera NIOS II
Základní prvky SOPC/QSYS:
• Procesory: NIOS II / f / e / s
• PIO, DMA, SGDMA, Timer, UART
• Sběrnice Avalon, AXI, AHB
• OnChip RAM/ROM/FIFO
• Externí SRAM, Flash, SSRAM
• SDR, DDR/2/3, QDR, RLDRAM
• SPI, IIC, Tristate Bridge, PLL
Operační systémy:
Další IP:
• CAN 2.0
• USB 1.1 a 2.0
• PCI Bridge
• PCI Target
• aj, …
Celkem cca 90 periférií
FreeRTOS,
eCos, RTEMS, ...
µCLinux
Martin Poupa, KAE FEL ZČU
16
Altera Qsys NIOS II
Martin Poupa, KAE FEL ZČU
17
Návrh systému se SW CPU
Param. procesoru
Knihovna periférií
Volba periférií
Hardware
Software
Generování
Procesor + periférie
Hlavičkové soubory
(VHDL / Verilog / SV)
Uživatelské knihovny
Testbench pro simulaci
Zavaděč (bootloader)
JTAG
Syntéza,
umístění a propojení
Bit
stream
JTAG/UART
Download
& Debug
Eclipse/GNUPro
Aplikační SW
Uživatelská logika, IP jádra
Koupená IP jádra
spustitelný
kód
FPGA
(ASM, C, C++)
SW knihovny
RTOS
Martin Poupa, KAE FEL ZČU
18
Hardwarové procesory v obvodech FPGA
Použitelné architektury:
• Intel: Atom E6x5C (Intel Atom E6xx + FPGA)
• Xilinx: ZYNQ-7000 (ARM Cortex-A9MP + FPGA)
• Altera: Cyclone V / Arria V SoC (ARM Cortex-A9MP + FPGA)
Programovací jazyky:
• VHDL - IEEE Std. 1076
• Verilog - IEEE Std. 1364
• SystemVerilog – IEEE Std. 1800
• C, C++, ASM
Výkon procesoru: cca 2.5 DMIPS/MHz
• ARM Cortex-A9MP @ 800 MHz ~ 4000 DMIPS
• Intel Atom N450 @ 1.6 GHz ~ 4000 DMIPS
Martin Poupa, KAE FEL ZČU
19
Xilinx ZYNQ-7000 = Artix-7 / Kintex-7 + ARM Cortex-A9
Martin Poupa, KAE FEL ZČU
20
Altera SoC = Altera Cyclone V / Arria V + ARM Cortex-A9
•
•
•
•
HPS-to-FPGA: konfigurovatelné 32/64/128-bit AMBA AXI interface
FPGA-to-HPS: konfigurovatelné 32/64/128-bit AMBA AXI interface
Více portové HPS (LP)DDR2/3 a FPGA (LP)DDR2/3 kontroléry
XCVR, PCIe (5/10 Gbps)
Martin Poupa, KAE FEL ZČU
21
BTT - Blade Tip Timing
Spolupráce s FAV a Škoda Turbíny
Diganostický systém pro
nízkotlakou část trubín
Měření chvění lopatek v reálném
čase s identifikací kritických vibrací
Podpora různých typů senzorů a
typů lopatek
Obvod FPGA EP4CE115 využit
pro získávání dat ze senzorů (až
32+1 senzor), předzpracování dat
(detekce lopatek, časové značky,
měření diferencí) a přenos
získaných dat do systému
provádějícího výpočet chvění a
identifikaci kritických vibrací
Martin Poupa, KAE FEL ZČU
22
FRAM kontrolér s PCIe interfejsem
Spolupráce s Kontron (Plzeň, Eching)
Zakázkový průmyslový ComExpress baseboard pro COMe moduly typu 2 a 6
FPGA Altera Cyclone IV GX (EP4CGX15BF14I7, F169 FBGA)
FRAM Ramtron FM28V100
Integrovaný programátor konf. paměti (pgm. při výrobě / upgrade FW u zákazníka)
IP FRAM řadič s PCIe x1 interfejsem
IP GPIO s IRQ s LPC bus SERIRQ interfejsem
Martin Poupa, KAE FEL ZČU
23
COM Express FPGA Starter Kit
Spolupráce s Kontron (Plzeň, Deggendorf, Eching)
ATX COM Express s Altera C4GX150
Podpora COMe modulů typu 1, 10 a 2
Systémový kontrolér - Altera MAX II (EPM570)
Real Time Ethernet demo – PROFINET IO
ADAO
ETX-e-SC (Huron River/Sandy Bridge), Type 2 module
RTS Real-Time Embedded Hypervisor
Windows 7
CoDeSys Application
CoDeSys HMI Application
Virt. Eth.
CoDeSys Runtime
200 pin SODIMM
CoDeSys IO Drv1
CoDeSys HMI
CoDeSys IO Drv2
Softing PNIO Controller Access Kit
Avalon
Avalon
PIO
Altera HSMC Mass Storage and Video Card
Camera Link In
Video
Processing IP
Altera HSMC Communication Card
NIOS II, eCos
PIO
DVI Out
IRQ
Softing PNIO
Controller Stack
IRQ
Switch
IP Core
Sensors
DC Motor
MII to
RMII
RMII
1 x Ethernet
Marvell 88E1111
CameraLink
LPC to
Avalon IP
PCIe
Hard IP
HSMC 1
DPRAM
128 kB
IRQ
DDR2 IP
CCD cam.
Altera Cyclone IV GX 150
LVDS Video
DVI-D
LPC
LCD mon.
PCIe
HSMC 2
128MB DDR2
Security
EEPROM
VxWorks 6.9
PROFINET IO
PROFINET IO Device Siemens SIMATIC ET200S, 8DI + 8DO
Martin Poupa, KAE FEL ZČU
24
Děkuji za pozornost
Doc. Ing. Martin Poupa, Ph.D.
Katedra aplikované elektroniky a telekomunikací
Fakulta elektrotechnická
Západočeská univerzita v Plzni
Univerzitní 22
306 14, Plzeň
[email protected]

Podobné dokumenty

altera

altera EPM3264A a family MAX3000. Nyní jedna poznámka. Při návrhu pomocí grafického či textového editoru jsme nejprve pomocí File a Save na zvoleného adresáře uložili náš základní soubor, např. pokus1.gdf...

Více

karel_pavlovsky_predavani_parametru

karel_pavlovsky_predavani_parametru Na úrovni jednotlivých povelů v CL a RPG jazycích se mohou používat různé základní metody předávání, dále upřesňované pomocí klíčových slov. Pro správnou funkci programů je v každém případě třeba, ...

Více

sborník

sborník vyhovují parametrům Kodexu PS (přenosové soustavy), Vřesová však i při svém poměrně malém výkonu poskytuje mnohem více podpůrných služeb s lepšími dynamickými vlastnostmi z hlediska potřeb ES. V zá...

Více

Manuál - PK Design

Manuál - PK Design Přenosová rychlost až 1MByte/s (D2xx ovladač), až 3MBaud/s (VCP ovladač). Jednoduché připojení k MCU, FPGA, CPLD apod. 384 byte FIFO vysílací buffer, 128 byte FIFO přijímací buffer. Kompatibilní s ...

Více

Manuál - PK Design

Manuál - PK Design USB VID, PID, sériové číslo a popis produktu je uloženo v interní EEPROM paměti. Pro většinu aplikací stačí propojit 3 signály k mikrokontroleru – RxD, TxD a GND. Umožňuje napájení připojeného hard...

Více