Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  
AccessAdobe photoshopAlgoritmiAutocadBaze de dateC
C sharpCalculatoareCorel drawDot netExcelFox pro
FrontpageHardwareHtmlInternetJavaLinux
MatlabMs dosPascalPhpPower pointRetele calculatoare
SqlTutorialsWebdesignWindowsWordXml

Instrumente software - Mediul Integrat Xilinx ISE

calculatoare



+ Font mai mare | - Font mai mic



Instrumente software

1 Mediul Integrat Xilinx ISE

1.1 Prezentare

Pachetul de programe Xilinx ISE produs de Xilinx Inc. reprezinta un mediu integrat utilizat pentru proiectarea sistemelor digitale cu FPGA-uri sau CPLD-uri produse de aceeasi companie. In general, pachetul Xilinx ISE permite utilizarea urmatoarelor tipuri de circuite FPGA si CPLD Xilinx:



Circuite FPGA din familia Spartan: Spartan-2, Spartan-2E, Spartan-3;

Circuite FPGA din familia Virtex: Virtex-E, Virtex-2, Virtex-2 Pro;

Circuite CPLD din familia XC9500: XC9500, XC9500XL, XC9500XV;

Circuite CPLD din familia CoolRunner: CoolRunner XPLA

Pentru o mai buna deservire a nevoilor diferitilor clienti, compania Xilinx Inc. ofera trei versiuni ale programului Xilinx ISE. Urmarind tabelul 1 se pot observa diferentele dintre acestea.

Caracteristica

ISE WebPack

ISE BaseX

ISE Foundation

Pret

Circuite

Seria Virtex

Virtex-E: XCV50E -XCV300E

Virtex-II: XC2V40 - XC2V250

Virtex-II Pro: XC2VP2

Virtex-4:

LX: XC4VLX15, XC4VLX25

Virtex: XCV50 - XCV600

Virtex-E: XCV50E - XCV600E

Virtex-II: XC2V40 - XC2V500

Virtex-II Pro: XC2VP2 - XC2VP7

Virtex-4

LX: XC4VLX15, XC4VLX25

SX: XC4VSX25

FX: XC4VFX12

Toate

Seria Spartan

Spartan-II: All

Spartan-IIE: XC2S50E - XC2S300E

Spartan-3: XC3S50 - XC3S1500

Spartan-3E: XC3S100E - XC3S500E

Spartan-3L: XC3S1000L, XC3S1500L

Spartan-II: All

Spartan-IIE: All

Spartan-3: XC3S50 - XC3S1500

Spartan-3E: All

Spartan-3L: XC3S1000L, XC3S1500L

Toate

CoolRunner XPLA3

CoolRunner-II

CoolRunner-IIA

Toate

Toate

Toate

XC9500 Series

Toate

Toate

Toate

Caracteristica

ISE WebPack

ISE BaseX

ISE Foundation

Instrumente

de

proiectare

Schematic and HDL Editor

Da

Da

Da

State Diagram Editor

doar pentru Microsoft Windows

doar pentru Microsoft Windows

doar pentru Microsoft Windows

CORE Generator

Nu

Da

Da

RTL & Technology Viewers

Da

Da

Da

PACE (Pinout & Area Constraint Editor)

Da

Da

Da

Architecture Wizards

Da

Da

Da

Xilinx System Generator for DSP

Nu

Optiune separata

Optiune separata

EDK

Nu

Optiune separata

Optiune separata

Instrumente

XST

Da

Da

Da

de

Leonardo Spectrum

EDIF in Linux

EDIF in Linux

EDIF in Linux

sinteza

Mentor Graphics Precision RTL

Interfata integrata

Interfata integrata

Interfata integrata

Mentor Graphics Precision Physical

EDIF

EDIF

EDIF

Synopsys Compiler

EDIF



EDIF

EDIF

Synplicity Synplify/Pro

Interfata integrata

Interfata integrata

Interfata integrata

Synplicity Amplify Physical Synthesis

EDIF

EDIF

EDIF

ABEL

CPLD

CPLD

CPLD

Implementare

FloorPlaner

Da

Da

Da

Plan Ahead

Nu

Optiune separata

Optiune separata

Timing Driven Place & Route

Da

Da

Da

Modular Design

Nu

Da

Da

Incremental Design

Da

Da

Da

Timing Improvement Wizard

Da

Da

Da

Programare

Impact

Da

Da

Da

Verificare

ChipScope Pro

Optiune separata

Optiune separata

Optiune separata

Graphical Testbench Editor

doar Microsoft Windows

doar Microsoft Windows

doar Microsoft Windows

ISE Simulator Lite

Nu

Da

Da

ISE Simulator

Nu

Nu

Optiune separata

ModelSim XE III Starter

Da

Da

Da

ModelSim XE III

Optiune separata

Optiune separata

Optiune separata

Static Timing Analyzer

Da

Da

Da

FPGA Editor with Probe

Nu

Da

Da

ChipViewer

Da

Da

Da

XPower (Power Analysis)

Da

Da

Da

SMARTModels

Nu

Da

Da

Figura 1. prezinta principalele module software ale pachetului integrat Xilinx ISE

1.2 Project Navigator

Toate programele ce compun pachetul Xilinx ISE pot fi lansate sau folosite cu ajutorul programului numit 'Xilinx Project Navigator'. Acest IDE permite crearea unor proiecte noi, vizualizarea si editarea fisierelor de intrare, a celor intermediare sau a celor generate drept iesire. Se pot genera diverse fluxuri de intrare-iesire si se pot configura FPGA-urile sau CPLD-urile tinta.

Ecranul interfetei grafice Project Navigator este impartit in patru ferestre principale, dupa cum se ilustreaza in Figura 2:

  • fereastra fisierelor sursa
  • fereastra editor HDL
  • fereastra proceselor
  • fereastra consolei.


In fereastra fisierelor sursa se afiseaza toate fisierele sursa care au fost incluse in proiectul curent. Prin executia unui clic dublu pe numele unui fisier din aceasta fereastra se va deschide fisierul respectiv de catre modulul CAD corespunzator. Fereastra proceselor indica toate procesele care sunt disponibile pentru un anumit tip de fisier sursa. Executia unui clic dublu pe numele unui proces va lansa in executie procesul respectiv. Fereastra editorului HDL afiseaza continutul fisierului sursa selectat, continand descrierea unei componente digitale intr-un limbaj de descriere hardware. Continutul fisierului poate fi editat in aceasta fereastra. In fereastra consolei se afiseaza toate mesajele care indica starea executiei unui proces, inclusiv mesajele de avertisment sau de eroare care sunt generate in urma executiei. Pe langa aceste ferestre principale, interfata 'Project Navigator' poate deschide si alte ferestre necesare pentru unele aplicatii.

Fig. 2 Project Navigator

Cu ajutorul IDE-ului 'Project Navigator' se pot crea fisiere proiect noi, pentru care se pot specifica urmatoarele proprietati:

numele si locatia proiectului

tipul de FPGA sau CPLD (CoolRunner, Spartan 2, Spartan 3, XC9500)

tipul de 'package' (FG256, FG456, PQ208, etc.)

tipul de sursa sinteza aleasa (EDIF, XST, Synplify, Leonardo Spectrum, etc.)

Fig. 3 Fereastra 'New Project

Fereastra proceselor poate fi folosita pentru a modifica o serie de parametrii cum ar fi:

  • adaugarea modificarea constrangerilor utilizator
  • tipul de sinteza si parametri specifici
  • implementarea proiectului
  • generarea fisierului de configurare si incercarea acestuia.

Fig. 4 Fereastra proceselor

Tab-ul 'Synthesize' poate fi folosit pentru a modifica o serie de parametri folositi la sinteza circuitului electric digital (specifici instrumentului de sinteza ales) cum ar fi:

  • folosirea sau nu a compilatorului FSM simbolic
  • impartirea resurselor fizice intre diferitele module ale proiectului
  • frecventa dorita de functionare
  • utilizarea standardului Verilog 2001
  • utilizarea programului ce identifica automatele finite 'ascunse' la proiectare
  • folosirea sau nu a sintezei de tip 'pipeline
  • folosirea sau nu a fisierului de constrangeri la momentul sintezei.

Fig. 5 Optiuni de sinteza

Dupa cum vom vedea mai tarziu (subcapitolul 2 Instrumente de sinteza), sinteza este procesul cel mai important ce are loc atunci cand un proiect este compilat. Tipul programului de sinteza, performantele acestuia vor determina decisiv pretul final al circuitului electric digital precum si performantele acestuia.

Folosirea unor optiuni precum 'Symbolic FSM Compiler Resource Sharing Use FSM Explorer Data Retiming Pipelining' poate duce la o arie (sau numar de porti) folosita mai mica si deci la un pret final mult mai mic. Cu toate acestea, nu intotdeauna aceste optiuni sunt indicate, o analiza atenta a circuitului putand arata care optiuni sunt indicate pentru proiectul actual si care nu. Dupa finalizarea procesului de sinteza un raport al acestuia va fi generat.

Tab-ul 'Generating Programming File' poate fi folosit pentru a modifica o serie de parametri ai fiserului final pentru configurare FPGA sau CPLD cum ar fi:

  • crearea unui fisier binar de configurare
  • crearea unui fisier ASCII de configurare
  • activarea compresiei BitStream
  • configurarea diversilor parametri JTAG (rata de configurare, pinii M0, M1, M2, JTAG Clk, etc.)

Fig. 6 Generating Programming File

1.3 Editorul de constrangeri

Pachetul Xilinx ISE permite specificarea constrangerilor de tipuri diferite pentru proiectul actual, cum ar fi:

  • constrangeri de frecventa
  • constrangeri de plasare
  • constrangeri de grupare
  • directive de 'place and route';
  • constrangeri pentru intrari iesiri
  • directive de initializare
  • diferite atribute ale porturilor de I O

Editorul de constrangeri poate fi folosit atat in mod text in cadrul programului 'Project Navigator'cat si in mod grafic (Figura 7):

Fig. 7 Editorul de constrangeri

Imediat dupa incheierea procesului de sinteza, pachetul software Xilinx ISE lanseaza in fundal programul 'place & route' ce va definitiva circuitul digital curent. Acest program foloseste constrangerile definite cu ajutorul 'Constraints Editor'. Cele mai importante constrangeri ale unui proiect sunt cele legate de plasarea porturilor de I/O folosite de circuitul curent. Dupa cum se poate observa si din figura 8, se pot specifica diversi parametri cum ar fi:

  • directia portului de I/O;
  • pinul fizic ales
  • standardul de I/O folosit(LVTTL, LVCMOS2, PCI133_3, PCI133_5, PCI166_3, GTL, AGP, etc.)

Fig. 8 Parametri pentru porturi I/O

1.4 Programul 'FPGA Editor'

Pentru a verifica sau modifica fisierul binar rezultat in urma compilarii proiectului curent se poate folosi programul 'FPGA Editor'. Cu ajutorul acestui utilitar se pot incarca diversele imagini ale circuitelor implementate in FPGA-uri (figura 9):

Fig. 9 FPGA Editor

2 Instrumente de sinteza

Daca programele de 'place & route' sunt intotdeauna dezvoltate de firmele producatoare de FPGA-uri sau CPLD-uri din motive de protectie impotriva tentativelor de 'reverse engineering', programele de sinteza ale circuitelor digitale sunt dezvoltate de mai multe companii. Unele din produsele cele mai cunoscute de sinteza hardware sunt:

  • Synplify Pro
  • Leonardo Spectrum
  • Synopsys Compiler
  • XST (Xilinx Synthesys Tool

Din punctul de vedere al rezultatelor procesului de sinteza, Synplify Pro este programul cel mai performant. Daca luam in considerare pretul produsului software programul XST al companiei Xilinx Inc. este de preferat datorita faptului ca poate fi descarcat fara plata de pe site-ul companiei producatoare.

Fig. 10 Synplify Pro

Programul Synplify Pro (figura 10) este de departe cel mai performant program de sinteza hardware pentru circuitele de tip FPGA sau CPLD moderne. Cu ajutorul sau am reusit implementari ale SoC (capitolul 4) ce folosesc cu 10 porti logice decat sintezele realizate cu Leonardo Spectrum si cu 20-30 decat cele realizate cu XST. Daca combinam programul Synplify Pro cu utilitarul Amplify FPGA, numarul  total de porti logice poate sa scada cu inca 15-20

3 Exemplu practice de aplicatie folosind XC3S200 si XC2S200

Se va porni mediul de dezvoltare "Xilinx ISE 7.1"

Din meniu se va alege  File -> New Project

Se vor completa numele, locatia si tipul modulului principal:

Se va completa tipul de FPGA tinta, tipul modulului principal, instrumentul de sinteza, simulatorul precum si tipul limbajului simulat:

Se va alege optiunea Next pana la generarea completa a proiectului.

In continuare vom incerca dezvoltarea unui program pentru aprinderea celor 8 leduri, cate unul odata.

Iesirile FPGA pentru cele 8 leduri sunt:

XC3S2000 Signal

XC3S2000 Out

XC2S200 Signal

XC2S200 Out

Clk

AF14

Clk

P185

Led0

M6

Led0

P191

Led1

M7

Led1

P192

Led2

M8

Led2

P193

Led3

N2

Led3

P194

Led4

N3

Led4

P195

Led5

N4

Led5

P199

Led6

N5

Led6

P200

Led7

N6

Led7

P201

Mux0

Mux0

P204

Mux1

Mux1

P205

Mux2

Mux2

P4

Se va completa codul Verilog dupa cum urmeaza:

Se va sintetiza programul:

Se vor adauga constrangerile, folosindu-se editorul de constrangeri vizual, sau editorul de constrangeri in mod text:

Atentie! Verificati ca fisierul de constrangeri contine:

Se va genera BitStream-ul si se va incarca in FPGA (se va folosi programul Impact Configurator)

Teme de laborator:

  1. Explicati valoare 0x2FAF080 precum si faptul ca registrul temp este reprezentat pe 28 de biti.
  2. Explicati rolul instructiunii

if(leds_out == 8'hFF || leds_out == 8'h00)

  1. Explicati rolul instructiunii:

leds_out = 8'hFE; //Spartan3-2000

respectiv

leds_out = 8'h01; //Spartan2-200

  1. Explicati de ce intre stingerea ultimului Led si aprinderea primului apare o intarziere de 1 secunda in care toate ledurile sunt stinse. Modificati programul, pentru a indrepta acesta comportare a circuitului.
  2. Modificati programul in asa fel incat sa afiseze folosind Led-urile toate numerele de la 0 255 in reprezentarea lor binara.




Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2430
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved