XILINX ISE WEBPACK und DIGILENT BASYS2
Eine
kurze Einführung. Download
ISE Projektdateien auch links im Menü (ZIP)
Abteilung Elektronik an der HTL Mödling 2011/2015
Grundbegriffe
Xilinx ist eine Firma die programmierbare Digitalbausteine herstellt. Die Entwicklungsplattform heißt „ISE Webpack“ und ist frei verfügbar.
FPGA (field programmable gate array): RAM-Technologie d.h. Bei Stromausfall geht die Schaltung verloren; muß in einem Bootprozess von externem Flash (USB Stick Technologie) geladen werden.
CPLD (complex programmable device): Flash-Technologie; behält die Schaltung bei Stromausfall; Flash hat große Speicherzellen, CPLD‘s enthalten daher nur einen kleineren Speicher als FPGAs.
1 GE (gate equivivalent, Gatteräquivalent): Maßeinheit für die Komplexität einer Digitalschaltung z.B: 2-fach-Nand = 1GE, 2-fach-NOR = 1GE, Inverter = 0.5GE, RS-FF = 2GE, D-FF = 8 GE, Garagentorsteuerung: 100GE, Mikroprozessor: 1E4 bis 1E7 GE, CPLD: 1E4 GE, FPGA 1E6 GE
Software/Firmware: Firmware legt die grundlegende Verschaltung eines Systems fehst; liegt meist in einem Flash; es geht um die Belange der Hardware. Software liegt meist in einem Schreib-/Lesespeicheer und kümmert sich um die Bedürfnisse der Anwender.
VHDL Programmiersprache zur Entwicklung von Digitalschaltungen (Firmware)
FPGA
Package CP132 (132 Pin Ball Grid Array)
Standard Speed Grade -4 (Laufzeit von Eingang auf Ausgang ca. 10ns)
Baustein Spartan XC3E100S CP132 -4
Innenleben

Features
CLB
= Konfigurierbarer Logikblock (LUT Wahrheitstafel +
Flipflops)
Block Ram oder verteiltes Ram
18x18bit
Multiplizierer
DCM Digitale Clock Manager (erzeugt aus langsamen
Takten schnelle usw.)
Ausgänge auch differenziell (für höhere
Störsicherheit)
IO
Slew Rate einstellbar; Pullups zuschaltbar u.v.a.m
Kompatibel zu
3.3V low-voltage TTL (LVTTL)
Low-voltage CMOS (LVCMOS) at 3.3V, 2.5V, 1.8V, 1.5V, or 1.2V
aber auch zu differenziellen Standards
LVDS low voltage differential signalling
Projekt anlegen
Projektordner anlegen z.B: M:\hwe\xilinx
Beispiel kopieren und entpacken l:\kneringer\xilinx\uebung1.zip → m:\xilinx\uebung1
Software starten: „Xilinx 64bit“
Projekt öffnen und Einstellungen kontrollieren
//Project/Design Properties
Family: Spartan3E
Device: XC3S100E
Package: CP132
Simulator: ISIM
Preferred Language: VHDL
Schaltplan zeichnen
keine Sonderzeichen nirgendwo! (auch
nicht in Kommentaren; english spoken)
Verschieben von
Schaltungsteilen mit Attributen (z.B: Signalnamen) ist nicht
möglich, daher ist vor dem Platzieren ein Floorplaning nötig oder
Attribute erst zuletzt am Schaltplan sichtbar machen.
Location-Attribut vergeben
legt fest, bei welchen Pins die Ein- und Ausgänge angeschlossen sind
Location-Attibut über User Constraints File (.UCF)
menu://Project/New File/Implementation Constraints File
Vorlage kopieren von : http://kner.at/home/60.Elektronik/xilinx/tb.template1.zip
Beispiel:
#loc=p38 ... Achtung, die Pin-Namen ändern sich je nach Package des ASICS
#bufg=clk ... führt das Signal clk über eine Lonngline (=schnelle Leiterbahn zur Signalverteilung)
#data_gate Eigenschaft führt das Signal über ein Latch, dadurch wird Strom gespart, weil nicht jede Signaländerung am Eingang interne Logik umschaltet
net clk loc = p38 | bufg=clk | data_gate;
Häufige Fehler:
Takt für Flipflops über normale Leiterbahn zur Verfügung stellen ist ein Fehler; Clock muss über schnelle Leiterbahnen verteilt werden, dafür gibt es eigene Clock-Eingänge am ASIC
Abhilfe: NET "mclk" CLOCK_DEDICATED_ROUTE = FALSE; in das UCF File schreiben erlaubt die Verwendung von normalen Pins
Schaltplan prüfen
menu://Tools/Check Schematic
Simulation
siehe ISIM
Simulation starten
Projektansicht auf „Simulation umschalten
auf das zu simulierende Modul klicken (top.sch)
[Simulate Behavioral Model] startet den Simulator.
Bedienung Simulator
put sw(0) 1
put sw 15 -radix dec
put sw 0x3f -radix hex
isim force add sw(0) 0 -value 1 -time 50 ns -repeat 80 ns oder einfacher über Rechtsklick auf das Signal //Force Clock
Zoom: F6 (Zoom all) und „Zoom to Cursors“ (Lupe mit rotem Rechteck)
Implementierung
Umschalten auf (2)
Starten mit (4)
Programmierdatei erzeugen (6); bei den Eigenschaften evtl. auf Takt JTAG umstellen
wenn Schaltungsteile nicht verwendet werden, in den Optionen von Map (5) auf map -u stellen
Kontrolle (7) und (1)
Ergebnis der Implementierung in (3)
Generate Programming File
submenu://Process Properties/Startup Options/JTAG Clock
Erzeugen der Firmware
Anschließen an USB Kabel
Checken, ob Demoboard auf JTAG eingestellt ist (Jumper JP6 in Stellung „PC“)
Programmierung über ADEPT2 Software und JTAG Interface
Ein VHDL Modul in den Schaltplan einbauen
VHDL Modul schreiben und debuggen
z.B: menu://Language Templates/VHDL/Synthesis Constructs/Coding Examples/Misc/7-Segment Decoder
processes://synthesize-XST/Check Syntax
processes://DesignUtilities/Create Schematic Symbol
erzeugt ein Symbol in der Library „WORK“das Symbol einbauen und anschließe
Links
Kurze Dokumentation über das Demoboard http://kner.at/home/60.Elektronik/xilinx/index.html
Materialien
http://kner.at/home/60.Elektronik/xilinx/materialien/index.html