Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-SOC: 9 SYSTÉMOVÝ NÁVRH, IP-CORES doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii ČVUT v Praze Hana Kubátová MI-SoC 2011/12 1
ÚVOD Systémový návrh IP-cores: Power PC MicroBlaze PicoBlaze 2
SYSTÉMOVÝ NÁVRH hardware (algoritmus) popis na systémové úrovni dekompozice komunikace software modelování odhady verifikace behaviorální syntéza RTL kosimulace kosimulace překlad software 3
RT TOS SYSTÉM NA ČIPU (SOC) PLL paměť proceso r standardní buňky paměť DSP (IP) Viterbi (IP) SERDES (IP) desítky makrobloků (IP) specializované procesory signálové bloky (násobičky) programovatelné části aritmetika SERDES vestavěné FPGA analog 4
PŘÍSTUPY K SOC ASIC/FPGA, výběr vhodných makrobloků včetně procesoru (-ů) ASIC, syntetizovaný procesor ASIC, procesorově centrický (procesor, paměť, akcelerátory) FPGA s připravenými bloky kritickými pro výkon (procesory, násobičky, SERDES) Platforma: standardní čip pro aplikační oblast, programování: procesory + parametrizace bloků + FPGA 5
KOMUNIKACE V SOC Poměr doby šíření a času na 1 bit není zanedbatelný latence není zanedbatelná komunikace stojí čas a příkon vyplatí se vůbec data přesouvat např. do akcelerátoru? sběrnice (např. AMBA), hvězdicové struktury, sítě na čipu syntéza komunikačních obvodů (rozhraní) syntéza ovladačů pro RTOS 6
DEKOMPOZICE Řízena odhady Při omezeném stupni volnosti odhady fungují lépe (např. pevná architektura) Spustitelný model, měření času Srovnání alternativ (průzkum prostoru řešení) 7
MODELY Modely bez časování (untimed) verifikace profilování (měření času výpočtu jednotlivých procedur) Modely na úrovni transakcí (Transaction- Level Models, TLM) pracují s abstraktní komunikací mezi moduly Modely přesné na cyklus sběrnice (Bus Cycle Accurate, BCA) zohledňují vlastnosti daného procesoru zohledňují nároky daného komunikačního prostředku 8
SYSTEMC knihovna C++ vestavěné jádro simulátoru RTL nebo behaviorální sémantika class port port A port B class adder class module port Y postupné zjemňování modelu class signal eval() 9
SIMULACE V SYSTEMC R1 register Q module R2 register Q module ina signal inb signal ALU1 adder Y A B module // deklarace objektu main () { start_simulation(); } R0 outy register signal D module 10
SYSTEMC 2 SystemC v1 module port signal změna signálu SystemC v2 module port channel + interface event 11
SYSTEMVERILOG Verilog řídící a datové struktury entita port signál interface synchronizační primitiva proces proměnná přiřazení třída dědičnost řízení procesů aserce převzaté z verifikačního jazyka OpenVera 12
BEHAVIORÁLNÍ SYNTÉZA V PRAXI Samostatný návrh hardware: zpravidla známo podstatně více než algoritmus Problémy s kvalitou: nutné podstatně přesnější odhady časování (Behavioral Compiler), jejich doplnění k existujícím blokům vyžaduje další nástroje (DesignWare Developer) a úsilí Automatické optimalizace na behaviorální úrovni Behaviorální syntéza cennou součástí prozkoumávání návrhového prostoru 13
SPECIFIKACE PRO SYNTÉZU Oddělit specifikaci funkce od časování Explicitní paralelismus SystemC, SystemVerilog, HandelC Automatická paralelizace C, C++, MATLAB/SIMULINK 14
IP-CORES POWERPC 440 EMBEDDED PROCESSOR BLOCK DIAGRAM (VIRTEX 5 FXT) IF & DE 3-stage with branch unit Hana Kubátová MI-SoC 2011/1 Issues 2 instructions per cycle 3 independent 4-stage
Hana Kubátová MI-SoC 2011/12 POWER PC FPGA CORE 16
MICROBLAZE Microblaze v8.10 (EDK 13.1) 32-bit RISC CPU, up to 240 MHz (Virtex-6), 32x32-bit general purpose registers 3 (area optimized) / 5 (performance optimized) - stage pipeline Many options: Cache MMU HW barrel shifter, divider, debugging Floating Point Unit Exceptions BUS: AXI4 (Advanced extensible Interface) MicroBlaze is little endian PLB (Processor Local Bus) MicroBlaze is big endian 17
MICROBLAZE V8.10 BLOCK DIAGRAM AXI AXI4-Lite or AXI4 interface AXIS AXI4-Stream interface PLB Processor Local Bus LMB Local Memory Bus (BRAM) XCL Xilinx CacheLink interface (FSL Direct) FSL Fast Simplex Link interface MFSL Master DWFSL Master direct (without FIFO) 18 SFSL Slave DRFSL Slave direct (without FIFO
Hana Kubátová MI-SoC 2011/12 PICOBLAZE BLOCK DIAGRAM 19