1 ‐ Laboratóriumi gyakorlat A gyakorlat célja: • megismerkedni a félév során használandó fejlesztoeszközökkel • megszerezni a szükséges készségeket a további gyakorlatokhoz • elemi jártasságot szerezni a Verilog nyelv használatában
Bevezető az ISE rendszer Bevezető az ISE rendszer használatához
Fejlesztő rendszerek Fejlesztő rendszerek •
Terv leírás: (Design Entry) – Xilinx Foundation ISE – Külső eszköz • Mentor Graphics: FPGA Advantage • Celoxica: DK Design Suite
•
Szintézis terv: (Design Synthesis) – – – –
•
XST: Xilinx Synthesis XST: Xilinx Synthesis Technology Mentor: Leonardo Spectrum Synplicity: Synplify Pro Celoxica: DK Design Suite Celoxica: DK Design Suite
Szimuláció: – Mentor: Modelsim – Aldec: Active‐HDL – Celoxica: DK Design Suite
•
I Circuit In Ci it verifikáció: ifiká ió – Xilinx: ChipScope
Az ISE rendszer részei Az ISE rendszer részei • Xilinx ISE - Integrated Software Environment – integrált szoftverkörnyezet – a Xilinx cégg FPGA-ihoz és CPLD-ihez kifejlesztett j szoftver.
• ISE WebPack - ISE rendszer egyszerűbb, de funkcionálisan komplett változata – csak a Xilinx cég IC-ivel való implementálást támogatja , – nem támogatja az összes család összes IC-jét, hanem tipikusan csak a kisebb komplexitásúakat, komplexitásúakat – ingyenes szoftver, szabadon letölthető.
Fejlesztés folyamata Fejlesztés folyamata • Project Navigator szoftver, szoftver az ISE keretprogram – Rendszertervezés – (Terv leírás + tervezési megkötések – constraints) – RTL szimuláció - Tesztkörnyezet ( Testbench ) – Szintézis – Implementáció: I l tá ió TRANSLATE →MAP MAP →PAR PAR ((place l & route) – Statikus időzítési analizis: timingg pparameters meghatározása (max clock frequency, propagation delays etc.) – Bitstream generálása és letöltése (konfigurációs file - .bit) bit)
Terv leírás Terv leírás – A tervező az elképzeléseit, elképzeléseit terveit háromféle formában viheti be a rendszerbe. • Kapcsolási rajz (Schematic) formájában, formájában a Xilinx ECS (Engineering Capture System), a kapcsolási rajz készítő és beviteli program segítségével. • Hardver leíró nyelven. Ezt a bevitelt a HDL editor rész támogatja. A támogatott nyelvek: ABELHDL, Verilog és VHDL. A rendszer sok mintaleírást is tartalmaz, úgynevezett gy sablonok ((template) p ) formájában. j • Állapotgép. Lehetőség van arra is, hogy a tervező az elképzelt sorrendi hálózat működését állapotgráf formájában adja meg. Ezt a StateCAD alrendszer segíti, segíti mellyel megrajzolható az állapotgráf, állapotgráf majd ezután a StateCAD az állapotgráfból HDL leírást is tud készíteni.
Terv verifikálása Terv verifikálása • Azt ellenőrizzük, ellenőrizzük hogy a terv szerinti áramkör működése megfelel‐e a feladat specifikációjának. • A verifikálás ifikálá szimulációval i lá ió l történik. tö té ik • A WebPACK rendszer szimulátora a Xilinx ISE Simulator. • A modellt működtetni, "gerjeszteni" kell, ‐ a modell bemeneteire megfelelően változó jeleket kell adni. Ez az tesztvektorok sorozatának ráadásával történik. • A tesztvektorokat a tervező beleírhatja a HDL leírásba, mint tesztelési környezet (testbench).
Szintézis • Xilinx Synthesis y Technology gy ((XST)) alrendszer végez, g amely ugyancsak az ISE része (szintézisre léteznek más p programok g is). • A szintézer a HDL leírásból előállít egy minimalizált és optimalizált huzalozási listát, amely az adott FPGA primitíveket (LUT, FF), és a köztük levő kapcsolatokat tartalmazza.
Implementáció TRANSLATE → MAP →PAR (place TRANSLATE → MAP →PAR (place & route) & route) • TRANSLATE: több, esetleg eltérő nyelven megírt t tervezői ői file fil (HDL) összerendelése ö d lé (merge) ( ) egyetlen tl netlist‐ fájlba (EDIF) • MAP = technology mapping: leképzés az adott FPGA primitív‐készletére (a kapukat CLB‐é, ill. IOB‐á „képezi le”) • PAR: a végleges „fizikai” áramkört hozza létre amelyben a primitíveket fizikai helyekre rak és kialakítja a fizikai huzalozást (routing).
Konfigurálás fg • Bitstream ‐ konfigurációs file (.bit) – generálása álá – letöltése – soros interfészen keresztül (JTAG) • IMPACT program végzi
Xilinx ISE bemutatása
Sources window (források)
Munka ablak (editor)
Process window (feldolgozások )
Console (üzenet ablak) l (ü bl k)
A project létrehozása • A fejlesztőkörnyezet elindítása: Start -> Programs\Xilinx ISE Design • • •
Suite 12.3\ISE Design Tools\Project Navigator. Új projekt (File→New Project) - minden projektnek külön könyvtárat hoz létre, Projektünk neve legyen „elso_rajz” (javaslat), L Legmagasabb bb szintű i tű forrásként f á ké t kapcsolási k lá i rajz j alapú l ú ((schematic) h ti ) títípustt adjunk dj k meg!!
FPGA tulajdonságainak beállítása • A Next gombra kattintás után megjelenő Device Properties mezőben a Value oszlop legördülő listáiból válassza az alábbi értékeket: – – – – – –
Device Family: Spartan3E Device: xc3s100E Package: CP132 Package: CP132 Speed Grade: ‐4 Synthesis Tool: XST (VHDL/Verilog) y ( / g) Simulator: ISim (VHDL/Verilog)
• A Next, majd Finish gombra kattintva elkészül az üres project.
Új forrás hozzáadása • Hozzunk létre forrás fájlt (Project→New Source...)! p , g _ p • A forrásunk típusa schematic, a neve logikai_kapuk! • Amennyiben nem történt meg automatikusan, adjuk hozzá a forrás fájlt a projektünkhöz (Project→Add Source...)
Kapcsolási rajz alapú projekt
Kapcsolási rajz szerkesztő ablak
A feladat • Logikai kapuk implementációja
A parancsok illetve parancsikonok
Nevezzük el a különböző busz busz‐elnevezéseket elnevezéseket és az I/O markereket! • Vezeték, busz elnevezése: Add Net Name (a bal alsó ablakban az Options fülnél a Name sorba írjuk a nevet, majd kattintsunk az elnevezni kívánt vezetékre. Az esztétikus kivitelezésre törekedve ügyeljünk, gy j , hogy gy a vezeték elégg hosszú legyen gy a felirat elhelyezéséhez!).5 • I/O marker elnevezése: dupla kattintás az I/O markeren, a felugró ablakban Name mező átírása.
Constraints file • A láb‐hozzárendelések elvégzéséhez egy constraint fájlt adunk a projecthez. • Válasszuk ki a Project / New Source menüpontot, a felbukkanó ablakban pedig Válasszuk ki a Project / New Source menüpontot a felbukkanó ablakban pedig álljunk az Implementation Constraint File‐ra, névnek pedig válasszuk a elso‐t. • Next/Finish gomb megnyomása után a Sources ablakban meg is jelenik a elso.ucf fájl. fájl • Ha sikeresen lelestük a panelről a használt lábak nevét, az alábbihoz egészen hasonlatos ucf filet kapunk NET "btn0" LOC = „G12" ; NET "btn1" LOC = „C11" ; NET "led0" LOC = „M5" ; NET "led1" LOC = „M11" ; NET "led2" LOC = „P7" ; NET "l d3" LOC P6" NET "led3" LOC = „P6" ; NET "led4" LOC = „N5" ; NET "led5" LOC = „N4" ; NET "led6" LOC P4" NET "led6" LOC = „P4" ;
A terv implementációja • A A terv leképzése az FPGA struktúrára t l ké é FPGA t ktú á (Implement Design), – View →implementation View →implementation – Hierarchy ablak → a top level fájl – Processes ablak → Implement Design
• Konfigurációs bitminta létrehozása
Az FPGA konfigurálása • Tényleges realizálás az FPGA konfigurálásával y g g (beprogramozásával), az előző műveletben létrehozott .bit konfigurációs fájlnak az FPGA‐ba való letöltésével történik. • Digilent Nexys 2 kártya: •
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,789&Prod=NEXYS2
Digilent Adept Suite •
https://www digilentinc com/Products/Detail cfm?NavPath=2 66 828&Prod=ADEPT2 https://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,828&Prod=ADEPT2
• Nexys 2 reference manual http://www.digilentinc.com/Data/Products/NEXYS2/Nexys2_rm.pdf
Digilent Nexys 2 • Xilinx Spartan-3E FPGA, 500K or 1200K gate • USB2 port providing board power, device configuration, and high-speed data transfers • Works with ISE/Webpack and EDK •16MB fast Micron PSDRAM •16MB 16MB IIntell StrataFlash S Fl h Flash Fl h R • Xilinx Platform Flash ROM • High-efficiency switching power supplies (good for battery powered applications battery-powered • 50MHz oscillator, plus a socket for a second oscillator • 75 FPGA I/O’s routed to expansion connectors (one high-speed high speed Hirose FX2 connector with 43 signals and four 2x6 Pmod connectors) • All I/O signals are ESD and short-circuit protected, ensuring g a long g operating g life in any y environment. • On-board I/O includes eight LEDs, four-digit sevensegment display, four pushbuttons, eight slide switches • Ships in a DVD case with a high-speed USB2 cable • Requires Adept 2.0 or later for operation
Digilent Adept suite • Digilent Adept is a unique and powerful solution which allows you to communicate with Di il t system Digilent t b boards d and d a wide id assortment t t off llogic i d devices. i ADEPT for Windows Adept 2 provide JTAG configuration and data transfering •Also adds board verification and I/O expansion features. • Configure Config re the Xilin Xilinx logic devices. de ices Initiali Initialize e a scan chain chain, program FPGAs FPGAs, CPLDs CPLDs, and PROMs, organize and keep track of your configuration files • Transfer data to and from the onboard FPGA on your system board. Read from and write to specified p registers. g Load a stream of data to a register g or read a stream of data from a register. • Organize and quickly connect to your communications modules. • Program Xilinx XCFS Platform Flash devices using .bit or .mcs files. • Program Xilinx CoolRunner2 CPLDs using .jed jed files files. • Program most Spartan and Virtex series FPGAs with .bit files
Digilent Adept szoftver
1 FPGA konfigurálás: .bit (generált konfigurációs fájl)
2
KÁRTYA TESZTELÉSE Start Teszt: • RAM • Flash • Kapcsolok p • Nyomógombok • LED-ek • 7 Szegmenses kijelző
Eredmények • A btn0 és btn1 nyomógombok megnyomásával alítsa elő a négy lehetséges bemeneti kombinációt és írja be a led‐ek megfelelő állapotijait • Ellenőrizze a minden logikai függvények igaság táblázatát
btn0
btn1
0
0
0
1
1
0
1
1
led0 NOT
led1 AND
led2 OR
led3 NAND
led4 NOR
led5 XOR
led6 XNOR
Új feladat • Logikai kapuk implementációja HDL nyelven
A project létrehozása • A fejlesztőkörnyezet elindítása: Start -> Programs\Xilinx ISE Design • • •
Suite 12.3\ISE Design Tools\Project Navigator. Új projekt (File→New Project) - minden projektnek külön könyvtárat hoz létre, Projektünk neve legyen „elsoHDL” (javaslat), L Legmagasabb bb szintű i tű forrásként f á ké t HDL típust tí t adjunk dj k meg!!
FPGA tulajdonságainak beállítása • A Next gombra kattintás után megjelenő Device Properties mezőben a Value oszlop legördülő listáiból válassza az alábbi értékeket: – – – – – –
Device Family: Spartan3E Device: xc3s100E Package: CP132 Package: CP132 Speed Grade: ‐4 Synthesis Tool: XST (VHDL/Verilog) y ( / g) Simulator: ISim (VHDL/Verilog)
• A Next, majd Finish gombra kattintva elkészül az üres project.
Tervezői file (HDL) hozzáadása • Hozzunk létre forrás fájlt (Project→New Source...)! p g , • A forrásunk típusa Verilog Module, a neve ElsoHDL! • Amennyiben nem történt meg automatikusan, adjuk hozzá a forrás fájlt a projektünkhöz (Project→Add Source...)
Portok megadása
Generált HDL fájl
Generált HDL fájl
Id k ül f lh Ide kerül a felhasználói kódrészlet álói kód é l t
Láb‐hozzárendelés • egy constraint fájlt adunk a projekthez. • Válasszuk ki a Project / Add Copy Válasszuk ki a Project / Add Copy of Source of Source menüpontot, a menüpontot a felbukkanó ablakban pedig keresük meg az elözö projektben használt eslo.ucf fájlt. j • OK gomb megnyomása után a Sources ablakban meg is jelenik a elso.ucf fájl.
Láb‐hozzárendelés • egy constraint fájlt adunk a projekthez.
Eredmények • A btn0 és btn1 nyomógombok megnyomásával alítsa elő a négy lehetséges bemeneti kombinációt és írja be a led‐ek megfelelő állapotijait • Ellenőrizze a minden logikai függvények igaság táblázatát
btn0
btn1
0
0
0
1
1
0
1
1
led0 NOT
led1 AND
led2 OR
led3 NAND
led4 NOR
led5 XOR
led6 XNOR
„Schematic” feladat
btn0
btn1
0
0
0
1
1
0
1
1
led0=(AB)’
led1=A’+B’
„HDL” feladat
btn0
btn1
0
0
0
1
1
0
1
1
led0=(AB)’
led1=A’+B’
Új feladat
NET „sw<0>" LOC="P11"; NET " sw <1>" LOC=„L3"; NET " sw <2>" LOC=„K3"; NET " sw <3>" LOC=„B4"; ……………
Új feladat module gates4b ( input [3:0] x , output t t and4_ d4 , output or4_ , output xor4_ ); assign and4_ = &x; assign g or4_ = ||x;; assign xor4_ = ^x; endmodule NET "x<0>" LOC=" P11 "; NET "x<1>" LOC=" L3 ";; NET "x<2>" LOC=" K3 "; NET "x<3>" LOC=" B4 "; ……………