Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Utilizarea mediului ActiveHDL pentru proiectarea, simularea si implementarea structurilor de calculatoare numerice

algoritmi



+ Font mai mare | - Font mai mic



Laborator

Utilizarea mediului ActiveHDL pentru proiectarea, simularea si implementarea structurilor de calculatoare numerice

2. Prezentarea machetei de laborator cu circuitul hardware reconfigurabil FPGA Spartan 3 XC3S400FG456



Obiectiv: Laboratorul se constituie ca un indrumar pentru lucrul cu mediul de proiectare, simulare si implementare ActiveHDL pentru structuri de calculatoare numerice. Tot aici se va gasi si o prezentare a machetei de laborator care va fi    folosita la implementari cu descrierea pinilor utilizati.

Atragem atentia ca toate etapele prezentate in acest laborator vor fi utilizate si in celelalte laboratoare deci este esentiala intelegerea acestora. Parcurgerea etapelor pentru proiectarea, simularea si implementarea circuitelor este obligatorie exact in ordinea in care sunt prezentate in cele ce urmeaza. Orice abatere de la aceasta ordine va avea drept urmare aparitia unor erori structurale sau functionale.

Desfasurarea lucrarii: Proiectarea unor circuite care sa fie apoi implementate pe structuri hardware reconfigurabile, de tipul FPGA, se face prin utilizarea unor medii speciale de proiectare. De regula, fiecare fabricant de circuite reconfigurabile furnizeaza si propriile instrumente software de sinteza si de implementare. Mediul de proiectare, simulare, implementare ActiveHDL realizat de firma Aldec permite selectarea instrumentelor software pentru sinteza si implementarea circuitelor logice in functie de fabricant, astfel incat acesta poate lucra cu o clasa foarte mare de circuite reconfigurabile. De asemenea acesta are trei metode prin care poate descrie circuitele logice: prin limbaj de descriere hardware, prin editarea schematica a circuitului sau prin masini de stare, pentru circuitele secventiale.

Dupa descrierea circuitului mediul ActiveHDL permite simularea comportamentului in timp a acestuia, astfel incat este posibila verificarea corectitudinii circuitului descris inainte ca acesta sa fie procesat pentru implementarea in FPGA.

Sinteza si implementarea sunt etapele care permit configurarea circuitului reconfigurabil selectat. Functionarea acestuia se testeaza folosind machetele de laborator.

Toate etapele prezentate mai sus vor fi parcurse de-a lungul laboratoarelor pentru proiectarea unor arhitecturi de structuri de calculatoare numerice, simularea comportamentului acestora si implementarea lor.

O parte din etapele prezentate in continuare se vor referi la un exemplu de circuit: dar pasii parcursi, asa cum am amintit, sunt universali valabili, indiferent de tipul circuitului.

Obiectivul este proiectarea unui sumator complet pe un bit, folosind editorul schematic din ActiveHDL. Apoi se doreste simularea acestuia si in ultima faza implementarea acestuia pe macheta pentru a se observa functionarea sa. Se vor citii fazele expuse in cele ce urmeaza si apoi se vor particulariza pentru sumator.

Crearea unui spatiu de lucru si a unui proiect pentru descrierea circuitului, simulare si implementare

  1. Din meniul File se selecteaza New - Workspace. Se scrie numele proiectului si se salveaza pe discul D in directorul CN. Salvarea in alta locatie poate avea drept urmare nerularea corecta in pasii urmatori proiectarii! Ramane bifata optiunea Add New Design to Workspace.

  1. In fereastra NewDesignWizard se selecteaza Create an empty design

  1. In fereastra aparuta se vor selecta Synthesis tool, Implementation tool si default family ca in figura de mai jos. Acesta sunt setarile care corespund cu tipul de circuit FPGA care se afla pe machetele din laborator.

  1. Se tasteaza apoi numele proiectului care se va dori sa se creeze.

  1. In ultima fereastra se va apasa Finish. In acest moment a fost creat un proiect gol in care se vor adauga fisiere (deja existente sau nou create)

Descrierea circuitelor logice folosind ActiveHDL

Exista mai multe metode pentru a descrie circuitele in ActiveHDL.

Dupa crearea proiectului si setarea optiunilor pentru lucrul cu macheta se observa fereastra principala de tipul celei de mai jos.

Pentru crearea unui fisier nou in proiect se selecteaza Add new file (inconjurat sus).

Exista mai multe metode pentru a descrie circuitele logice in ActiveHDL.

- descrierea folosind cod sursa: VHDL, Verilog sau SystemC sunt limbaje de descriere hardware. Lucrul cu acestea necesita cunostinte despre limbajul respectiv.

- descrierea folosind editorul schematic;

- descrierea folosind diagrame de stare.

Pentru descrierea folosind editorul schematic se urmeaza urmatorii pasi:

- se selecteaza din fereastra AddNewFile optiunea BlockDiagram si se scrie un nume pentru circuit in campul Name:

- se plaseaza componentele corespunzatoare accesand fereastra SymbolToolBox:

a) se apasa butonul cu pictograma corespunzatoare:

b) din fereastra care apare in partea dreapta se "trag" cu ajutorul mouse-ului componentele dorite - fiecare componenta se gaseste intr-o librarie (director). Atunci cand nu se specifica altceva, componentele se vor lua din libraria Built-in symbols:

c) se efectueza legaturile intre componente folosind instrumentul Wire:

d) Se plaseaza terminalele circuitului:

Pentru redenumirea terminalelor se da dublu click pe terminal si astfel se obtine accesul la numele acestuia

e) Pentru reasezare componente, editare sau stergere se apasa instrumentul Select sau se apasa tasta ESC

f) dupa ce a fost descris circuitul se realizeaza compilarea schemei.

Pentru descrierea cu limbajul de descriere hardware VHDL se urmeaza urmatorii pasi:

a) se selecteaza din fereastra AddNewFile tag-ul Wizards si optiunea VHDL Source Code si se apasa OK

b) urmatoarea fereastra se lasa neschimbata si se apasa Next

c) in fereastra urmatoare se scriu numele fisierului, numele entitatii si numele arhitecturii:

d) In fereastra urmatoare se apasa tasta New pentru introducerea porturilor circuitului. Se specifica directionalitatea acestora:

e) Se apasa butonul Finish, in acest moment pe ecran va fi creat un fisier template care contine declaratiile entitate, arhitectura si porturile declarate in entitate. Aici se va permite editarea ulterioara a programului VHDL. Dupa editare se va compila.

Simularea circuitelor folosind mediul ActiveHDL

Pasii efectuati pentru simularea circuitelor folosind mediul ActiveHDL sunt aceeasi indiferent daca este vorba despre simularea circuitelor descrise cu editorul Schematic sau a circuitelor descrise in limbajul VHDL.

Dupa ce circuitul a fost descris si compilat se realizeaza simularea acestuia:

  1. Din fereastra DesignBrowser se selecteaza tag-ul Structures:

  1. din fereastra afisata in stanga se da click pe numele proiectului (aici de ex. este test):

  1. In campul de jos apar in acest moment toate semnalele din circuitul descris. Se da click dreapta pe unul din semnale iar in meniul contextual care a aparut se selecteaza "Select all". Toate semnalele apar selectate in acest moment:

  1. Se da din nou click dreapta pe unul din semnale si se selecteaza "Add to WaveForm". In acest moment in fereastra principala sunt afisate toate semnalele, ca in figura de mai jos:

  1. Se poate observa ca sunt prezente semnalele care au fost declarate in schema dar si semnale intermediare (conexiuni intre compnente). Cum acestea nu sunt de interes ele pot fi sterse. Pentru a sterge un semnal se da click pe linia corespunzatoare lui si se apasa tasta Delete. De asemenea semnalele pot fi ordonate, mutate apasand pe lina corespunzatoare si tragand cu mouse-ul pe pozitia dorita.
  1. La toate semnalele de intrare se aloca cate un stimul pentru a simula comportamentul circuitului. Astfel in campul Stimulator (campul al treilea) se da dublu click in dreptul semnalului dorit. De exemplu, in figura de mai jos se acceseaza stimulul pentru semnalul DIN:

  1. In acest moment este afisata o fereastra cu stimuli posibili pentru intrare.

In lista Type se selecteaza tipul Stimulului.

De exemplu daca se selecteaza stimul de tip Clock se va genera un semnal periodic cu frecventa configurabila din fereastra:

Daca se selecteaza HotKey se va permite generarea de semnale aperiodice, starea intrarii se schimba la apasarea tastei. Tasta este selectabila:

Se apasa Apply pentru fiecare intrare setata cu un stimul iar in final Close.

  1. Pentru rularea simularii se apasa butonul corespunzator. :

Simulatorul va rula un interval de timp selectat din lista de langa buton.

Pentru simulare se folosesc urmatoarele butoane:

Rulare un pas pentru un interval de timp setat

Oprire simulator

Repornire simulare

Pentru stergerea formelor de unda se apasa click dreapta pe fereastra cu formele de unda si se selecteaza "Clear All Waveforms after Cursor".

Sinteza si implementarea circuitelor folosind mediul ActiveHDL. Descarcarea fisierului de configuratii in FPGA

Dupa crearea proiectului, descrierea circuitelor si simularea lor se va afisa fereastra principala a proiectului (se selecteaza tag-ul design flow sau din meniu View - Flow).

  1. Se apasa butonul Options din dreptul icoanei Synthesis (din fereastra principala)

  1. In fereastra Synthesis Options se va selecta la Top-level Unit numele fisierului care contine circuitul care se doreste implementat daca se lucreaza in editorul Schematic sau numele entitatii circuitului care se doreste implementat daca se lucreaza in VHDL.
  2. La Family se alege Spartan 3,    Device: 3s400fg456 si Speed Grade: -4. Se apasa OK pentru a inchide fereastra si pentru a valida modificarile.

  1. Se apasa apoi pe icoana Synthesis in fereastra principala a proiectului. Se asteapta sinteza circuitelor si generarea raportului final (in mod normal nu ar trebui sa existe erori sau atentionari daca etapele anterioare au fost parcurse corect). Se apasa Close pentru a inchide fereastra raport.
  2. Se apasa icoana Tools din fereastra principala si apoi se selecteaza, din lista de aplicatii pictograma PACE. Va porni aplicatia PACE din Xilinx care permite editarea constrangerilor (asocierea pinilor).

  1. Se selecteaza File - Open din meniu. Va fi afisata fereastra:

Se apasa in dreptul lui Design File butonul Browse si se cauta fisierul .vhd al circuitului care se doreste implementat. Daca circuitul a fost realizat cu editorul schematic atunci fisierul .vhd cu acelasi nume cu al fisierului schematic se afla in subdirectorul Compile in directorul unde se afla proiectul. Daca circuitul a fost descris folosind limbajul VHDL atunci fisierul .vhd se va afla in subdirectorul SRC din directorul unde se gaseste proiectul. Automat, in campul Constraints File va aparea calea catre fisierul de constrangeri .ucf. Aceasta cale trebuie notata pentru urmatorul pas! Se apasa OK.

  1. In fereastra Part Selector se fac selectiile ca in figura (caracteristicile circuitului FPGA disponibil pe macheta). Se apasa OK

  1. Se introduc conexiunile pinilor, in campul Loc, conform schemei dorite, si sunt apoi salvate constrangerile. Se da OK la fereastra care este afisata. Se inchide editorul de constrangeri.

  1. In fereastra principala se apasa butonul Options din dreptul icoanei Implementation

In fereastra Implementation Options se fac urmatoarele setari: Device - 3s400fg456,

Speed Grade -- -4, se debifeaza optiunea Use default UCF file iar apoi, prin actionarea

butonului Browse din dreptul optiunii se cauta calea unde a fost generat fiserul de

constrangeri .ucf (de obicei aceeasi cu cea a fisierului rezultat al sintezei). Se bifeaza Generate Programming File.

  1. Se da OK si se asteapta sfarsitul implementarii si generarii fisierului de configuratii. Se revine in fereastra principala ActiveHDL si se apasa icoana Analysis. Din lista aparuta se selecteaza iMPACT. Se conecteaza macheta. La pornirea aplicatiei, in fereastra iMPACT Project se va selecta Create a new project.

  1. Se da Next la ferestrele care apar apoi, lasand optiunile implicite. La fereastra Boundary - Scan Chain Contest Sumary se va da OK. Se va cauta fisierul cu extensia .bit generat la pasul anterior. El are acelasi nume cu al fisierului sursa ce contine circuitul descris si se gaseste in subdirectorul implementver1rev1 al proiectului. Se apasa OK la fereastra de atentionare care este apoi afisata.

  1. Se da click dreapta pe pictograma cu chip-ul Xilinx care e afisata si apoi se selecteaza Program. In fereastra care a aparut se apasa OK, fara a se bifa nimic si se asteapta incarcarea programului.

Prezentarea machetei de laborator

Implementarea structurilor descrise se face pe macheta de laborator cu FPGA Xilinx Spartan 3, XCS300FG456 -4.

Circuitul FPGA se afla conectat, pe anumiti pini, la mai multe circuite periferice: afisoare LED 7 segmente, LED-uri, butoane, comutatoare, port serial, port VGA etc.

Circuitele periferice utilizate pe parcursul laboratoarelor sunt urmatoarele:

8 circuite butoane - comutatoare reprezentate cu SW_DIP7..SW_DIP0, localizate jos, centru, asa cum este reprezentata schema in figura de mai sus;

6 circuite butoane cu revenire, aflate in centrul machetei, sub afisoarele 7 segmente, reprezentate cu SW_USER5..SW_USER0;

1 circuit buton test-reset aflat in partea dreapta, jos la macheta, SW_TEST;

8 LED-uri aflate deasupra butoanelor - comutatoare LED7..LED0;

6 afisoare 7 segmente fiecare aflate in partea centrala a machetei: DIG0..5SEG0..7.

Ordinea in care au fost declarate circuitele este de la stanga la dreapta (exemplu LED0 este led-ul din partea stanga).

Pentru a putea lucra cu aceste periferice, porturile logice din circuitul prelucrat trebuie asociate cu pinii fizici ai FPGA-ului conectati la circuitele periferice.

De exemplu, daca avem urmatorul circuit logic:

Porturile sw0 si sw1 sunt porturi logice si ele trebuie conectate la comutatoarele sw0 si sw1 de pe macheta. Pentru aceasta trebuie cunoscut care pini fizici ai FPGA-ului sunt conectati la cele doua comutatoare. In tabelul de mai jos sunt dati toti pinii fizici corespunzatori circuitelor periferice de pe macheta utilizati pe parcursul laboratoarelor:

Denumirile pinilor corespund cu denumirile acestora pe macheta.

Pin schema macheta

Pin fizic FPGA

sw_dip0

y6

sw_dip1

v6

sw_dip2

u7

sw_dip3

aa4

sw_dip4

ab4

sw_dip5

aa5

sw_dip6

ab5

sw_dip7

aa6

sw_user0

d1

sw_user1

c1

sw_user2

b6

sw_user3

a15

sw_user4

b20

sw_user5

c21

led0

w2

led1

y1

led2

y2

led3

y3

led4

w4

led5

w5

led6

y5

led7

w6

dig0_seg0

c6

dig0_seg1

b8

dig0_seg2

e7

dig0_seg3

c5

dig0_seg4

e6

dig0_seg5

b5

dig0_seg6

a4

dig1_seg0

b10

dig1_seg1

a12

dig1_seg2

c10

dig1_seg3

a9

dig1_seg4

b9

dig1_seg5

a10

dig1_seg6

e9

dig2_seg0

e15

dig2_seg1

e16

dig2_seg2

a14

dig2_seg3

d14

dig2_seg4

d13

dig2_seg5

b13

dig2_seg6

e13

dig3_seg0

b17

dig3_seg1

b18

dig3_seg2

a18

dig3_seg3

b15

dig3_seg4

d17

dig3_seg5

c17

dig3_seg6

e17

dig4_seg0

d19

dig4_seg1

f18

dig4_seg2

c20

dig4_seg3

c19

dig4_seg4

c18

dig4_seg5

b19

dig4_seg6

d18

dig5_seg0

f19

dig5_seg1

g17

dig5_seg2

e19

dig5_seg3

d21

dig5_seg4

d20

dig5_seg5

e18

dig5_seg6

c22

Cerinte laborator:

1. Sa se identifice circuitele periferice de pe macheta

2. Parcurgand etapele descrise mai sus sa se proiecteze, simuleze si implementeze un circuit de adunare a trei numere pe un bit (sumator complet pe un bit) avand schema de mai jos.

2.a. Se va crea proiectul. Se va descrie circuitul prezentat in figura de mai jos.

2.b. Se va realiza simularea astfel: pe portul se va conecta ca stimul un semnal de ceas cu frecventa 8 MHz. Pe portul B se va conecta ca stimul un semnal de ceas cu frecventa 4 MHz. Pe portul C se va conecta ca stimul tasta C. Se va simula comportamentul circuitului pentru C=0 si C=1 trecand prin toate starile intrarile A si B.

2.c. Se va realiza sinteza si implementarea circuitului pe macheta FPGA conectand porturile logice ca in tabelul de mai jos:

Port logic

Circuit macheta

a

sw_dip0

b

sw_dip1

ci

sw_dip2

s

led0

co

led1

2.d. Se va descarca programul si se va opera cu el pe macheta.

Criterii de evaluare:

2P

2a

3P

2b

4P

2c

3P

2d

2P



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1630
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