projektavimo kalba 1 paskaita · 2017-02-20 · ... xilin ise aplinką ir digilent s3 plokštę:...

18
VHDL: skaitmeninių įtaisų projektavimo kalba 1 paskaita dr. Giedrius Masalskis

Upload: phungthuan

Post on 04-Aug-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

VHDL: skaitmeninių įtaisų projektavimo kalba

1 paskaita

dr. Giedrius Masalskis

Literatūros šaltiniai

• Paskaitų skaidrės.• Lengvai ieškoma knyga, kai reikia greitai prisiminti

VHDL sintaksę, surasti pavyzdžius: VHDL: Programmingby Example. Douglas L. Perry, Fourth Edition. vhdl_knyga

• Xilinx Spartan 3E datasheet. spartan3e_datasheet• Basys 2 FPGA Board Reference Manual. basys2_refman

• Xilinx Spartan 3 lusto programavimo pavyzdžiai naudojant VHDL kalbą, Xilinx ISE aplinką ir Digilent S3 plokštę: FPGA PROTOTYPING BY VHDL EXAMPLES: Xilinx SpartanTM-3 Version. Pong P. Chu. fpga_knyga

• Dar viena VHDL kodo pavyzdžių knyga, specializuota Digilent plokštėms: Digital Design Using Digilent FPGA Boards: VHDL Edition. Richard E. Haskell, Darrin M. Hanna. digilent_knyga

Digilent Basys 2

basys2_refman: p. 1-2, Overview

FPGA architektūra• FPGA – Field Programmable Gate Array. Liet. programuojamas loginių elementų

masyvas, kitaip programuojamos logikos lustas (PLL).• Visų FPGA gamintojų lustų sandara yra panaši:

• I/O blocks – įvesties/išvesties blokai.• Logic blocks – loginių elementų blokai.• Programmable interconnects – programuojami blokų sujungimai.

fpga_knyga: p. 36-38

Xilinx Spartan architektūra:pagrindiniai komponentai

• DCM – digital clock manager• CLB – configurable logic block.

spartan3e_datasheet: p. 2-4

Xilinx Spartan architektūra:CLB, Slices, LUTs

• The Configurable Logic Blocks (CLBs) constitute the main logic resource for implementing synchronous as well ascombinatorial circuits.

• Each CLB contains four slices, and each slice contains two Look-Up Tables (LUTs) toimplement logic...

• ...and two dedicated storage elements that can be used as flip-flops or latches.

• The LUTs can be used as a 16x1 memory (RAM16) or as a 16-bit shift register

Xilinx Spartan architektūra:Look-Up Tables

• The Look-Up Table or LUT is a RAM-based function generator and is the main resource for implementing logicfunctions.

• Furthermore, the LUTs in each SLICEM pair can be configured as Distributed RAM or a 16-bit shift register

• Each of the two LUTs in a slice have four logic inputs (A1-A4) and a single output (D).

• Any four-variable Boolean logic operation can be implemented in one LUT.

• Functions with more inputs can be implemented by cascading LUTs or by using the wide function multiplexers.

spartan3e_datasheet: p. 21-25

Baziniai loginiai elementai

• NE

• IR

• ARBA

digilent_knyga: p. 19-20

Baziniai loginiai elementai

• IR-NE

• ARBA-NE

• Išskirtinis ARBA

• Išskirtinis ARBA-NE

digilent_knyga: p. 21-23, Four new gates

HDL įvadas

• Tradicinės programavimo kalbos (C, Pascal, Python) yra nuoseklios: jomis parašytos programos yra kompiliuojamos į universalaus procesoriaus instrukcijų seką ir jame yra vykdomos paeiliui.

• Aparatūros aprašymo kalbos (HDL – Hardware DescriptionLanguage), pvz.: VHDL, Verilog, buvo sukurtos specialiai aparatūros dokumentavimui, projektavimui, modeliavimui ir gamybai.

• Aprašant aparatūrą reikia atsižvelgti į šias savybes:– komponentai (jungikliai, loginiai ventiliai) yra sujungti tarpusavyje;– vyrauja lygiagretūs būsenų virsmai, panašūs į griūtis;– būsenų virsmus įtakoja signalo sklidimo vėlinimas ir laikiniai

komponentų parametrai

• Visa tai negali būti aprašoma įprastomis nuosekliomis programavimo kalbomis, todėl yra naudojamos HDL kalbos

10

HDL įvadas• Palyginimui:

– Aparatūros schemos braižymas rankiniu būdu gali būti palygintas su tradicinės nuoseklios programos rašymu asemblerio kalba

– Tuo tarpu HDL projektavimas pagal abtrakcijos lygmenį yra labiau panašus į C (galima lyginti RTL lygmens aprašu) arba Python (lyginti su elgsenos aprašu) programos rašymą

• Skirtingos HDL kalbos leidžia pasiekti tą patį tikslą• Priklausomai nuo tikslo, įvairios kalbos gali padėti jį įgyvendinti

efektyviau: greičiau, pigiau, paprasčiau• Skiriasi kalbų sintaksė ir papildomų bibliotekų galimybės. • Skiriasi kalbų palaikymas projektavimo paketuose: VHDL, Verilog,

SystemC palaikomi įvairiuose paketuose, tačiau palaikomos skirtingos versijos ir galimybės

• Kalbos taip pat skiriasi leidžiamais abstrakcijos lygmenimis projektuojant

11

HDL abstrakcijos lygmenys

• HW/SW – aparatūros ir programinės įrangos integravimo lygmuo.

• Behavior – elgsenos lygmuo. Aukštame abstrakcijos lygmenyje, tačiau tiksliai aprašytas įrenginio veikimas.

• Testbench – testinė programa, kurios pagalba tikrinamas suprojektuoto įrenginio veikimas įvairiuose lygmenyse.

• RTL (Register Transfer Level) – registrų perdavimo lygmuo. Susideda iš atminties elementų, laidų ir kombinacinės logikos elementų.

• Gates – loginių ventilių lygmuo. NOT, AND, OR, NAND, NOR, XOR, XNOR, etc.

• Transistors (switches) – elektrinės schemos lygmuo. Kiekvienas loginis ventilis susideda iš dviejų ar daugiau tranzistorių.

12

RTL projektavimo seka

Specifikacija, architektūra

HDL (RTL) projektavimas

Fizinisprojektavimas

NaudojimasASIC lustams

Naudojimas programuojamiemslustams

Techninė specifikacija

Suskirstytas blokaisaprašas

RTL lygmensaprašas

Funkcinis modeliavimas

Logikos sintezė

Loginių ventiliųmodeliavimas

Laikinių charakteristikų analizė

Išdėliojimas, trasavimas (place & route)

Loginių ventiliųmodeliavimas

Laikinių charakteristikų analizė

Lusto projektotikrinimas (layout verification)

Lusto gamyba

Konfigūracijos failo generavimas

13

Kodėl verta naudoti HDL?

• Bet koks sudėtingesnio nei kelių tūkstančių tranzistorių lusto topologijos rankinis projektavimas yra daug resursų reikalaujantis darbas.

• Aparatūros aprašymo kalbos turi šiuos privalumus:– Savo sintakse yra panašios į aukšto lygio įprastas programavimo

kalbas– Leidžia aprašyti daugelio hierarchijos lygių architektūras– Ta pačia HDL kalba dažniausiai yra rašoma ir projektuoto

įrenginio testinė programa (testbench)– Leidžia suprojektuotus blokus efektyviai panaudoti skirtinguose

įrenginiuose– Leidžia kartu modeliuoti skirtingo abstrakcijos lygmens aprašus

(elgsenos – RTL – loginių ventilių)– Leidžia kurti parametrizuotus funkcinių blokų aprašus

14

Kodėl verta naudoti HDL?

• Kuriant įtaiso HDL aprašą projektavimas vyksta „iš viršaus į apačią“ principu, o ne „iš apačios į viršų“, kuris naudojamas tiesiogiai projektuojant lustų topologiją.

• Galutinis HDL aprašas gali būti optimizuojamas skirtingiems tikslams: dažniui, lusto plotui, ir t.t.:– Lusto tipas: FPGA, CPLD, Standard Cell ASIC, Full Custom ASIC, etc.– ASIC gamybos technologija: CMOS, Bipolar, GaAs, etc.

• HDL aprašą galima modeliuoti:– be loginių ventilių ir laidų vėlinimo įtakos, kai reikalingas didelis

našumas;– didžiąją dalį laiko skiriant logikos funkciniam korektiškumui, o ne

laikinių parametrų korektiškumui;– Skirtinguose abstrakcijos lygmenyse, priklausomai nuo to kokio

rezultatų tikslumo reikia

15

Kodėl verta naudoti HDL?– Svarbiausia: įtaiso HDL aprašą galima sintezės įrankiais

transformuoti į pasirinktos bibliotekos loginių ventilių schemą.• Tai beveik visiškai automatinis procesas• Projektuotojas gali įvesti laikinių parametrų apribojimus

(didesniam taktiniam dažniui pasiekti) arba lusto ploto apribojimus (talpesniam loginių ventilių išdėstymui)

– Aparatūros aprašymo kalbos leidžia skaityti/rašyti failus ir naudoti kitus operacinės sistemos teikiamus resursus, kas žymiai supaprastina modeliavimą• Pvz.: galima iš failo įsivesti testines bitų sekas ir jas paduoti į

modeliuojamo įtaiso įvadus, o rezultatus gautus išvaduose išvesti į failus.

– Kodėl verta naudoti VHDL?• Viena iš labiausiai paplitusių HDL kalbų, kartu su Verilog• Palaiko aukštesnius abstrakcijos lygius, nei VHDL. Tai įgalina

suprojektuoti ir sumodeliuoti didelės apimties ir sudėtingos elgsenos įrenginius.

16

VHDL

• VHDL = VHSIC Hardware Description Language• VHSIC = Very High Speed Integrated Circuit• Sukurtas USA DoD kaip mikroschemų

dokumentavimo standartas. Vėliau atsirado modeliavimo ir sintezės palaikymas

• VHDL sintaksė ir koncepcija yra pasiskolinta Ada kalbos

• Dabar VHDL kalbos ir standartinių bibliotekų vystymą vykdo IEEE organizacija– Naujausia standarto revizija: IEEE 1076-2008

vhdl_knyga: p. 21-21, Introduction to VHDL

VHDL terminai

Šnekėdami lietuviškai stengsimės naudoti tokius terminus:• Entity – objektas• Architecture – architektūra• Configuration – konfigūracija• Signal – signalas• Process – procesas• Package – paketas• Driver – formuotuvas (draiveris...)• Bus – duomenų magistralė (šyna...)• Attribute – atributas• Generic – bendrasis parametras• Transaction – transakcija

vhdl_knyga: p. 21-22, VHDL Terms