11
Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea Un proiect nou se creeaza selectand File->New Project. Se introduce numele proiectului, aici lab1 si apoi se da click pe Next. Proprietatile proiectului se seteaza ca in figura urmatoare. Proiectul din acest laborator isi propune sa implementeze o functie logica cu doua intrari si o iesire (de exemplu un XOR). In acest moment ati creat un nou proiect ce nu contine nici o sursa. Pentru a adauga o noua sursa verilog, utilizam meniul Project->New Source si selectam Verilog module – ca in figura de mai jos. Apoi scriem numele sursei verilog, two_input_logic.v , dam click pe Next si apoi Finish.

Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectareaduca/cn/introducere/introducere-in... · 2013-01-22 · Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea

  • Upload
    others

  • View
    40

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectareaduca/cn/introducere/introducere-in... · 2013-01-22 · Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea

Introducere in Xilinx ISE Project Navigator 14.2

1. Proiectarea

Un proiect nou se creeaza selectand File->New Project. Se introduce numele proiectului, aici lab1 si apoi se da click pe Next. Proprietatile proiectului se seteaza ca in figura urmatoare.

Proiectul din acest laborator isi propune sa implementeze o functie logica cu doua intrari si o iesire (de exemplu un XOR). In acest moment ati creat un nou proiect ce nu contine nici o sursa. Pentru a adauga o noua sursa verilog, utilizam meniul Project->New Source si selectam Verilog module – ca in figura de mai jos. Apoi scriem numele sursei verilog, two_input_logic.v, dam click pe Next si apoi Finish.

Page 2: Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectareaduca/cn/introducere/introducere-in... · 2013-01-22 · Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea

Pentru a edita continutul fisierului two_input_logic.v, dam dublu click pe numele fisierului (in coltul din stanga sus). Apoi scriem codul ca in figura de mai jos.

Page 3: Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectareaduca/cn/introducere/introducere-in... · 2013-01-22 · Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea

2. Simularea

Simularea functionala are rolul de a verifica logica proiectata inainte de sinteza pentru a elimina eventualele greseli sau neconcordante intre specificatie si implementare. Pentru a simula un proiect este nevoie sa creati un modul de test. Acest lucru se face similar cu procesul de a crea o sursa noua selectand Project->New Source si apoi Verilog Test Fixture (vedeti figura de mai jos).

Page 4: Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectareaduca/cn/introducere/introducere-in... · 2013-01-22 · Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea

Apoi introducem numele modulului de test, aici test_logic. Dam click pe Next si asociem testul cu modulul two_input_logic prin selectarea acestuia. Apoi dam click pe Next si Finish.Selectam in fereastra Design (coltul din stanga sus, in versiuni mai vechi Sources for), Simulation (in editiile mai vechi, Behavioral Simulation) si dam dublu-click pe test_logic.v, pentru a-l edita. Vom scrie codul din figura urmatoare.

Page 5: Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectareaduca/cn/introducere/introducere-in... · 2013-01-22 · Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea

Pentru a simula, selectam test_logic.v. In fereastra Processes (ecran - mijloc stanga) expandam ISim Simulator. Mai intai dam dublu click pe Behavioral Check Syntax pentru a verifica sintaxa, iar apoi pe Simulate Behavioral Model. Simulatorul va fi pornit si va simula circuitul implementat si stimulat de datele de intrare (conform testului). Rezultatele pot fi urmarite in fereastra ISim. Pentru a vedea intreaga simulare, dam click-dreapta pe zona cu grafice (zona neagra a ecranului) si selectam To full view (altfel trebuie sa folosim scroll orizontal). Rezultatul corect al simularii este prezentat in figura urmatoare.

Page 6: Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectareaduca/cn/introducere/introducere-in... · 2013-01-22 · Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea

3. Sinteza circuitului proiectat

Cu o descriere in verilog corecta, din punct de vedere functional, se poate trece la transforamrea acesteia intr-un netlist (prin sinteza). Un netlist este o reprezentare a unei scheme logice pe intelesul masinii. In cazul de fata vom folosi XST care este integrat in Xilinx ISE si poate realiza sinteza pentru dispozitive produse de Xilinx.

Pentru pornirea sintezei, in fereastra Design (coltul din stanga sus, in versiunile mai vechi Sources for) selectam Implementation (versiunile mai vechi Synthesis/Implementation). Apoi din fereastra Processes dam dublu-click pe Synthesis – XST. In consola mediului de dezvoltare Xilinx ISE veti putea urmari mesajele generate in urma procesului de sinteza.

4. Implementarea proiectului

Implementarea proiectului consta intr-o succesiune de evenimente ce conduce la transforamrea codului sintetizat in netlist intr-un fisier de configurare (cu extensia .bit) pentru FPGA-ul ales. Uneltele de implementare (incluse in Xilinx ISE) trebuie sa stie la ce pini ai FPGA-ului sa conecteze intrarile si iesirile proiectului dumneavoastra. Daca acest lucru nu este definit, ele vor fi distribuite aleator pinilor disponibili. Pentru proiectul propus, vom folosi doua switchuri pentru intrari si un led pentru iesire. Pentru placa de dezvoltare Nexys, FPGA-ul este Spartan 3 – XC3S400. Switch-ul SW0 este legat la pinul N15, SW1 la J16 si LED0 la L14 (pentru mai multe

Page 7: Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectareaduca/cn/introducere/introducere-in... · 2013-01-22 · Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea

detalii vedeti manualul de referinta al placii Nexys, “Nexys_reference_manual.pdf” la pagina 5).Dupa ce am adunat informatiile necesare, putem trece la realizarea fisierului UCF (fisierul

de constrangeri ale proiectului). Acest fisier defineste corespondenta intre semnalele modulului de top si pinii FPGA-ului precum si alte setari de constrangere (cum ar fi tipul iesirilor, etc). Pentru a pastra simplitatea proiectului vom face numai setarile necesare pentru conectarea pinilor. Este util ca toate constrangerile impuse proiectului sa fie definite intr-un fisier separat ce nu depinde de codul sintetizat. Pentru a crea fisierul de constrangeri selectam Project->New Source, apoi Implementation Constraints File si il denumim ucf.ucf, precum in figura de mai jos. Apoi dam click pe Next si verificam ca fisierul de constrangeri a fost asociat cu modulul two_input_logic si apoi click pe Finish.

Sub ierarhia modulului de top (two_input_logic) va aparea un nou fisier (ucf.ucf). Fisierul UCF este un fisier text (ca si sursele verilog). Pentru simplitatea exemplului il vom ediata direct. In fereastra Design (stanga sus, in versiunile mai vechi Sources for), expandam two_input_logic.v si selectam ucf.ucf. Apoi in fereastra Processes expandam User Constraints si dam dublu click pe Edit constraints (text). In fisierul ucf.ucf care s-a deschis, vom scrie urmatoarele linii:NET in1 LOC=”N15”;NET in2 LOC=”J16”;NET out1 LOC=”L14”;

Dupa ce fisierul de constrangeri este complet, se poate trece la implementarea proiectului. Selectati din nou modulul de top (two_input_logic) si apoi in fereastra Processes, dam dublu click pe Implement Design si apoi pe Generate Programming File. Astfel se va genera fisierul two_input_logic.bit pe care il vom programa pe chip-ul FPGA de pe placa de dezvoltare.

Page 8: Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectareaduca/cn/introducere/introducere-in... · 2013-01-22 · Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea

5. Programarea placii Digilent Nexys folosind Xilinx iMPACT

Inainte de a trece la programarea placii, conectam placa la calculator si o pornim de la butonul de Power (stanga jos – vezi pagina 1 din manualul de referinta al placii Nexys, Nexys_reference_manual.pdf).

In fereastra Processes, selectam Configure Target Device si rulam Manage Configuration Project (iMPACT). In iMPACT dam dublu click pe Boundary Scan (coltul din stanga sus).Apoi dam click dreapta pe zona Right click to Add Device or initialize JTAG chain si selectam Cable setup (vedeti figura de mai jos).

Selectam Digilent USB JTAG Cable ca in figura de mai jos si dam click pe OK.

Page 9: Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectareaduca/cn/introducere/introducere-in... · 2013-01-22 · Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea

Dam click dreapta pe zona Right click to Add Device or initialize JTAG chain si selectam Initialize chain. In caz de succes, programul va afisa chipurile gasite pe lantul JTAG – imagine similara ca cea de mai jos.

Page 10: Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectareaduca/cn/introducere/introducere-in... · 2013-01-22 · Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea

Va aparea o fereastra cu titlul Assign new configuration file in care trebuie selectat fisierul cu extensia “.bit” ce trebuie atasat pentru primul chip, chip care in acest moment este selectat si este XC3S400 in cazul curent. Acest fisier “.bit” trebuie sa fi fost generat in prealabil cu Xilinx ISE Project Navigator. Selectam fisierul si dam click pe Open. La fereastra urmatoare cu titlul Assign new configuration file vom da click pe Bypass, deoarece propune asignarea unui fisier pentru chip-ul al doilea – care este nefolosit in cadrul laboratorului. La momentul urmator va aparea fereastra cu titlul Device programming properties si dam click pe OK.

Pentru a programa chipul XC3S400, dam click-dreapta pe el si selectam Program.

Page 11: Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectareaduca/cn/introducere/introducere-in... · 2013-01-22 · Introducere in Xilinx ISE Project Navigator 14.2 1. Proiectarea