S-RAM based
22k Logic Cells
Lookup-Table, 16 in, FlopFlop, 1 out
Programmierbare Interconnection Points.
2 Programmiermethoden
– Struktural, auf Hardwareebene (1980)
– Verhaltensbasiert, Funktional (Verilog)
Programmiert wird:
– Lookup Table
– Startwert vom FlipFlop
– Interconnection points
Seither weiterentwicklung:
– RAM (512k) in 9k Blöcken
– PLLs, gut, wenig jitter
– Hardware Multiplier
– keine Divisionen: müssen sequentialisiert werden..
Unser Modell:
– 6 PLLs
Einsatzgebiet:
– Spezialanfertigung, wenn kein Baustein vorhanden ist, alternative zu Microcontroller, die mehr Paralellität ermöglicht
– neu auch: Bildcodierung
alternative ASIC (schneller, hohe Auflage günstiger, initialkosten 10 Mio)
VHDL vs. Verilog vs. System-Verilog
VHDL
– eher Softwareentwicklerbasiert
– Ministry of Defense
Verilog
– eher Elektrotechnikerbasiert
– Private Firma
New Project:
– Top Level Entity Name merken
– keine Files hinzufügen
– Devices herstellerübergreifend Kompatibel, unterschiede bezüglich Pinout
Arria: 15 Jahre alt
MAX: CPLD (fpga mit integriertem flash, früher auf)
FPGA: Flüchtig (braucht immer Programmierdevice)
Cyclone: Günstig, stromsparend
Stratix: HighEnd Serie, teuer, Grafikprozessorenprototypen
–> wir arbeiten mit Cyclone IV
VHDL an ADA angelehnt, extremst strongtypig (streng in der Verwendung der Datentypen)
Verilog an C angelegt
VHDL Datei Aufbau:
- Libs
- interface description “entity”
Taste ->
Led <- - Architecture
- Coding
- Analysis & Synthesis
- Compile
- Pin Planer
- TimeAnalyzer (TimeQuest Timing Analyzer, time constraints)
- Create clock: Period 20 ns
- Programmer
set_global_assignment -name NOMINAL_CORE_SUPPLY_VOLTAGE 1.2V
ModelSim
New Project
Add File Demo_tb.vhd
entity Demo_tb is port ( ); end entity;
=> Verbindung (wire)
<= Zuweisung (reg)
Array: Datenstruktur
Vektor: Datantyp
Tools:
Compile
TimeQuest TimeAnalyzer
Create Timing Netlist
Constraints/Create clock
write sdc file
assignments/settings/../TimeQuest Time analyzer/sdc filename
compile
schön gmacht…