Sunteți pe pagina 1din 40

CIRCUITE INTEGRATE DIGITALE II (EA II)

ELECTRONICA DIGITALA (CAL I)

Prof.univ.dr.ing. Oniga Ștefan


Tehnici de programare
Programarea circuitelor FPGA (configurarea)
• Descărcarea fișierului de configurare .bit (bitstream)

• Posibilități de realizarea a conexiunilor programabile:

– Fuse

– Antifuse

– SRAM

– MUX

– Floating gate

– EPROM/EEPROM/Flash
Programarea FPGA (configurarea)
• Conexiuni fuzibile (Fuse): după ardere, procesul de programare nu
poate fi inversat (OTP). Anterior utilizate mai ales in dispozitivele PLA.
• Tehnologia Antifuse : (OTP), cristal amorf de Si polarizat la 20-30V se
cristalizează și devine conductor, procesul este ireversibil. Tehnologia este
scumpă datorită numărului mare de măsti necesare în procesul tehnologic.
Se utilizează datorită imunității ridicate la zgomot, de exemplu în circuitele
utilizate în spațiul cosmic.
• Celulă SRAM + tranzistor: reprogramabil. Este cea mai răspândită tehnică in
cazul circuitelor FPGA. Biții stocați în SRAM comandă electrodul Gate al
tranzistoarelor de conexiune.
• Celulă SRAM + multiplexer. Reprogramabil. Biții stocați în SRAM reprezintă
semnalul de selecție al multiplexoarelor de rutare a semnalului.
• Tranzistoarele cu poartă flotantă (Floating Gate): reprogramabil pe cale
electrică. Este tehnologia care se află la baza circuitelor EEPROM/Flash din
ziua de azi.
Pașii de proiectare (design flow)

• Design entry (de exemplu in limbaj HDL sau


schematic)
• Simularea

• Sinteza

• Implementarea

• Analiza in domeniul timp (time simulation)

• Crearea bitstream
Xilinx design flow
Design entry
• Metode de proiectare ierarhică
– De sus în jos (top-down)
– De jos în sus (bottom-up)
• Opțiuni de descriere a sistemului
– Desen schematic
– Limbaje HDL (VHDL, Verilog, ...)
– Limbaje de nivel înalt de tip C (Xilinx Vivado HLS, Altera C2H, (Mentor
Graphics) Calypto Catapult C, Impulse C, System C, Handel C ...)
– Digrame de stare
– Proiectare bazată pe modele – Folosind programe VDF (Visual Data Flow)
(MATLAB Simulink, NI LabView – FPGA Module)

➢ Utilizând module IP (Intellectual Property) (Xilinx CORE


• Generator, Altera Megawizard, ...) sau sub formă de liste de conexiuni (netlist)
• Constrângeri utilizator sau de proiectare: fișier ucf (user constraints) sau
XDC (Xilinx design constraints)
Proiectare bazată pe modele - Matlab

➢ Modelare concurențială similară cu


descrierea hardware
➢ HiL (Hardware-in-the-Loop)
Proiectare bazată pe modele
Labview –FPGA modul
Proiectare cu module IP
Xilinx CORE Generator

➢ Există o mare varietate de blocuri IP


➢ Blocurile IP sunt în general parametrizabile
Verificare
• Mai multe posibilități de verificare
– Simulare comportamentală(Behavioral Simulation)
– Simulare funcțională (Functional Simulation)
– Analiza statică de timp
– Simulare în domeniul timp (Timing Simulation)
– Depanare (Debug / In-Circuit Verification)

• UUT (Unit under test) – modulul care trebuie testat


• Crearea mediului de testare (în limbaj HDL):

– Verilog test fixture


– VHDL testbench
Xilinx ISE Design Suite 14.7
• Xilinx ISE - Integrated Software Environment – mediu integrat de dezvoltare
pentru circuitele FPGA și CPLD ale companiei Xilinx.
• Componentele ISE
– Schematic Editor – Editor schematic
– Core Generator – parametrizarea moduelor IP
– PlanAhead – manager implementare
– Xilinx Platform Studio (XPS) = EDK + SDK – Mediul de dezvoltare pentru
circuitele integrate (embedded)
– Timing Analyzer – Analizor în domeniul timp
– FPGA Editor
– Impact – Program pentru descărcarea fișierului Bitstream
– ChipScope: analizor logic
Xilinx ISE Design Suite 14.7
• ISE WebPack - ISE, varianta gratuită dar cu funcționalitate completă
– permite numai implementarea circuitelor produse de compania XIlinx,

– nu permite implementarea tuturor familiilor, în general restrânge

posibilitatea implementării la familiile de complexitate mică și medie,


– se poate descărca gratuit (după o înregistrare prealabilă):

https://www.xilinx.com/support/download/index.html/content/xilinx/en/
downloadNav/design-tools/v2012_4---14_7.html

Full Installer for Windows 7/XP/Server (TAR/GZIP - 6.18 GB)


MD5 SUM Value: 94f40553a93dfbeca642503e2721b270
Medii de dezvoltare
• Design Entry (Descrierea proiectului)
• Schematic sau limbaj HDL
– Xilinx Foundation ISE (ISE WebPack)
– Alte programe
• Mentor Graphics: FPGA Advantage
• Celoxica: DK Design Suite
• Sintetizarea: (Design Synthesis)
• conversie optimizată a unui proiect de la nivel de
descriere structurală / comportamental abstractă
la nivel de poartă logică
– XST: Xilinx Synthesis Technology
– Mentor: Leonardo Spectrum
– Synplicity: Synplify Pro
– Celoxica: DK Design Suite
• Simulare:
– Mentor: Modelsim
– Aldec: Active‐HDL
– Celoxica: DK Design Suite
• Implementare (slide-ul următor)
• Verificare in Circuit:
– Xilinx: ChipScope
Sinteza

• Xilinx Synthesis Technology (XST), parte a pachetului


ISE.
• Utilitarul de sinteză creează o descriere generală

folosind porți logice și bistabile (FF).


Implementare
TRANSLATE → MAP →PAR (place & route)
• TRANSLATE: merge, netlist (EDIF) (netlist-urile ce constituie
proiectul se contopesc într-o singură reprezentare)
• MAP = mapare tehnologică implementare folosind primitivele
circuitului FPGA folosit (LUT, bistabile...)
• PAR (Place and Route) = plasare fizică și conectare

Generate Programming File


• Generare fișier de configurare cu extensia .bit (Bitstream)
• Încărcare prin standard serial (JTAG) folosind subprogram
IMPACT sau program ADEPT
Depanare – metoda clasică

Sunt necesare terminale de I/Opentru conectarea analizorului logic


● Nu sunt disponibile întotdeauna un număr suficient de
terminabile libere
● Inflexibilitate
Depanare – metoda modernă
➢ Instrument virtual implementat în FPGA
● Xilinx ChipScope Pro
● Altera SignalTap II Logic Analyzer
● Altium Designer – instrumente virtuale
Componentele ChipScope Pro
➢ ICON (Integrated Controller) core:
– Asigură comunicația JTAG.
➢ VIO (Virtual Input / Output) core:
– Asigură porturile I/O virtuale.
➢ ILA (Integrated Logic Analysis) core:
– Permite accesul la orice semnal intern.
➢ IBA (Integrated Bus Analysis) core:
– Analizator protocoale de magistrală.
➢ IBERT (Integrated Bit Error Ratio Test) core:
– Comanda Transceivere.
➢ ATC2: Agilent Trace Core 2
– Permite accesul la semnalele interne pentru analizorul logic Agilent.
Xilinx Vivado Design Suite
➢ Vivado (IDE) mediu de dezvoltare versiunea nouă a companiei
Xilinx, care permite pornirea subcomponentelor:
– IP Integrator / IP Catalog – parametrizarea blocurilor IP
– Source editor – editor fișiere sursa
➢ Vivado Simulator (XSIM)
➢ Vivado (EDK + SDK/Vitis) – sisteme embedded
➢ Timing Analyzer – Analizor în domeniul timp
➢ FPGA Editor (chip layout, floorplan)
➢ Hardware manager – înlocuiește Impact, folosit pentru
configurare
➢ ChipScope - Permite accesul la orice semnal intern al FPGA sub forma
unui analizor logic.
Vivado
Prezentarea programului Xilinx ISE

Sources window Fereastra de lucru(editor)


(fisiere sursa)

Process window
(prelucrari )

Console (fereastra de mesaje)


Creearea proiectului
• Pornirea programului: Start -> Programs\Xilinx ISE Design Suite 12.3\ISE
Design Tools\Project Navigator.
• Proiect nou (File→New Project) – programul creaza cate un director nou pentru
fiecare proiect,
• Numele proiectului „ primul_sch ,
• Fisier sursa nivelul ierarhic superior = schematic!

primul_sch
primul_sch
Setarea proprietatilor FPGA
• Al apasarea butonului Next se deschide fereastra Device Properties.
In coloana Value se aleg:

– Device Family: Spartan3E


– Device: xc3s500E
– Package: FG320
– Speed Grade: ‐4
– Synthesis Tool: XST (VHDL/Verilog)
– Simulator: ISim (VHDL/Verilog)

• Se apasa Next, apoi Finish si se creeaza un proiect gol.


Adăugarea unui fisier sursă
• Creearea unei surse noi: (Project→New Source...)!
• Tipul: schematic, numele: porti_logice!
• Daca vrem să adăugăm o sursă existentă: (Project→Add Source...)
Proiecte pe bază de scheme

Fereastră de editare a schemelor


Tema
• Implementarea porților logice
Constraints file
• Alegem Project / New Source si apoi Implementation Constraint File, alegem
numele primul(.ucf).
• După apăsarea Next/Finish în fereastra Sources apare fisierul a primul.ucf.
• Fiserul trebuie editat si completat cu datele inscrise pe placa

NET "btn0" LOC = „G12" ;


NET "btn1" LOC = „C11" ;
NET "led0" LOC = „M5" ;
NET "led1" LOC = „M11" ;
NET "led2" LOC = „P7" ;
NET "led3" LOC = „P6" ;
NET "led4" LOC = „N5" ;
NET "led5" LOC = „N4" ;
NET "led6" LOC = „P4" ;
Implementarea proiectului
•Implementarea in FPGA:
(Implement Design),
– View →implementation
– Hierarchy → fisierul tot level
– Processes → Implement Design
• Generarea fisierului de configurare
Configurarea FPGA
• Se face prin incărcarea în FPGA a fișierului primul_sch.bit creat
anterior.

• Digilent Nexys2 :
• http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,790&Prod=NEXYS2
Digilent Adept Suite
• https://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,828&Prod=ADEPT2
• Nexys2 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 Intel StrataFlash Flash R
•Xilinx Platform Flash ROM
•High-efficiency switching power supplies (good for
battery-powered applications
•50MHz oscillator, plus a socket for a second
oscillator
•75 FPGA I/O’s routed to expansion connectors
(one high-speed Hirose FX2 connector with 43
signals and four 2x6 Pmod connectors)
•All I/O signals are ESD and short-circuit protected,
ensuring a long operating life in any environment.
•On-board I/O includes eight LEDs, four-digit seven-
segment display, four pushbuttons, eight slide
switches
•Ships in a DVD case with a high-speed USB2 cable
Digilent Adept

1 2

Configurarea FPGA:
.bit (fisierul de configurare
generat)
Testarea plăcii

Start Test:
• RAM
• Flash
• Comutatoare
• Butoane
• LED-uri
• Afișaj cu 7 segmente
Rezultate
• Se apasă btn0 și btn1 pentru a creea toate cele 4 combinații posibile și se notează
starea ledurilor
• Se verifică corectitudionea funcționării conform tabelelor de adevăr ale funcțiilor
logice

btn0 btn1 led0 led1 led2 led3 led4 led5 led6


NOT AND OR NAND NOR XOR XNOR
0 0
0 1
1 0
1 1
Implementarea în limbaj Verilog
Crearea proiectului
• Start -> Programs\Xilinx ISE Design Suite 12.3\ISE Design Tools\Project Navigator.
• File→New Project - „primulHDL”,
• Fisierul top level: HDL!
Setarea proprietatilor FPGA

– Device Family: Spartan3E


– Device: xc3s500E
– Package: FG320
– Speed Grade: ‐4
– Synthesis Tool: XST (VHDL/Verilog)
– Simulator: ISim (VHDL/Verilog)

• Next, Finish.
Adăugarea fișierului HDL
• Project→New Source…!
• Tipul: Verilog Module, nume primulHDL!
Adăugarea porturilor
Fisierul HDL generat
Fisierul HDL generat

Aici se introduce codul care descrie circuitul

S-ar putea să vă placă și