Sunteți pe pagina 1din 12

Circuite Logice Programabile LABORATOR 1

INTRODUCERE N MEDIUL INTEGRAT XILINX ISE. PROIECTAREA UNUI SUMATOR PE UN BIT

INTRODUCERE
Softwarele CAD (Computer Aided Design) de proiectare cu circuite logice programabile (FPGA) permit n prima etap alegerea unei metode de descriere a proiectului: captur schematic, descriere VHDL sau diagrame de stare, n urmtoarea etap se poate face o simulare funcional n urma operaiei de sintez i de timp n urma operaiei de translatare. n cele din urm, dac specificaiile de baz sunt ntrunite se poate face implementarea i testarea proiectului n hardware, vezi diagramele de mai jos.

Diagrama I

Diagrama II

SCOPUL LUCRRII
ISE Integrated Software Environment este un mediu integrat care permite descrierea i implementarea unei multitudini de blocuri logice. Implementarea se face cu FPGA Spartan sau Virtex sau cu CPLD-uri din seria 9500. Circuitele integrate de tip FPGA sau CPLD sunt, de asemenea fabricate de compania Xilinx. La nivel didactic, pentru testarea corectitudinii blocurilor logice proiectate, dispunem de o placa de test D2SB, figura 1, produs de firma Digilent, bazat pe modulul FPGA de tip Spartan II cu codul XC2S200E. Pentru a putea exploata mai eficient resursele plcii D2SB la aceatsa se conectea cteaz placa cu circuite periferice DIO4, figura 2. Placa DIO4 este produs de firma Digilent i conine majoritatea dispozitivelor de intrare/ieire date prezente n orice sistem digital. Placa de dezvoltare este dotat cu comutatoare, taste, LED-uri i afioare 7 segmente cu LED-uri.

Figura 1. Modulul de dezvoltare D2SB

Figura 2. Placa cu dispozitive de intrare/ieire DIO4

Scopul lucrrii const n implementarea unui sumator elementar descrisin VHDL, pentru familiarizarea studenilor cu proiectele de tip HDL.

Desfurarea lucrrii
Pasul 1: Crearea proiectului.

Se lanseaz n execuie ISE prin intermediul icoanei

Se creeaz un nou proiect, cu urmtoarele specificaii:

Figura 3

ISE creeaz cte un folder pentru fiecare proiect. Folderul va avea acelai nume ca i proiectul. Din acest motiv, mai nti se specific folderul lab1, iar apoi numele proiectului, sum. Dup ce ai particularizat i completat toate informaiile conform figurii 3, apsai butonul Next. Va apare urmtoarea fereastr:

Figure 4

Modulul n jurul cruia este construit placa de dezvoltare D2SB aparine familiei Spartan2, are codul XC2S200E (200 nsemn ca modulul conine echivalentul a 200000 de pori logice) i mpachetarea este de tip PQ208. Ca i n cazul proiectelor software, un proiect este compus din mai multe fiiere. Funcionalitatea proiectelor hardware se poate specifica fie prin intermediul schemelor logice fie prin intermediul unui limbaj de descriere hardware, cum ar fi VHDL sau Verilog. Aa cum n cazul unui proiect scris n C exist o funcie care se execut prima, i anume main, n cazul proiectelor hardware rolul lui main este jucat de modulul din vrful ierarhiei, i anume Top Level Module. Descrierea modulul din vrful ierarhiei poate fi de tip schematic sau HDL (HDL=Hardware Description Language = Limbaj de descriere hardware). Pe parcursul acestui laborator se va folosi numai descrierea de tip HDL. Mai mult despre structura ierarhic a proiectelor hardware, n laboratoarele urmtoare. n cazul sumatorului de un bit, descrierea funcionalitii se face prin intermediul unui singur fiier HDL i automat aceasta va fi n vrful ierarhiei. Din acest motiv alegem Top Level Module Type de tip HDL. Celelalte dou cmpuri se seteaz la valorile din figura 4 for fi detaliate n urmtoarele laboratoare, iar apoi se apas butonul Next. Aciunile aferente urmtoarelor dou ferestre, Create a New Source i Add Existing Sources, sunt opionale, i din acest motiv se apas Next pentru fiecare n parte, fr s se completeze nimic. In final, apare o fereastr de informare, pentru care se apas Finish. Dup executarea tuturor aciunilor descrise mai sus trebuie s se obin urmtorul ecran:
4

Figura 5

Pasul 2: Crearea fiierului VHDL care va conine descrierea sumatorului de un bit. Se face clic dreapta pe numele circuitului (xc2s200e), i din meniul contextual aprut se selecteaz New Source. n fereastr New Source, se selecteaz tipul VHDL Module iar apoi se completeaz numele fiierului (figura 6). n continuare se apas Next, apare o fereastr care permite definirea semnalelor prin care modulul descris se conecteaz cu exteriorul (figura 7)

Figura 6

Figura 7

Intrrile sumatorului sunt semnalele A, B, i Cin iar ieirile S i Cout. Se completeaz fereastra din figura 7 cu aceste informaii, apoi se apas Next. Ca urmarea, apare o fereastr de informare care sumarizeaz informaiile introduse i permite revenirea n caz c exist o greeal. Dac totul este corect, se apas butonul Finish. Ca efect al apsrii lui Finish, sum.vhd este construit i adugat la proiect. Dup cum se remarc ISE a creat automat entitatea din descrierea furnizat prin intermediul figurii 7.
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all; entity Sum_s4 is Port ( Cin : in std_logic; A : in std_logic; B : in std_logic; S : out std_logic; Cout : out std_logic); end Sum_s4; ......

n corpul arhitecturii ntre begin i end Behavioral scriei expresiile logice S i Cout. S <= A xor B xor Cin; Cout <= (A and B) or (B and Cin) or (A and Cin); Pasul 3: Crearea fiierului de constrngeri i specificarea acestora. Pentru a verifica funcionarea sumatorului intrrilor A, B i Cin li se asigneaz pini FPGA care n exterior sunt conectai la comutatoare iar ieirilor S i Cout li se asigneaz pini FPGA conectate la LEDuri. Aceast asignare se numete constrngere. Exist mai multe tipuri de constrngeri, aceasta fiind una dintre ele. Din documentaiile plcilor D2SB i DIO4 rezult urmtorul tabel:
RESURSED2SBIDIO4 "MCLK" "D2SB_BTN" "D2SB_LED" "DIO4_LEDG" "DIO4_LED<0>" "DIO4_LED<1>" "DIO4_LED<2>" "DIO4_LED<3>" "DIO4_LED<4>" "DIO4_LED<5>" PINIFPGA "P182"; "P187"; "P154"; "P45"; "P111"; "P109"; "P102"; "P100"; "P98"; "P96"; 6

"DIO4_LED<6>" "DIO4_LED<7>" "DIO4_BTN<0>" "DIO4_BTN<1>" "DIO4_BTN<2>" "DIO4_BTN<3>" "DIO4_BTN<4>" "DIO4_SW<0>" "DIO4_SW<1>" "DIO4_SW<2>" "DIO4_SW<3>" "DIO4_SW<4>" "DIO4_SW<5>" "DIO4_SW<6>" "DIO4_SW<7>" "DIO4_AN<0>" "DIO4_AN<1>" "DIO4_AN<2>" "DIO4_AN<3>" "DIO4_SSG<0>" "DIO4_SSG<1>" "DIO4_SSG<2>" "DIO4_SSG<3>" "DIO4_SSG<4>" "DIO4_SSG<5>" "DIO4_SSG<6>" "DIO4_SSGDP"

"P94"; "P89"; "P3"; "P206"; "P44"; "P43"; "P42"; "P23"; "P21"; "P18"; "P16"; "P11"; "P9"; "P7"; "P5"; "P41"; "P40"; "P36"; "P35"; "P22"; "P20"; "P17"; "P15"; "P10"; "P8"; "P6"; "P4";

Astfel se vor atribui urmtorii pini FPGA pentru A,B,Cin, S i Cout: Cin P23 (SW1), A P21 (SW2), B P18 (SW3), conform tabelului anterior. Lui S i se asigneaz P111 (LD1), iar lui Cout P109 (LD2). Mai nti se creeaz fiierul de constrngeri. Se face clic dreapta pe numele circuitului (xc2s200e) sau pe numele fiierului VHDL sum1.vhd i din meniul contextual aprut se selecteaz New Source. n fereastr New Source, se selecteaz tipul Implementation Constraints File iar apoi se completeaz numele fiierului. Fie numele acestui fiier sum1cf. Se apas Next, n urmtoarea fereastr Next, iar apoi n fereastra de informare se apas Finish. Dac totul a decurs conform celor explicate anterior se va obine situaia din figura 8. Se observ ca procesele posibile pentru un anumit fiier sunt diferite n funcie de fiierul selectat n fereastra Sources in Project. Dac n fereastra Sources in Project se selecteaz sum1cf.ucf, n fereastra Processes for ... apar procesele din figura 8.

Figura 8

nainte de a crea fiierul de constrngeri selectai Edit -> Preferences -> Editor i apsai radio butonul Constraints Editor. Pentru crearea/editarea constrngerilor, pornind de la configuraia din figura 8, se face dublu clic pe procesul Edt Constraints (Text), pentru a lansa n execuie editorul de constrngeri i se introduc liniile de configurare din figura 8, dup care se salveaz. Pasul 4: Crearea fiierului de configurare i verificarea funcionalitii. Plecnd de la configuraia din figura 8, se face click pe numele proiectului Sum1- Behavioral.. dup care n fereastra Processes se face dublu clic pe procesul Generate Programming File, vezi figura 9.

Figura 9

Pasul 5: Configurarea FPGA Spartan 3 de pe placa de dezvoltare Odat generat fiierul bit sub procesul Generate Programming File facei dublu clic pe opiunea Configure Device (iMPACT) aflat sub procesul Generate Programming File. Se va obine fereastra din figura 10, se face clic pe Finish.

Figura 10

Dup care se obine figurafereastra din figura 11, dup ce se face n care se selecteaz fiiereul de configurare de tip bit, n cazul nostru sum1.bit

10

Figura 11

Se face clic dreapta pe dispoyitivul Xilinx i se alege opiunea Program...n fereastra care apare se face clic pe OK. Apare o ferestr Progree Dialog dup care

ar trebui s se obin mesajul profesorul!!!

n caz contrar, chemai

11

Pasul 6: (opional, pentru not mai mare ca 5) 1. Pentru ca datele sa fie transferate imediat de la intrare la ieire este necesar ca latchurile prezente la fiecare LED s primeasc semnal de validare, astfel conform documentaiei plcii D2SB se recomand ca semnalul Ledg s fie inut n 1 logic. Pinul FPGA aferent acestui semnal este P45. Introducei linia corespunztoare n dul VHDL i n fiierul de constrngeri UCF, astfel nct afiarea rezultatului la LED-uri s aib loc imediat ce au fost modificate valorile de la intrarea sumatorului.

2. Modificai proiectul existent astfel nct s se implementeze un sumator pe doi bii. Intrrile vor fi: Cin, A1, A0 primul operand, A0 LSB B1, B0 al doilea operand, B0 fiind LSB Ieirile vor fi: S1, S0 suma, S0 LSB Cout Intrrile i ieirile se vor conecta la comutatoare i Leduri astfel: Cin SW0, A0-SW1, A1-SW2, B0-SW3, B1-SW4, S0-LD0, S1-LD1, Cout-LD2

12

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