Sunteți pe pagina 1din 30

LABORATOR 1 PROIECTAREA CIRCUITELOR SECVENIALE SINCRONE

1. Prezentarea teoretic
n cadrul acestei lucrri de laborator se va prezenta metodologia de proiectare a unui circuit secvenial sincron. Pentru a putea ajunge la circuitul final, sunt utilizate diagrame Karnaugh-Vength. Implementarea este realizat cu ajutorul utilitarului Schematic. Acest utilitar face parte din suita Xilinx WebPACK ISE 10.1. Calculatoarele sunt construite din circuite integrate. Aceste circuite conin elemente de comutare ce poart denumirea de pori. Porile elementare sunt: I, SAU, I -NU, SAU-NU i NOT. Circuitele simple pot fi realizate prin combinarea direct a porilor individuale.

Circuitele mai complexe sunt: multiplexoare, codificatoare, circuite de deplasare i uniti aritmetico-logice. n 1975, Ron Cline de la Signetics (companie preluat mai trziu de Philips i n cele din urm de Xilinx) a avut ideea introducerii a dou plane de programare. Cu ajutorul celor dou plane de programare, aa cum se poate observa n figura 1.1, se poate realiza orice circuit descris printr-o combinaie de pori I i SAU. Aceste dispozitive s-au numit dispozitive PLA (Programmable Logic Array). MMI, preluat apoi de AMD, a modificat arhitectura descris mai sus i a rezultat PAL (Programmable Array Logic). A urmat apoi PLD (Programmable Logic Device), dar care nu a avut succesul comercial al arhitecturilor PLA sau PAL. Toate circuitele prezentate mai sus fac parte din categoria SPLD (Simple PLD). Urmtoarele circuite logice aprute sunt CPLD (Complex Programmable Logic Device ). Acestea se ncadreaz din punct de vedere al complexitii ntre PAL i FPGA (care vor fi prezentate ulterior) i au preluat caracteristici de la amndou din punct de vedere arhitectural. Blocul din care este alctuit un CPLD este o macro-celul care conine o logic ce implementeaz expresii n forma normal disjunctiv, precum i operaii logice specializate.

Dispozitivele CPLD posed o serie de caliti, care le fac utilizabile nc i n prezent: ofer cea mai simpl cale de implementare a unui proiect. costuri de dezvoltare reduse. modificarea uoar a circuitelor proiectate. aria de implementare este redus.

n 1985, Xilinx a introdus un nou concept, FPGA (Field Programmable Gate Array). Ariile de Pori Programabile (FPGA) reprezint structuri bidimensionale formate din blocuri logice (CL) i din bistabile (FF). Aceste structuri sunt controlate n totalitate de ctre utilizator, acesta putnd proiecta, programa i modifica un circuit atunci cnd este necesar. Un circuit FPGA poate conine peste 10 milioane de pori.

Circuitele FPGA sunt de dou tipuri: SRAM FPGA OTP (One Time Programable) FPGA Diferenele ntre acestea sunt date de modul n care sunt realizate celulele logica i de mecanismul utilizat pentru realizarea conexiunilor din cadrul circuitelor. Circuitele OTP folosete pori logice tradiionale, iar cele SRAM folosesc LUT (Look Up Table). De asemenea trebuie menionat c piaa este dominat de ctre SRAM FPGA.

Figura de mai jos prezint blocul logic utilizat de familia de circuite FPGA Xilinx Seria 4000. Se poate observa c ieirea tabelei asociative cu 4 intrri poate fi transmis direct la ieire sau stocat n prealabil ntr-un bistabil.

FPGA-urile au aprut ca o alternativ pentru circuitele la cerere i au dus la mrirea densitii de circuite de circa 10 ori n raport cu soluia SSI/MSI, precum i la reducerea costurile de dezvoltare Conform legii lui Moore, densitatea FPGA-urilor, adic numrul de pori pe suprafa a crescut ntre anii 1980-1990, pn n punctul n care funciile importante de prelucrare a datelor au fost implementate direct ntr-un singur circuit FPGA.

2. Circuite secveniale sincrone


Definiie: Sistemele digitale n a cror componen exist elemente de memorie precum i elemente logice combinaionale se numesc circuite secveniale. Ieirea unui circuit secvenial este o funcie de intrrile externe ale acestuia i de starea sa intern la momentul respectiv de timp. Starea este determinat de elementele de memorie i este o funcie de strile anterioare i de intrrile circuitului. C ircuitele secveniale sunt de dou tipuri: si n crone i asincrone. Comportarea unui circuit asincron depinde de ordinea n care se modific semnalele de intrare, aceste modificri putnd aprea la orice moment de timp. Instanele de timp discrete ntr-un circuit sincron sunt determinate de un semnal de control, uzual denumit ceas . n cadrul circuitelor secveniale sincrone, elementele de memorare sunt reprezentate de bistabile. Un bistabil este un circuit electronic care memore az 1 sau 0 pn la apariia frontului de ceas. Mai jos sunt prezentate simbolurile Xilinx pentru bistabilele D, JK I T, mpreun cu tabelele lor de excitaie.

a)

c)

b)

Pentru a proiecta un circuit secvenial asincron, se urmeaz o procedur clasic descris prin paii de mai jos:
1. se construiete diagrama logic a problemei n funcie de cerinele acesteia 2. se determin numrul de bistabile necesare p, pornind de la numrul de stri ale di agramei stabilite anterior l; se utilizeaz formula: 2 p - 1 < n < 2p , unde n reprezint numrul de stri; 3. se asigneaz cte o etichet de lungime p bii pentru fiecare stare; 4. se construiete tabela strilor de tranziie i tabela de ieire; 5. se determin o tabel de intrare pentru fiecare bistabil, utiliznd tabelele de excitaie prezentate mai sus 6. se determin ecuaiile de intrare pentru fiecare intrare a bistabilelor ce compun circuitul secvenial sincron; 7. se deseneaz diagrama circuitului.

3. Problema propus
Pentru a putea exemplifica procedura descris mai sus, se consider urmtorul exemplu practic. Se dorete proiectarea unui automat pentru buturi rcoritoare. Pentru a simplifica problem, se consider c se poate elibera un singur tip de butur rcoritoare. Aceasta cost 3 RON. Automatul accept bancnote de 1, 5 , respectiv 10 RON i elibereaz rest dac s-a introdus o sum mai mare dect preul buturii. Se presupune c exist un mecanism pentru sortarea banilor i care emite trei semnale, cte unul pentru fiecare tip de bancnot. Semnalele determin tranziia automatului dintr-o stare n alta.

Diagrama logic a problemei

Determinarea numrului de bistabile

n diagrama de mai sus se observ c numrul de stri este 7. Deoarece 23 este prima putere a lui 2 mai mare dect 7, rezult c vor fi necesare 3 bistabile. Bistabilele utilizate n implementare sunt bistabile de tipul D. Ele vor fi numerotate D0, D1 ,D2 , iar tabela de excitaie utilizat este corespunztoare bistabilului de tip D. Codificarea strilor

Strile sunt codificate astfel: A B C D E F G 000 001 010 011 100 101 110

Tabela strilor de tranziie i tabela de ieire

Urmtorul tabel poate fi dedus din analiza diagramei logice a problemei. Tabelul conine urmtoarele codificri: Semnalele care se activeaz atunci cnd o bancnot de 1, 5, respectiv 10 RON este introdus n automat Semnalele care se activeaz atunci cnd o bancnot de 1, respectiv 5 RON trebuie returnat de ctre aparat. Semnal care se activeaz atunci cnd o sticl de butur trebuie eliberat de ctre automat

Stare iniial A - 000 B F G A B - 001 C E F B C - 010 D E A C D - 011 F - 101 G - 110 E G A

Stare Final 001 101 110 000 010 100 101 001 011 100 000 010 100 110 000

Condiii

Comenzi

& &

& &

& &

-------

Tabele K-V pentru intrrile bistabilelor n acest pas se elaboreaz tabelele K-V de minimizare pornind de la tabelul de mai sus i tabelul de excitaie pentru bistabilul D. Rezultatul obinut este prezentat n cele ce urmeaz. Urmtoarea tabel este valabil pentru bistabilul 3, corespunztor intrrii D2.

Bistabilul D2 00 0 1 + 01 + 11 10

1 * 0

Acum vom reaminti modul n care se minimizeaz o diagram care conine i variabile externe. Acest lucru se realizeaz n doi pai: a) Se egaleaz cu 0 toate variabilele externe i se minimizeaz ca o diagram K-V obinuit b) Pe rnd, se face fiecare variabil extern egal cu 1. Unitile se iau egale cu 1 dac ne convine. Se minimizeaz i rezultatul se nmulete cu variabila extern.

K-V obinut pentru primul pas:

00 0 1

01

11

10

0 1

0 1

1 *

0 0

Dup primul pas se obine:

Apoi, pentru fiecare variabil extern, se obine:

Rezultatul obinut n urma minimizrii tabelei K-V este:

Bistabilul D1

00 0 1

01

11

10 +

0 0 1 * 0

K-V obinut pentru primul pas:

00 0 1

01

11

10

0 0

0 1

0 *

0 0

Dup primul pas se obine:

Apoi, pentru fiecare variabil extern, se obine:

Rezultatul obinut n urma minimizrii tabelei K-V este:

Bistabilul D0

00 0 +

01 +

11

10

0 * 0

K-V obinut pentru primul pas:

00 0 1

01

11

10

0 1

0 0

0 *

0 0

Dup primul pas se obine:

Apoi, pentru fiecare variabil extern, se obine:

Rezultatul obinut n urma minimizrii tabelei K-V este:

Tabele K-V pentru semnalele de ieire Pentru fiecare semnal de ieire stabili forma canonic. EB1

se determin cte o tabel K-V cu ajutorul creia se va

00 0 1

01

11

10

1 1 1 * 1

Dup minimizare se obine:

EB2

00 0 1

01

11

10

0 0 0 * 0

Dup minimizare se obine:

ESB

00 0

01

11

10 +

0 0 0 * 0

Dup minimizare se obine:

Desenarea diagramei circuitului Pentru desenarea diagramei circuitului se folosete o procedur destul de laborioas care va fi prezentat n paragrafele urmtoare.

4. Implementarea unui circuit secvenial folosind Xilinx ISE 10.1


Xilinx WebPACK ISE 10.1 reprezint o soluie de proiectare a sistemelor numerice deosebit de complex. Aceasta integreaz pachete software pentru proiectarea cu ajutorul circuitelor FPGA sau CPLD, utiliznd, n acest scop programe proprietare i industriale. Cu ajutorul pachetului software ISE 10.1 se poate proiecta, testa i implementa o aplicaie ntr-un timp foarte scurt. Dup ce testarea practic a aplicaiei, ce se realizeaz cu ajutorul circuitelor FPGA sau CPLD, demonstreaz o funcionare corect, se poate trece la implementarea n serie a structurii numerice respective, sub forma unui circuit specializat (ASIC). Cu ajutorul mediului ISE 10.1 pot fi realizate urmtoarele operaii: 1. Crearea de cod surs n limbajul Verilog sau VHDL; 2. Generarea automat de cod pentru circuite combinaionale, circuite secveniale i memorii; 3. Verificarea, din punct de vedere sintactic, a codului elaborat;

4. Simulare comportamental i la nivel ul transferurilor ntre registre a proiectului sau numai a unor module ale proiectului; 5. Sintez; 6. Plasarea i rutarea proiectului ntr-un FPGA sau CPLD selectat de ctre proiectant; 7. Analiza timpilor de execuie i de comutare ai circuitului proiectat; 8. Impunerea de constrngeri de tipul arie sau constrngeri de tipul timp asupra circuitului proiectat; 9. Configurarea circuitului proiectat. Fereastra principal a aplicaiei se numete Project Navigator i este mprit n cinci seciuni principale dup cum se poate observa n figura 7.

Figura 1 Fereastra principal a aplicaiei

Prima seciune Bar de meniuri este folosit pentru: 1. Creare sau deschidere de proiecte; 2. Creare sau deschidere de fiiere sursa; 3. Setarea anumitor parametri de funcionare pentru diferitele utilitare cuprinse n pachetul software ISE 10.1. n cea de a doua seciune principal - Fiiere surs sunt vizibile toate fiierele surs din cadrul proiectului. Fiierele sunt prezentate sub forma unei ierarhii pentru a se putea selecta uor i rapid orice fiier surs din cadrul proiectului. Tot n acesta seciune sunt prezentate i relaiile dintre fiiere . n seciunea a treia Procese sunt prezentate toate procesele utilizate n crearea i implementarea unui proiect. Aceste procese sunt: o o o o Verificarea sintaxei codului HDL; Sinteza i elaborarea proiectului; Introducerea de constrngeri asupra proiectului; Verificare RTL;

o o o o

Plasarea i rutarea modulelor proiectului; Analiza timpului; Simularea proiectului n timp i afiarea formelor de und; Planificarea proiectului n circuitul FPGA/CPLD i definirea de contrngeri de tip arie; Configurarea dispozitivului.

Fiecare proces are o list de parametri care pot fi modificai n funcie de cerinele proiectului, nainte de a rula procesul. Pentru a putea modifica parametrii unui proces, se selecteaz procesul dorit i cu ajutorul butonului dreapta al mouse-ului se deschide fereastra care conine parametrii procesului. Seciunea a patra Transcript este dedicat vizualizrii progreselor realizate de fiecare proces implicat n realizarea circuitului FPGA/CPLD. Tot n aceast seciune mai pot fi vizualizate mesajele de eroare sau de atenionare generate de fiecare proces, precum i fiierul de comand. Ultima seciune, Editare/Vizualizare cod surs VHDL/Verilog , este destinat vizualizrii sau editrii de fiiere surs utilizate n cadrul proiectului. n aceast seciune vor fi deschise spre consultare i fiierele de tip raport, care sunt generate la terminarea fiecrui proces prezentat n seciunea Procese .

Procesele prezente n seciunea Proces sunt afiate n ordinea n care ele sunt programate spre execuie. Proiectarea unui circuit n vederea implementrii, n Xilinx ISE, presupune crearea unui proiect. Pentru a putea proiecta un circuit de dimensiuni mari, se recomand utilizarea tehnicii top-down. n acest fel circuitul este descompus n module. Modulele care alctuiesc proiectul pot fi realizate utiliznd fie un limbaj de programare HDL, fie folosind utilitarul Schematic, n cele ce urmeaz se vor prezenta toate procesele implicate n proiectarea, sinteza i implementarea unui circuit digital. Cu ajutorul pachetului software WebPACK ISE, proiectele diverselor circuite pot fi introduse foarte uor i rapid utiliznd limbaje de descriere cum sunt VHDL sau Verilog sau utiliznd utilitarul Schematic . Acest utilitar folosete metoda tradiional de proiectare, utiliznd biblioteci de pori logice i circuite logice programabile. Marele dezavantaj al acestei metode este faptul c proiectul rezultat este dependent total de tehnologia i circuitul FPGA ales la nceputul proiectrii. Un alt dezavantaj major l constituie faptul c circuitele elaborate cu acest utilitar nu mai respect conceptul de reutilizare. Acest concept este deosebit de important n industrie, unde un circuit odat proiectat este folosit pentru orice platform sau circuit FPGA/CPLD existent. Acest concept este valabil pentru circuitele proiectate folosind limbaje de descriere hardware cum sunt VHDL sau Verilog.

Proiectarea unui circuit cu ajutorul utilitarului Schematic presupune parcurgerea urmtorilor pai: 1. Stabilirea circuitului i a familiei de circuite FPGA/CPLD utilizate n imple mentarea circuitului proiectat. Din meniul File se selecteaz opiunea New Project . Aici se alege un nume pentru proiect, spre exemplu laboratorl. n fereastra deschis se selecteaz opinea Schematic i se introduce un nume pentru circuitul proiectat, spre exemplu soft-drink. Se execut Next. Apare o fereastr n care se trec proprietile plcuei FPGA folosite: Product category: All Family: Spartan 3 Device: XC3S400 Package: FT256 Speed: -5 Simulator: ISE Simulator (VHDL/Verilog) Preferred Language: Verilog (sau VHDL) Apoi se execut Next la urmtoarele ferestre i Finish.

2. Din meniu, se alege Project, New Source i apare lista cu toate utilitarele oferite de Xilinx. De aceast dat selectm Schematic i dm un nume fiierului schematic care se deschide. Dac toate operaiile au fost realizate cu succes, atunci o pagin nou de lucru, ca n figura 8, devine disponibil pentru a realiza circuitul dorit, utiliznd doar circuitele din bibliotec. n figura 8 sunt prezentate doar cteva din opiunile disponibile. Restul opiunilor pot fi uor descoperite dac sgeata mouse-ului este mutat deasupra opiunii dorite. 3. Proiectarea circuitului dorit utiliznd doar circuite componente ale bibliotecii. Circuitul proiectat va conine trei bistabile D precum i logica aferent implementrii ecuaiilor. Este important pentru simulare ca proiectul s conin porturile de intrare i de ieire. nainte de a trece la pasul urmtor, se verific dac implementarea este corect. Pentru aceasta se alege opiunea Check Schematic din meniul Tools.

Figura 2 Mediul de proiectare Schematic

4. naintea implementrii n FPGA, proiectul trebuie simulat cu ajutorul simulatorului ISE Simulator.

5.Crearea unui modul Main de stri (State Machine)


Cu ajutorul editorului de diagrame de stri se pot crea maini de stri finite. Acestea cuprind strile, intrrile, ieirile i condiiile de tranziie dintr-o stare n alta. Condiiile de tranziie i aciunile strilor sunt introduse n diagram folosind un limbaj independent de sintax. Editorul de diagrame de stri este folosit apoi pentru a exporta diagrama n limbaj VHDL, Verilog sau ABEL. Pentru a deschide o diagram nefinalizat sau care se dorete a fi modificat se adaug fiierul my_diag.dia proiectului. Se selecteaz Project > Add Source i se selecteaz fiierul dorit. Pentru a vizualiza diagrama se apas dublu-click pe fiierul my_diag.dia din tab-ul Sources.

Figura 3 Diagram de stare

Aceast diagram a mainii de stri prezint diferite caracteristici: Ovalele reprezint diferite stri. Expresiile negre reprezint condiiile de tranziie i definesc modul n care se trece dintr -o stare n alta. Expresiile de ieire pentru fiecare stare se gsesc n ovalele care reprezint strile sau sub condiiile de tranziie, fcnd parte din tranziii Condiiile de tranziie i aciunile strilor sunt scrise n limbaj independent de sintax.

Adugarea unei noi stri

Pentru a aduga o nou stare:

1. Se apas icoana Add State

din toolbar-ul vertical. Noua stare este ataat cursorului.

2. Se plaseaz noua stare ntr-un loc favorabil n cadrul diagramei. 3. Se apas mouse pentru a definitiva locul acesteia n cadrul diagramei. Numele default al strii este STATEi. 4. Se apas dublu-click pe STATEi i se schimb numele acesteia n numele dorit, de exemplu IDLE. 5. Se apas OK. Pentru a schimba forma unui oval care reprezint o stare se apas click pe unul dintre cele patru ptrele care nconjoar starea i se ndreapt n direcia n care se dorete s se realizeze deformarea.

Figura 4 Adugarea unei noi stri

Adugarea unei tranzi ii

O tranziie definete trecerea dintr-o stare n alta. Tranziiile sunt reprezentate printr-o sgeat. Pentru exemplificare se va aduga o tranziie de la starea nou creat la o starea existent, de exemplu cea mai apropiat de aceasta. Deoarece tranziia este necondiionat, nu se va ataa nici o condiie acesteia. 1. Click pe icoana Add Transition n toolbar-ul vertical.

2. Click pe starea IDLE pentru a ncepe tranziia. 3. Click pe starea alturat pentru a finaliza tranziia i deci sgeata. 4. Pentru a manipula forma sgeii se apas click i se ndrept spre direcia dorit. 5. Se apas click pe Select Objects pentru a iei din modul de desenare a tranziiilor.

Figura 5 Adugarea unei tranziii necondiionate

Adugarea unei ac iuni unei stri

Aciunea unei stri determin ieirea pentru o anumit stare. Pentru starea IDLE, rst va lua valoarea 1 la ieire. Se vor executa urmtorii pai: 1. Dublu-click pe starea IDLE 2. Se selecteaz butonul Output Wizard
Figura 6 Editarea unei stri

3. n Logic Wizard se introduc urmtoarele valori: DOUT = rst ; CONSTANT=1 4. Se apas OK i n mod similar se introduce fiecare valoare. 5. Se apas Ok pentru a iei din Edit State. Ieirea a fost adugat strii.

Figura 7 adugarea unei valori de ieire

Figura 8 Stare cu ieire asignat

Figura 9 Editare stare dup ce a fost asignat o ieire

Adugarea un condi ii de reset pentru maina de stri

Caracteristica Reset a mainii de stri specific o condiie de reset. Maina se afl iniial n acea stare i se ntoarce n aceast stare ori de cte ori este ntlnit condiia de reset. Se va aduga o condiie de reset strii IDLE.

1. Click pe icoana Add Reset

n toolbox-ul vertical.

2. Se apas click pe diagram, aproape de starea IDLE. 3. Cursorul este aignat automat tranziiei. Apoi se apas click pe starea IDLE. 4. La ntrebarea Should this reset be asynchronous(Yes) or synchronous (No)?, rspunsul este Yes.

Figura 10 Stare cu condiie de reset

Crearea fiierului de ieire HDL pentru o main de stri

1. Se selecteaz Options > Configuration. 2. n seciunea Language se selecteaz Verilog sau VHDL, dup cum se dorete. 3. n seciunea Language Vendor se selecteaz Xilinx XST. 4. Se apas OK. 5. Pentru a genera un fiier HDL, se selecteaz icoana Generate HDL din toolbox. 6. Apare o fereastr Result n care este afiat statusul compilrii. Se apas OK. 7. Fiierul HDL generat este deschis n browser. Poate fi nchis dup ce este analizat. 8. Se salveaz schimbrile alegnd File > Save.

6. Simulare comportamental
Adugarea unui Test Bench HDL

n continuare se va prezenta modul n care se adaug un fiier de test bench existent proiectului. Un test bench VHDL i un test fixture Verilog sunt detaliate n acest tutorial. Pentru a crea propriul fiier test bench n ISE, se selecteaz Project > New Source i se selecteaz fie VHDL Test Bench, fie Verilog Text Fixture n New Source Wizard. Un fiier gol este adugat proiectului. Test bench-ul se definete ntr-un editor de text. Simulare VHDL

Dup ce fiierul se afl n directorul proiectului, se adaug test bench-ul VHDL proiectului: 1. Se selecteaz Project > Add Source. 2. Se selecteaz fiierul de test bench test.vhd. 3. Se apas Open. 4. n Choose Source Type se selecteaz VHDL Test Bench File. 5. Se apas OK. ISE recunoate fiierul top-level design asociat fiierului de test bench i adaug test bench-ul n ordinea corect. Simulare Verilog

Dup ce fiierul se afl n directorul proiectului, se adaug test fixture-ul Verilog proiectului: 1. Se selecteaz Project > Add Source. 2. Se selecteaz fiierul test.v. 3. Se apas Open. 4. n Choose Source Type se selecteaz Verilog Test Fixture File. 5. Se apas OK. ISE recunoate fiierul top-level design asociat fiierului de test fixture i adaug test fixture -ul n ordinea corect.

Simulare comportamental folosind ModelSim

n momentul n care un test bench a fost adugat n proiect, se poate efectua simulare comportamental folosind simulatorul ModelSim. ISE se integreaz complet cu simulatorul ModelSim. ISE permite ModelSim s creeze un director de lucru, s compileze fiierele surs, s ncarce design-ul i s execute simulare n funcie de proprietile acesteia. Fie c se utilizeaz ModelSim, fie ISE Simulator, rezultatul final trebuie s fie acelai. Pentru a selecta ModelSim ca fiind simulatorul proiectului: 1. n tab-ul Sources, se apas click-dreapta pe linia de dispozitiv aleas. 2. Se selecteaz Properties. 3. n zona Simulator din fereastra Project Properties, se selecteaz tipul de ModelSim i limbajul HDL folosit. Localizarea proceselor de simulare

Procesele de simulare n ISE permit ca simularea s fie rulat folosind ModelSim. Pentru a localiza procesele simulatorului ModelSim: 1. n tab-ul Sources, se selecteaz Behavioral Simulation. 2. Se selecteaz fiierul de test bench. 3. n tab-ul Processes, se apas click pe simbolul + de lng ModelSim Simulator pentru a expanda ierarhia de procese. Dac procesul simulatorului ModelSim nu apare , fie ModelSim nu a fost selectat ca simulatorul proiectului n Project Properties, fie Project Navigator nu poate gsi modelsim.exe. Dac ModelSim este instalat, dar procesele nu sunt disponibile, este posibil ca prefernele n Project Navigator s nu fie setate correct. Pentru a seta locaia ModelSim: 1. Se selecteaz Edit > Preferences. 2. Click pe simbolul + de lng ISE General pentru a expanda preferinele ISE. 3. Click pe Integrated Tools din partea stng. 4. n partea dreapt, sub Model Tech Simulator, se caut locaia fiierului modelsim.exe.

Sunt disponibile urmtoarele procese ale simulrii: Simulate Behavioral Model acest proces ncepe simularea Generate a self-checking HDL test bench acest proces permite generarea unui test bench HDL, echivalent cu un fiier test bench waveform (TBW) Specificarea proprietilor simulrii Se va realiza o simulare comportamental pentru design dup ce au fost setate anumite proprieti pentru simulare. ISE permite setarea diferitelor proprieti ModelSim Simulator. Pentru a vedea i a modifica proprietile simulatorului comportamental, se execut urmtorii pai: 1. n tab-ul Sources, se selecteaz fiierul . 2. Se apas click pe simbolul + din dreptul ModelSim pentru a expanda ierarhia din tab-ul Processes. 3. Se apas click dreapta pe Simulate Behavioral Model. 4. Se selecteaz Properties. 5. n fereastra Process Properties, se seteaz nivelul de afiare la Advanced pentru a putea vedea toate proprietile. 6. Se schimb Simulation Run Time la 2000 ns.

7. Se apas OK. Realizarea de simulri Dup ce proprietile proceselor au fost setate, se poate rula ISE Simulator. Pentru a porni simularea comportamental, se apas dublu click pe Simulate Behavioral Model. ModelSim creeaz directorul de lucru, compileaz fiierele surs, ncarc design-ul i execut simulri n perioada de timp specificat. Majoritate design-urilor ruleaz la 100 Hz i de aceea poate dura destul timp simularea.

Adugarea de semnale Pentru a putea vizualiza semnalele interne n timpul simulrii este necesar s fie adugate n fereastra Wave. ISE adaug automat toate porturile top-level n aceast fereastr. Semnalele adiionale sunt afiate n fereastra Signal n funcie de structura selectat n fereastra Structure. Exist dou metode de baz pentru a aduga semnale n fereastra Simulator Wave: Drag and drop din fereastra Signal/Object. Marcarea semnalelor n fereastra Signal/Object i apoi Add > Wave > Selected Signals. Salvarea simulrii Simulatorul ModelSim permite salvarea listei de semnale n fereastra Wave dup ce au fost adugate noi semnale. Semnalele salvate pot fi deschise cu uurin de fiecare dat cnd simularea este pornit. Pentru a salva lista de semnale: 1. n fereastra Wave, se selecteaz File > Save as. 2. n fereastra Save Format, se redenumete numele default al fiierului. 3. Se apas Save. Dup ce se repornete simularea, se alege File > Load n fereastra Wave pentru a ncrca fiierul. Simulare comportamental folosind ISE Simulator

n momentul n care un test bench a fost adugat n proiect, se poate efectua simulare comportamental folosind ISE Simulator. ISE se integreaz complet cu simulatorul ISE Simulator. ISE permite ISE Simulator s creeze un director de lucru, s compileze fiierele surs, s ncarce design-ul i s execute simulare n funcie de proprietile acesteia. Pentru a selecta ISE Simulator ca fiind simulatorul proiectului: 1. n tab-ul Sources, se apas click-dreapta pe linia de dispozitiv aleas. 2. Se selecteaz Properties. 3. n fereastra Project Properties, se selecteaz ISE Simulator n zona Simulator.

Localizarea proceselor de simulare

Procesele de simulare n ISE permit ca simularea s fie rulat folosind ISE Simulator. Pentru a localiza procesele ISE Simulator:

1. n tab-ul Sources, se selecteaz Behavioral Simulation. 2. Se selecteaz fiierul de test bench. 3. n tab-ul Processes, se apas click pe simbolul + de lng Xilinx ISE Simulator pentru a expanda ierarhia de procese. Sunt disponibile urmtoarele procese ale simulrii: Check Sytax acest proces verific corectitudinea sintaxei din test bench Simulate Behavioral Model acest proces ncepe simularea design-ului Generate a self-checking HDL test bench acest proces permite generarea unui test bench HDL, echivalent cu un fiier test bench waveform (TBW) Specificarea proprietilor simulrii Se va realiza o simulare comportamental pentru design dup ce au fost setate anumite proprieti pentru simulare. ISE permite setarea diferitelor proprieti ISE Simulator. Pentru a vedea i a modifica proprietile simulatorului comportamental, se execut urmtorii pai: 1. n tab-ul Sources, se selecteaz fiierul . 2. Se apas click pe simbolul + din dreptul ModelSim pentru a expanda ierarhia din tab-ul Processes. 3. Se apas click dreapta pe Simulate Behavioral Model. 4. Se selecteaz Properties. 5. n fereastra Process Properties, se seteaz nivelul de afiare la Advanced pentru a putea vedea toate proprietile. 6. Se schimb Simulation Run Time la 2000 ns.

7. Se apas OK.

Realizarea de simulri Dup ce proprietile proceselor au fost setate, se poate rula ISE Simulator. Pentru a porni simularea comportamental, se apas dublu click pe Simulate Behavioral Model. ISE Simulator creeaz directorul de lucru, compileaz fiierele surs, ncarc design-ul i execut simulri n perioada de timp specificat. Majoritate design-urilor ruleaz la 100 Hz i de aceea poate dura destul timp simularea. Adugarea de semnale

Pentru a vedea semnalele n timpul simulrii, acestea trebuiesc adugate n fereatsra Waveform. Semnalele adiionale sunt afiate n fereastra Sim Hierarchy. Crearea unei Test Bench Waveform folosind Waveform Editor

Aceast seciune prezint modul n care poate fi folosit Waveform Editor. Waveform Editor este un instrument pentru crearea de test bench-uri n ISE. El poate fi folosit pentru a introduce stimului n mod grafic sau pentru a genera un test bench VHDL. Sau un test fixture Verilog. Crearea unei surse pentru Test Bench Waveform

n aceast secune se va crea un test bench waveform numai pentru un modul. Waveform Editor poate fi folosit pentru a genera stimuli pentru design-urile top-level de asemenea. Pentru a crea un test bench cu ISE Simulator Waveform Editor: 1. Se selecteaz time_cnt n tab-ul Sources. 2. Se selecteaz Project > New Source. 3. n New Source Wizard, se selecteaz tipul Test Bench Waveform. 4. Se tiprete time_cnt_tb. 5. Se apas Next de dou ori. 6. Se apas Finish. Waveform Editor este deschis n ISE. Se deschide fereastra Initialize Timing i se permite astfel specificarea parametrilor de tmp folosii n timpul simulrii. 7. n fereastra InitializeTiming, se completeaz cmpurile dup cum urmeaz: Clock Time High: 10

Clock Time Low: 10 Input Setup Time: 5 Output Valid Delay: 5 8. Se selecteaz GSR(FPGA) n seciunea Global Signals. 9. Se schimb durata iniial a Test Bench-ului la 3000. 10. Se apas Finish.

Aplicarea de stimuli nWaveform Editor, n celula albastr, se poate aplica o tranziie (high/low). Dimensiunea acestei celule este determinat de ntrzierile pentru Input i Output. Pentru a introduce stimuli de intrare se apas click pe semnale n dreptul perioadei de timp cnd se dorete a face modificarea. Acestea se modific din starea low n starea high.

Se apas icoana Save n toolbar.Noua surs test bench waveform este adugat automat proiectului. Se selecteaz fiierul .tbw din tab-ul Sources. Se apas dublu click pe Generate Self-Checking Test Bench n tab-ul Process. Este generat un test bench coninnd datele de ieire i codul autoverificat. Acesta poate fi folosit pentru a compara datele din cadrul simulrilor ulterioare.

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