Sunteți pe pagina 1din 24

Laborator 1

UNIVERSITATEA PITETI

Programarea structurilor hardware reconfigurabile de tip FPGA cu XILINX ISE

1. SCOPUL LUCRRII n aceast lucrare sunt prezentai paii de lucru n vederea implementrii programelor scrise prin limbajul VHDL pe structura reconfigurabil FPGA de tip SPARTAN 3 cu pachetul software de dezvoltare XILINX ISE. Pe scurt sunt abordate urmtoarele etape: introducerea codului VHDL, simularea i vizualizarea rezultatelor obinute sinteza i implementarea surselor iar n final programarea structurii reconfigurabile. 2. INTRODUCERE TEORETIC Mediul software de proiectare XILINX ISE (Integrated Software Environment) este utilizat n realizarea i implementarea complet a unui proiect pentru structurile programabile de tip XILINX. Componenta software ISE Project Navigator faciliteaz crearea proiectului organizndu-l pe urmtoarele etape: - Descriere proiect. Programatorul are posibilitatea s descrie proiectul prin introducerea de coduri surs HDL (Hardware Description Language) pentru limbajele VHDL, Verilog, Abel sau utiliznd schematice i diagrame cu stri finite; Sinteza. n cadrul acestei etape fiierele de tip VHDL, Verilog sau schematice sunt transformate ntr-un fiiere de tip netlist care sunt acceptate ca fiiere de intrare la etapa de implementare; - Implementarea. Dup sintez, la implementare, proiectul este adaptat i transformat din forma logic digital la forma tehnologic implementabil n structura reconfigurabil aleas; - Verificarea. Poate fi realizat n toate etapele de realizare a proiectului. Utilizarea componentelor software de simulare conduc la verificarea complet a funcionalitii proiectului sau a unor poriuni de proiect. De asemenea pot fi realizate i verificri direct pe circuit dup programarea acestuia; - Configurarea. Dup generarea fiierelor de programare (bitstream file) proiectantul are posibilitatea programrii circuitului reconfigurabil. n timpul procesului de configurare sunt programate interconexiunile structurii FPGA alese. n vederea exemplificrii a implementrii unui modul digital pe o structur de tip FPGA, este ales un exemplu concret.

Laborator 1

UNIVERSITATEA PITETI

2.1. Enun exemplu Sunt descrise etapele de implementare ale unui modul digital numrtor binar pe 4 bii n limbajul VHDL pe sistemul reconfigurabil cu circuitul FPGA de tip SPARTAN3 din cadrul laboratorului. Porturile de intrare/ieire ale modulului digital sunt date n figura urmtoare.

clk
modul_digital

y [7:0]

Acest modul digital va fi verificat n schem electric din figura de mai jos. Aceast schem este o mic parte din schema electric a sistemului reconfigurabil de dezvoltare cu SPARTAN 3:

leduri[0] leduri[1] leduri[2] leduri[3] leduri[4] leduri[5] leduri[6]

w2 y1 y2 y3 w4 w5 y5 w6

LED0 LED1 LED2 LED3 LED4 LED5 LED6 LED7

R117 470

GND
R118 470

GND
R119 470

GND
R120 470

GND
R121 470

GND
R108 470

GND
R110 470

AA12

clk

GND
R122 470

leduri[7]

Spartan 3

GND

FPGA
Not: Consultai schema electric complet a sistemului de dezvoltare i identificai pe aceasta elementele de circuit ale schemei de mai sus. Pinii de interconectare ai structurii FPGA cu modulul digital descris n VHDL sunt scrii cu bold (Y6, Y17, C6, B8, E7 i C5). Primul pas n realizarea acestui modul digital este crearea proiectului.

Laborator 1

UNIVERSITATEA PITETI

2.2. Creare proiect Crearea unui proiect se face prin selectarea File -> New Project. Aceasta va deschide o fereastr care va fi completat dup cum urmeaz:

Project Name se introduce numele proiectului (modul_digital); Project Location se selecteaz directorul n care se dorete salvarea proiectului; Top-Level Module Type este lsat ca fiind de tipul HDL. n acest caz, proiectul se numete modul_digital. Se selecteaz butonul Next dup care apare urmtoarea fereastr:

n vederea completrii proprietilor de mai sus, se selecteaz linia corespunztoare acestora din zona Value i se selecteaz din listele ce vor aprea urmtoarele valori:

Laborator 1

UNIVERSITATEA PITETI

Device Family: Structura reconfigurabil utilizat n cadrul laboratorului este Spartan 3; Device: Va fi introdus codul circuitului utilizat. n acest caz este xc3s400; Package: Se d tipul capsulei i numrul de pini. Spartan-ul folosit are un package de tipul fg456; Speed Grade: viteza de propagare a semnalului de ceas n FPGA este -4; Syntesis Tool: XST[VHDL/Verilog]; Simulator: programul ales pentru simularea i verificarea modulului digital este ISE Simulator; Generated Simulator Language: VHDL.

Toate fiierele proiectului vor fi salvate automat ntr-un subdirector al acestuia. Un proiect poate avea dect un singur fiier HDL de tip top-level (este practic modulul principal, capul ierarhiei, care unete toate celelalte submodule). Modulele digitale pot fi adugate secvenial la proiect pentru a forma o structur ierarhic i modular. Se selecteaz butonul Next dup care apare urmtoarea fereastr:

Se creeaz un fiier surs nou prin selectarea butonului New Source. 2.3. Crearea i introducerea unui fiier surs VHDL n cadrul acestui laborator va fi introdus un program descris n limbajul VHDL. Trebuie creat un fiier VHDL cu extensia *.vhd i completat n editorul programului XILINX. n figura de mai sus se selecteaz butonul New Source pentru a fi introdus un fiier nou. Dac nu se dorete acest lucru ci doar adugarea unor fiiere deja existente, se selecteaz butonul Next. Va apare urmtoarea figur:

Laborator 1

UNIVERSITATEA PITETI

Dup cum se poate vede n figura de mai sus, pot fi create mai multe tipuri de fiiere ce pot fi adugate la proiectul nostru. n acest caz se va selecta un fiier de tip VHDL Module iar la zona de editare File Name se introduce modul_digital. Opiunea Add to project trebuie selectat permanent pentru ca fiierul creat sa fie ataat la proiect. n continuare se selecteaz butonul Next.

n coloana cu numele Port Name sunt introduse numele tuturor pinilor cu direcia specificat n coloana Direction (direcia poate fi input, output, inout). n cazul n care porturile sunt vectori sau magistrale, pe coloanele MSB i LSB se specific dimensiunea acestora. Porturile introduse sunt urmtoarele: clk input y output 7 .. 0

Laborator 1

UNIVERSITATEA PITETI

Dup completarea tuturor porturilor modulului digital, se selecteaz butonul Next i apare fereastra New Source Informaion n care sunt afiate toate datele completate pn n prezent despre proiectul ce urmeaz a fi implementat. Se selecteaz butonul Finish. Se revine n fereastra anterioar dar care are adugat fiierul creat anterior. n continuare se selecteaz butonul Next. Va apare o fereastr n care d posibilitatea proiectantului s adauge proiecte noi. n final, dup o nou selectare a butonului Next va aprea fereastra de mai jos n care sunt afiate toate specificaiile proiectului creat.

Dup care se selecteaz butonul Finish iar fiierul VHDL va aprea n zona Sources in Project din Project Navigator. 2.4. Editarea fiierului VHDL

Laborator 1

UNIVERSITATEA PITETI

Fiierul surs poate fi vizualizat n fereastra Project Navigator. Fereastra n care este afiat fiierul surs poate fi utilizat ca un editor n vederea completrii sau modificrii programului VHDL. Este recomandat ca programul s fie salvat periodic prin comanda File -> Save din meniul principal. Programele VHDL pot fi editate n orice editor de text i ataate la proiect prin comanda Add Copy Source. Programul VHDL va fi completat cu liniile urmtoare de cod surs:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity modul_digital is Port ( clk : in std_logic; y : out std_logic_vector(7 downto 0)); end modul_digital; architecture Behavioral of modul_digital is signal temporar: std_logic_vector(2 downto 0):= (others => '0'); begin process(clk) begin if (clk'event and clk = '1') then temporar <= temporar + '1'; end if; end process; process (temporar) begin case (temporar) is when "000" => y <= "10000001"; when "001" => y <= "01000010"; when "010" => y <= "00100100"; when "011" => y <= "00011000"; when "100" => y <= "00100100"; when "101" => y <= "01000010"; when "110" => y <= "10000001"; when others => y <= (others => '1'); end case; end process; end Behavioral;

Programul este format din doua blocuri. Primul bloc are funcia de numrtor pe 3 bii iar cel de-al doilea este un decodor binar ntr-o form definit de proiectant.

Laborator 1

UNIVERSITATEA PITETI

Legtura dintre blocuri este realizat prin doi regitrii declarai n prima parte a modului digital (y i temporar). Acetia au avantajul c pot pstra valorile salvate pe o perioad nedeterminat de timp. n vederea verificrii corectitudinii codului surs din fiier se va verifica sintaxa acestuia. n cadrul ferestrei Process View se selecteaz Check Syntax. Dup verificare, dac nu exist nici-o eroare va aprea semnul n dreptul acesteia. n caz contrar, erorile vor fi afiate n partea de jos a display-ului n fereastra Console. 2.5. Simularea proiectului Simularea proiectului este necesar pentru verificarea corectitudinii funcionale ale modulelor digitale create. n prima faz simularea se face prin vizualizarea formelor de und a stimulilor de intrare i a semnalelor rezultate la ieirea modulelor digitale. n acest scop este necesar crearea unui fiier de tip Test Bench Waveform urmrind paii de mai jos: - Se selecteaz fiierul surs modul_digital.vhd din fereastra Sources in Project; - Se creeaz o surs nou selectnd Project -> New Source; - n fereastra New Source Window se selecteaz fiierul de tipul Test Bench Waveform i numele este fisier_test; - Se selecteaz butonul Next dup care apare o fereastr Select n care vor aprea fiierele surs editate de proiectant pn n prezent. n cazul nostru este doar modulul modul_digital; - Selectai butonul Next i apoi butonul Finish. n final apare fereastra Initialize timing i se vor face urmtoarele setri: n zona Clock Timing Information se selecteaz frontul de ceas pozitiv Rising Edge, Clock Time High de 10ns, Clock Time Low de 10ns, Input Setup Time este de 5ns, Output setup time este de 5ns iar Initial Offset 200ns. n zona Global Signals se selecteaz GSR(FPGA) i semnalul de ceas, initial, va fi n 1 logic pentru 100ns. Zona Clock Information, se selecteaz un singur semnal de ce ceas Single Clock i se introduce denumirea semnalului cu aceast funcie din programul VHDL. n cazul nostru este semnalul clk. n final, timpul de simulare Initial Length Test Bench va fi setat la 1000ns.

Laborator 1

UNIVERSITATEA PITETI

Dup finalizarea completrii acestui tabel se selecteaz butonul OK dup care apare n Project Navigator fereastra n care semnele de intrare, respectiv de ieire sunt sub form de und.

Aceast fereastr va fi salvat prin comanda File -> Save din meniu. n fereastra Sources in Project va aprea un fiier cu numele fisier_test.tbw. Dup selectarea acestui fiier, fereastra Process View va avea coninutul din figura alturat. Prin selectarea procesului Generate Expeccted Simulation Results se realizeaz simularea funcional n care nu se ine cont de timpii de propagare prin circuit. La acest pas vor fi afiate formele de und ale semnalelor de ieire n funcie de cele a semnalului de ieire. Practic arat funcia pe care ne ateptam s-o realizeze programul realizat de noi.

Laborator 1

UNIVERSITATEA PITETI

Dup terminarea procesului de generare a rezultatelor simulrii va fi afiat urmtorul grafic:

Vizualizarea la nivel de bit a semnalului de ieire se realizeaz prin selectarea semnului + din dreptul acestuia. n mod similar se genereaz simularea comportamental (Simulate Behavioral Model) i simularea dup post procesare (Simulate Port-Place & Route Model). n vederea realizrii modelului final al modulului digital vor fi adugate urmtoarele linii de cod VHDL: - n zona declarativ a arhitecturii se adaug linia signal semaf :std_logic; - se modific adaug urmtoarele procese:
process(clk) variable cont_temp:std_logic_vector(23 downto 0); begin if (clk'event and clk = '1') then semaf <= '0'; cont_temp := cont_temp+1; if (cont_temp = x"FAF080") then cont_temp := x"000000"; semaf <= '1'; end if; end if; end process; process(clk) begin if (clk'event and clk = '1') then if semaf = '1' then temporar <= temporar + '1'; end if; end if; end process;

Programul final este urmtorul:

10

Laborator 1 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity modul_digital is Port ( clk : in std_logic; y : out std_logic_vector(7 downto 0)); end modul_digital;

UNIVERSITATEA PITETI

architecture Behavioral of modul_digital is signal temporar: std_logic_vector(2 downto 0):= (others => '0'); signal semaf :std_logic; begin process(clk) variable cont_temp:std_logic_vector(23 downto 0); begin if (clk'event and clk = '1') then semaf <= '0'; cont_temp := cont_temp+1; if (cont_temp = x"FAF080") then cont_temp := x"000000"; semaf <= '1'; end if; end if; end process; process(clk) begin if (clk'event and clk = '1') if semaf = '1' then end if; end if; end process;

then temporar <= temporar + '1';

process (temporar) begin case (temporar) is when "000" => y <= "10000001"; when "001" => y <= "01000010"; when "010" => y <= "00100100"; when "011" => y <= "00011000"; when "100" => y <= "00100100"; when "101" => y <= "01000010"; when "110" => y <= "10000001"; when others => y <= (others => '1'); end case; end process; end Behavioral;

11

Laborator 1

UNIVERSITATEA PITETI

2.6. Crearea i editarea constrngerilor n orice proiect este necesar utilizarea constrngerilor n vederea respectrii cerinelor referitoare la timpii de propagare, arie i atribuirea pinilor. n acest scop sunt posibile trei tipuri de constrngeri. Constrngeri referitoare la domeniul timp Minimal, fiecrui proiect trebuie s i se specifice constrngeri referitoare la perioada semnalului de ceas i a timpului de offset n vederea respectrii vitezei de lucru a circuitului. Paii de realizare a unui fiier de constrngeri sunt urmtorii: - Se selecteaz fiierul surs modul_digital din fereastra Sources in Project. n fereastra Process for Source vor aprea procesele corespunztoare; - Se expandeaz grupul User Constraints n fereastra Process for Source i se selecteaz procesul Create Timing Constraints. Software-ul Xilinx ISE ruleaz automat sinteza i creeaz automat un fiier de tip UCF (User Constraints File). Dac apare un mesajul

va fi selectat butonul Yes pentru ca fiierul UCF s fie ataat la proiect. n final, va aprea editorul de constrngeri . n fereastra Global a editorului de constrngeri vor fi introduse urmtoarele valori: Period - 10ns, Pad to Setup - 5ns i Clock to Pad - 5ns.

12

Laborator 1

UNIVERSITATEA PITETI

Se salveaz acest fiier prin comanda File ->Save dup care se nchide editorul de constrngeri. Atribuirea pinilor n plus este necesar adugarea constrngerilor fizice referitoare la pinii structurii reconfigurabile. Prin aceasta sunt realizate asocierile dintre porturile modulului digital declarate n entitate i pinii circuitului de tip FPGA utilizat. n cazul nostru vor fi introduse urmtoarele constrngeri: clk y[0] y[1] y[2] y[3] y[4] y[5] y[6] y[7] -> -> -> -> -> -> -> -> -> aa12 w2 y1 y2 y3 w4 w5 y5 w6

Crearea unui astfel de fiier se face prin selectarea procesului Assign Package Pins n grupul User Constraints. Programul Xilinx Pinout and Area Constraints Editor (PACE) se va deschide automat.

13

Laborator 1

UNIVERSITATEA PITETI

Dup completarea acestuia selectai File -> Save. La apariia unei casete de atenionare se selecteaz XST Default <> i apoi butonul OK. n final se nchide editorul. 2.7. Sinteza proiectului Dup ce proiectul a fost completat, verificat i s-au adugat i fiierele de constrngeri, acesta poate fi sintetizat i apoi implementat pentru a se face, n final, programarea structurii reconfigurabile. Sinteza se realizeaz prin selectarea grupului Synthesize XST i dat dublu clic pe acesta. Dac procesul nu a generat erori poate fi vizualizat primul raport referitor la modulul digital. Se selecteaz grupul Synthesize XST dup care se expandeaz i se alege din lista View Synthesis Report. n cadrul acestui raport se gsesc informaii referitoare la gradul de ocupare a ariei i a timpului de propagare prin aria reconfigurabil. n cadrul aceluiai grup, dac se selecteaz View RTL Synthesis, se vizualizeaz schema logic generat dup sinteza modului digital. n cazul proiectului acesta, schema logic este urmtoarea:

Selectarea fiecrui bloc in parte prin dublu clic poate conduce la o descriere mai detaliat la nivel de schem. Tot n grupul Synthesize XST dac se selecteaz View Technology Schematic se vizualizeaz schema tehnologic a modulului digital. Practic structura digital este format din blocuri logice configurabile predefinite. Acestea, la rndul lor sunt formate din SLICE-uri iar un SLICE are n componen dou generatoare de semnal. n final, un generator de semnal este format dintr-un LUT, memorie, multiplexoare i bistabili. LUT-ul (Look Up Table) este elementul principal n realizarea funciilor logice combinaionale. Acestea pot fi asemuite unor codoare cu mai multe intrri i o ieire ce realizeaz o anumit funcie logic.

14

Laborator 1

UNIVERSITATEA PITETI

O mic parte din schema tehnologic a modului digital este dat n figura de mai jos:

Dac este selectat un circuit LUT prin dublu clic se poate vizualiza schema logic pe care o emuleaz i tabela de adevr a acesteia. 2.8. Implementarea proiectului Implementarea const n urmtoarele procese: Translate, Map i Place & Route. Translatarea servete la trecerea de la schema logic rezultat n urma sintezei la primitive Xilinx. Map-area este procesul n care circuitul este descris la nivel de componente fizice n structura FPGA: Plasarea i rutarea const n formarea fiierelor ce specific rutrile dintre componentele interne ale structurii reconfigurabile n vederea generrii fiierelor de configurare. Procesul de implementare se realizeaz prin selectarea grupului Implement Design dup care se d dublu clic. Dac procesul s-a terminat fr erori se poate trece la pasul de generare a fiierelor de configurare. Verificarea procesului de implementare Programul Floorplanner este utilizat pentru verificarea pinilor i plasarea acestora. n plus, mai este utilizat pentru verificarea utilizrii corecte ale grupurilor de celule folosite n modulul digital ce se dorete a fi creat. n acest scop se selecteaz fiierul modul_digital. Se expandeaz grupul Place&Route i se selecteaz prin dublu clic procesul View/Edit Placed Design (Floorplanner).

15

Laborator 1

UNIVERSITATEA PITETI

Selectarea poriunii de circuit utilizat se realizeaz prin comanda View -> Zoom -> Tobox. n figura de mai jos se observ primitivele utilizate n proiectul prezent. Dac se selecteaz una dintre acestea, apar automat interconexiunile acesteia cu vecintatea.

Vizualitarea Resurselor Utilizate n fereastra Processes for Source se selecteaz procesul View Design Summary i deschide urmtoarea fereastr n care se gsete gradul de ocupare al structurii reconfigurabile.

16

Laborator 1

UNIVERSITATEA PITETI

Vizualizarea interconectrii fizice n mod asemntor se selecteaz din grupul Place & Route procesul View/Eit Routed Design (FPGA). Se selecteaz icoana pentru a fi evideniate semnalele de rutare din interiorul structurii reconfigurabile. Pentru o mai bun vizualizare se mrete zona de interes.

Dac se intr suficient de mult n detaliu se pot vedea rutrile n interiorul CLB-urilor i a SLICE-urilor. 2.9. Configurarea circuitului FPGA n final, pentru generarea i implementarea fizic a fiierului binar n structura hardware reconfigurabil, se apeleaz programul IMPACT. n cadrul grupului Generate Programming File din fereastra Processes for Source se selecteaz procesul Configure Device (iMPACT). n caseta de dialog Configure Devices se selecteaz opiunea BoundaryScan Mode i apoi butonul Next. Dac apare mesajul c circuitul a fost gsit se selecteaz butonul OK. Apoi apare fereastra de dialog Assign New Configuration File n care se selecteaz fiierul binar corespunztor proiectului realizat. Dac este generat un mesaj de eroare, acesta nu este luat n considerare. n final apare fereastra urmtoare prin care se poate realiza programarea circuitului.

17

Laborator 1

UNIVERSITATEA PITETI

Pentru a fi introdus fiierul binar de configurare a structurii reconfigurabile se d

dublu click pe icoana

Se ignor mesajul de eroare dup care se programeaz prin Program din meniul de mai din dreapta.

i va apare fereastra Program Opions:

Dup selectarea butonului OK se pornete procesul de descrcare a fiierului de configurare n circuit. La terminarea descrcrii, circuitul pornete automat i se vor vedea rezultatele implementrii proiectului.

18

Laborator 1

UNIVERSITATEA PITETI

3. Structura unui program VHDL Programul care caracterizeaz un modul digital n limbajul VHDL conine trei pri: declararea librriilor care vor fi utilizate n proiect; declararea entitii modului ce urmeaz a fi proiectat; descrierea arhitecturii acestuia.

Declaraii librrii

Entitate

Arhitectur

Prin entitate se descrie interfaa modulului digital cu semnalele din mediul exterior. O entitate deja declarat poate fi accesat de ctre alte entiti. Sintax:
entity nume_entitate is generic (list_generic); port (list_de_porturi);] end entity nume_entitate;

Prin specificaia entity se declar numele modulului digital. n plus, pot fi declarai parametrii generici i porturi care fac parte din aceast entitate. Porturile declarate ntr-o entitate sunt vizibile n toate arhitecturile atribuite acesteia. Porturile pot fi de intrare, ieire, buffer sau bidirecionale (IN, OUT, BUFFER, INOUT) Arhitectura descrie relaia dintre intrrile i ieirile porturilor entiti creia i este asociat. O arhitectur poate avea asociat doar o singur entitate dar o entitate poate avea asociate mai multe arhitecturi prin configuraie. Sintax:
architecture nume_arhitectur of nume_entitate is -- declaraii n arhitectur begin --specificaii_concurente end [ architecture ] [ nume_arhitectur ];

Zona declarativ a unei arhitecturi poate conine declaraii de tipuri, semnale, constante, subprograme, componente i grupuri. Specificaiile concurente

19

Laborator 1

UNIVERSITATEA PITETI

din corpul arhitecturii definesc legturile dintre intrrile i ieirile modulului digital pe care-l reprezint. Sintaxa general a unui program n cod VHDL este urmtoarea:
--Declararea libariilor prin clauza library si use library nume_librarie; use nume_librarie.nume_pachet.all; --Declararea entitatii modulului digital entity nume_entitate is generic(nume generice : type := valori_initiale); port(nume_porturi : directie tip port); end entity nume_entitate; --entity[93] --Corpul arhitecturii architecture nume_arhitectura of nume_entitate is declaratii arhitectura begin specificatii concurente end architecture nume_arhitectura;

Operatori utilizai n limbajul VHDL Pentru implementarea circuitelor combinaionale, n limbajul VHDL, s-au pus la dispoziia programatorului operatori logici, aritmetici, de comparaie, deplasare i de concatenare. n tabelul de mai jos sunt prezentai, pe scurt, operatorii logici: Tipul operatorului Logic Operatori NOT, AND, NAND, OR, NOR, XOR, XNOR Tipul datelor BIT, BIT_VECTOR, STD_LOGIC, STD_LOGIC_VECTOR STD_UNLOGIC, STD_UNLOGIC_VECTOR INTEGER, SIGNED, UNSIGNED aproape toi BIT_VECTOR La fel ca la operatorii logici, pus SIGNED i UNSIGNED

Aritmetic Comparaie Deplasare Concatenare

+, -, *, /, ** (mod, rem, abs) =, /=, <, >, <=, >= sll, srl, sla, sra, rol, ror &, (, , ,)

20

Laborator 1

UNIVERSITATEA PITETI

3. DESFURAREA LABORATORULUI 1. Se parcurg toi paii din subcapitolul anterior; 2. S se realizeze i implementeze un numrtor binar pe 4 bii cu porturile de intrare/ieire date in figura de mai jos:

clk direction

Numrtor binar pe 4 bii

data_out [3:0]

Codul surs n VHDL al modului digital este urmtorul:


library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter_UpDown is Port ( clk : in std_logic; direction : in std_logic; data_out : out std_logic_vector(3 downto 0)); end counter_UpDown; architecture Behavioral of counter_UpDown is begin process (clk) variable count_int: std_logic_vector(3 downto 0):= "0000"; begin if (clk'event and clk = '1') then if (direction = '0') then count_int := count_int + '1'; else count_int := count_int - '1'; end if; end if; data_out <= count_int; end process; end Behavioral;

21

Laborator 1

UNIVERSITATEA PITETI

S se realizeze urmtorii pai: - crearea unui proiect nou; - inserarea unei surse VHDL cu programul de mai sus; - simularea modulului digital; - crearea fiierului de constrngeri al pinilor dup schema de mai jos; - realizarea sintezei acestuia; - vizualizarea schemelor logice, respectiv tehnologice; - simularea modelului comportamental rezultat dup sintez; - implementarea proiectului; - vizualizarea rulrii structurii fizice; - simularea Post-Place & Post Route a modelului; - configurarea circuitului fizic. Acest modul digital va fi inserat n urmtoarea schem electric:

VCC

1 R11..1 4K7 9 8 7 6 5 4 3 2

Y6
SW11

dir

y(0) y(1) y(2) y(3)

W2 Y1 Y2 Y3

LED0 LED1 LED2 LED3

R116 270

GND
R123 270

GND
R124 270

GND
R125 270

GND

SW DIP-8

GND

VCC

R126 4k7 RESET1

Y17

clk

FPGA

22

Laborator 1

UNIVERSITATEA PITETI

3. Respectnd modelul de la problema anterioar s se realizeze implementarea hardware a funciilor logice corespunztoare pentru funcionarea urmtoarelor scheme: a)
0
R1 VCC 4k7

SW_USER0

D1

W2

D1

0
LED0

FPGA

b)
SW_USER0

0
R1 VCC 4k7 SW_USER1

D1
1 2 3

W2

D1

0
LED0

0
R2 VCC

C1

FPGA

c)

4k7

SW_USER0

0
R1 VCC 4k7 SW_USER1

D1

1 2

W2

D1

0
LED0

0
R2 VCC 4k7

1 2

Y1

D2

0
LED1

C1

FPGA

23

Laborator 1

UNIVERSITATEA PITETI

4. Dup modelul de la problema 2 s se implementeze hardware ecuaiile booleene ale urmtoarelor tabele de adevr n forma direct i forma canonic. a) Tabela de adevr pentru funcia care realizeaz codarea unui numr binar pe 2 bii:

a[0] a[1] y[0] y[1] y[2] y[3]

SW USER0 SW USER1 LED LED LED LED 0 1 2 3

a[0] a[1] y[0] y[1] y[2] y[3] 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1

b). Tabela de adevr pentru funcia care verific paritatea impar a unui numr binar pe 4 bii: a[0] a[1] a[2] a[3] y 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0

a[0] a[1] a[2] a[3] y[0]

SW USER0 SW USER1 SW USER2 SW USER3 LED 0

Se realizeaz corespondena dintre porturile entitilor i pinilor circuitului programabil dup configuraiile din partea dreapt a tabelelor de adevr.

24

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