HDL tervezés Gábor Bata FPGA Developer Microwave Networks Ericsson Hungary Ltd. gabor.bata@ericsson.com
HDL tervezés A HDL gondolkodásmód Órajeltartományok Reset az FPGA-ban Példák a helyes tervezési-kódolási gyakorlatból HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 2 (42)
A HDL gondolkodásmód A hardverleíró nyelvek kialakulása, tulajdonságai HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 3 (42)
A HDL gondolkodásmód A hardverleíró nyelvek kialakulása, tulajdonságai module my_first_circuit; title 'ee200 assignment 1' EE200XY device 'XC4003E'; " input pins A, B pin 3, 5; " output pins SUM, Carry_out pin 15, 18 istype 'com'; equations SUM = (A &!B) # (!A & B) ; Carry_out = A & B; end my_first_circuit; HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 4 (42)
A HDL gondolkodásmód Nyelvi eszközök vs. grafikus módszerek Személyes preferencia! Mentor HDL Designer NI LabView HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 5 (42)
Órajeltartományok Clock-Domain Crossing CDC HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 6 (42)
Órajeltartományok A probléma: időzítési előírásokat sért! Metastabilitáshoz vezet HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 7 (42)
Órajeltartományok A probléma: időzítési előírásokat sért! Metastabilitáshoz vezet HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 8 (42)
Órajeltartományok HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 9 (42)
Órajeltartományok HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 10 (42)
Órajeltartományok MTBF példa 0.25 m CMOS technológia Órajel 100 MHz A jel kapcsolási sebessége 1 MHz Egyetlen FlipFloppal Kétszintű szinkronizálóra MTBF=21 nap MTBF=134 millió év HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 11 (42)
Órajeltartományok Hibás viselkedések Pulzus elvész, pulzus hossza megváltozik Inkonzisztens értékek különböző felhasználási pontokon Időben összetartozó értékek koherenciája sérül HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 12 (42)
Órajeltartományok Hibás viselkedések HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 13 (42)
Órajeltartományok Hibás viselkedések HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 14 (42)
Órajeltartományok Egyszerű szinkronizáló egybites jelre HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 15 (42)
Órajeltartományok Általános esetben nagyon nehéz a szinkronizálás Speciális tulajdonságok kihasználhatók HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 16 (42)
Órajeltartományok Busz szinkronizálása Gray kóddal HIBÁS! HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 17 (42)
Órajeltartományok Busz szinkronizálása Gray kóddal Helyes HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 18 (42)
Órajeltartományok Busz szinkronizálása ismert paraméterek esetén HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 19 (42)
Órajeltartományok Handshake szinkronizáló általános esetre HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 20 (42)
Órajeltartományok Szinkronizálás FIFO/DPRAM használatával HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 21 (42)
Órajeltartományok Szinkronizálás FIFO/DPRAM használatával HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 22 (42)
Órajeltartományok CDC verifikáció SpyGlass Mentor Questa CDC Gyártóspecifikus szoftverek HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 23 (42)
Reset az FPGA-ban HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 24 (42)
Reset az FPGA-ban HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 25 (42)
Reset az FPGA-ban A reset funkciója A rendszer ismert állapotba való kényszerítése Ebből az állapotból való indítás HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 26 (42)
Reset az FPGA-ban A resettel kapcsolatos megfontolások A resetre ne a hibakezelés elsődleges módjaként tekintsünk! Ha resetet használunk, nem annak meghúzása, hanem elengedése számít! A reset a chip belsejében időzítési szempontból kritikus, nagyon magas fanouttal rendelkező jel, mely a chip különböző, távoli pontjaira juttatandó el. A rendszer, illetve a külvilág szempontjából valójában laza időzítési követelmények állnak csak fenn. HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 27 (42)
Reset az FPGA-ban A reset terjedése HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 28 (42)
Reset az FPGA-ban A reset terjedése HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 29 (42)
Reset az FPGA-ban A reset szinkronizálása Reset from asynchronous source D Q D Q Reset synchronized to the clock-domain Clock Egyszerű metastabilitás-gátló szinkronizáló. A külvilágból érkező jeleket általában ugyanígy kezeljük. Szinkron meghúzást (késleltetést), szinkron elengedést biztosít. HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 30 (42)
Reset az FPGA-ban A reset szinkronizálása Reset from asynchronous source 0 D PRE Q D PRE Q Reset synchronized to the clock-domain Clock Tipikus reset szinkronizáló aszinkron beállítóbemenetű FlipFlopokkal. Aszinkron (azonnali) meghúzást és szinkron elengedést tesz lehetővé. Induláskor (külső reset jel nélkül) is működik, a FF konfiguráció során való inicializálásával. HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 31 (42)
Reset az FPGA-ban A reset szinkronizálása HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 32 (42)
Reset az FPGA-ban A reset szinkronizálása Reset from asynchronous source 0 D PRE Q 0 D PRE Q D PRE Q Reset synchronized to the clock-domain Clock Túl rövid (vagy ismeretlen) pulzus esetére HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 33 (42)
Reset az FPGA-ban Reset szekvenciák Clock of clock-domain 1 Reset for clock-domain 1 Clock of clock-domain 2 Reset for clock-domain 2 Clock of clock-domain 3 Reset for clock-domain 3 Reset from asynchronous source Reset synchronizer Reset timer to next domain Reset synchronizer Reset timer to next domain Reset synchronizer Órajeltartományokat egyszerre indítani általában nem lehet. Szekvenciákat célszerű definiálni, tartományhatárokon újraszinkronizálni. HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 34 (42)
Reset az FPGA-ban Globális vs. lokális reset Globális reset hátrányai Huzalozási erőforrások intenzív használata Nagyobb huzalozási idő, kisebb elérhető sebesség Logikai erőforrások intenzív használata (dedikált reset bemenetek) Megnövekedett erőforrás-igény P&R nehezebb Néhány speciális logikai elem használatát ellehetetleníti HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 35 (42)
Reset az FPGA-ban Globális vs. lokális reset Lokális reset Csak ott, ahol tényleg szükséges A rendszer inicializálását a konfiguráció biztosítja legjobban (Xilinx WP272) HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 36 (42)
Példák a helyes tervezési gyakorlatból Mottó: Nem tervezünk, csak csináljuk (Darvas Péter) Mielőtt kódolnánk: Blokkvázlat, dekompozíció, hierarchia, A szükséges jelek, regiszterek azonosítása. Jel: jelzés, információt szeretnénk átvinni valahová. Tároló, regiszter: információt tárolunk későbbi felhasználásra. Elnevezések körültekintő meghatározása. HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 37 (42)
Példák a helyes tervezési gyakorlatból Az órajel kapuzása FPGA-ban nem javasolt, rontja az időzítéseket (alacsony f max ) Helyette: engedélyezőjel HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 38 (42)
Példák a helyes tervezési gyakorlatból Belső jelek órajelként való használata FPGA-ban nem javasolt, rontja az időzítéseket (alacsony f max ) Helyette: engedélyezőjel HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 39 (42)
Példák a helyes tervezési gyakorlatból Latch használata FPGA-ban nem javasolt, rontja az időzítéseket (alacsony f max ) Helyette: élvezérelt FlipFlop HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 40 (42)
Példák a helyes tervezési gyakorlatból Háromállapotú jelek Az FPGA belsejében nincsenek háromállapotú jelek, azokat a lábakhoz kapcsolódó meghajtók állítják elő. Az enegedélyezőjelet közvetlenül regiszterkimenetről szabad csak hajtani a glitch-ek elkerülése végett. A hierarchiában célszerű a logikától elkülönítve kezelni ezeket a buffereket. HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 41 (42)
Példák a helyes tervezési gyakorlatból Pipeline-osítás Fanout csökkentés Nevezési konvenciók, kódolási szabályok HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 42 (42)
Bónusz Computers from the Inside Out Richard Feynman https://www.youtube.com/watch?v=ekwggdxe5ma Flashing LEDs - Z80 Style Julian Ilett https://www.youtube.com/watch?v=azb4nlxx1am HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 43 (42)
További Olvasnivalók Xilinx Xapp094 Metastable Recovery in Virtex-II Pro FPGAs Altera WP-01082 Understanding Metastability in FPGAs Intel FPGA WP-01222 Understanding Peak Floating-Point Performance Claims Mentor Graphics Avoiding Metastability in FPGA Devices MAPLD 2009 HDL tervezés Ericsson Internal Ericsson AB 2017 2017-04-26 Page 44 (42)