PROGRAMSKO OKOLJE ZA NAČRTOVANJE PROGRAMIRLJIVIH VEZIJ S POMOČJO RAZVOJNE ENOTE

Similar documents
Programirljiva logika

Tehnologija programirljivih vezij. Načrtovanje digitalnih el. sistemov. Programirljiva vezja (PLD) Programirljiva vezja (CPLD)

Spartan-II Development System

EEM Digital Systems II

Programmable Logic Design I

Main Design Project. The Counter. Introduction. Macros. Procedure

226V3L.

190V3.

AN ADVERTICING MODUL, DEVELOPED ON THE BASE OF A CPLD PROGRAMABLE DEVICE

ENGG2410: Digital Design Lab 5: Modular Designs and Hierarchy Using VHDL

Main Design Project. The Counter. Introduction. Macros. Procedure

MODERIRANA RAZLIČICA

FPGA-BASED EDUCATIONAL LAB PLATFORM

CHAPTER 3 EXPERIMENTAL SETUP

Memec Spartan-II LC User s Guide

Uporaba razvojnega okolja Arduino za izdelavo merilnega vozlišča na modulu ESP8266

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

COMPUTER ENGINEERING PROGRAM

Faculty of Electrical & Electronics Engineering BEE3233 Electronics System Design. Laboratory 3: Finite State Machine (FSM)

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress

Figure 1 Block diagram of a 4-bit binary counter

Using the XSV Board Xchecker Interface

Field Programmable Gate Array (FPGA) Based Trigger System for the Klystron Department. Darius Gray

Remote Diagnostics and Upgrades

Spartan-II Development System

VHDL Upgrading of a TNT2 card

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique

Design of a Binary Number Lock (using schematic entry method) 1. Synopsis: 2. Description of the Circuit:

Design of VGA Controller using VHDL for LCD Display using FPGA

University Program Design Laboratory Package

OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS

LOGIČNI ANALIZATOR ZA VODILO CAN S SPLETNIM VMESNIKOM

1. Synopsis: 2. Description of the Circuit:

Digital Systems Design

Tjaša Lemut Novak in Lea Sobočan

OpenXLR8: How to Load Custom FPGA Blocks

Using the XC9500/XL/XV JTAG Boundary Scan Interface

COE758 Xilinx ISE 9.2 Tutorial 2. Integrating ChipScope Pro into a project

Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board

Lecture 6: Simple and Complex Programmable Logic Devices. EE 3610 Digital Systems

Načrtovanje vgrajenih sistemov na čipu Xilinx Zynq

LAB 3 Verilog for Combinational Circuits

Psevdonaključni podatkovni izvor z bitno hitrostjo 10 Gbit/s in dolžino zaporedja

Syed Muhammad Yasser Sherazi CURRICULUM VITAE

Individual Project Report

Performance Evolution of 16 Bit Processor in FPGA using State Encoding Techniques

FPGA Implementation of DA Algritm for Fir Filter

ASTRIX ASIC Microelectronics Presentation Days

196V4L.

Microprocessor Design

University Program Design Laboratory Package

L12: Reconfigurable Logic Architectures

FPGA Design with VHDL

SignalTap Plus System Analyzer

3. Configuration and Testing

of Boundary Scan techniques.

AXALJ-TT: 3-žilni SN kabel z aluminijastim ekranom, izboljšana vodotesnost in pričakovana daljša življenjska doba

LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0

Authentic Time Hardware Co-simulation of Edge Discovery for Video Processing System

Serial FIR Filter. A Brief Study in DSP. ECE448 Spring 2011 Tuesday Section 15 points 3/8/2011 GEORGE MASON UNIVERSITY.

Image generator. Hardware Specification

Inside Digital Design Accompany Lab Manual

University Program Design Laboratory Package

LAB 3 Verilog for Combinatorial Circuits

EXOSTIV TM. Frédéric Leens, CEO

Using SignalTap II in the Quartus II Software

General: Catalog Description: Grading Policy: Course Code: COE 203 Title: Digital Logic Laboratory Co-requisite(s): COE 202 (Digital Logic Design)

ATF15xx-DK3 Development Kit... User Guide

DS099-E08 (v2.5) December 14, 2006

L11/12: Reconfigurable Logic Architectures

AC : DIGITAL DESIGN MEETS DSP

Lab 3: VGA Bouncing Ball I

AbhijeetKhandale. H R Bhagyalakshmi

Tools to Debug Dead Boards

CPE 329: Programmable Logic and Microprocessor-Based System Design

236V4.

POVZETEK 7 ABSTRACT 9 1. UVOD OPREDELITEV PODROČJA IN OPIS PROBLEMA NAMEN, CILJI IN HIPOTEZE NALOGE 11

Design and implementation (in VHDL) of a VGA Display and Light Sensor to run on the Nexys4DDR board Report and Signoff due Week 6 (October 4)

Spartan-IIE LC Development Board User s Guide

DALHOUSIE UNIVERSITY Department of Electrical & Computer Engineering Digital Circuits - ECED 2200

Mestna občina Celje Komisija Mladi za Celje HIŠNA AVTOMATIKA RAZISKOVALNA NALOGA. AVTOR Jakob Jug. MENTOR: Gregor KRAMER, univ. dipl. ing.

Radar Signal Processing Final Report Spring Semester 2017

LUT Optimization for Memory Based Computation using Modified OMS Technique

18 Nov 2015 Testing and Programming PCBA s. 1 JTAG Technologies

Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL

Design of VGA and Implementing On FPGA

ECT 224: Digital Computer Fundamentals Digital Circuit Simulation & Timing Analysis

2.6 Reset Design Strategy

Using HERON modules with FPGAs to connect to FPDP

BABAR IFR TDC Board (ITB): system design

CoLinkEx JTAG/SWD adapter USER MANUAL

16 Dec Testing and Programming PCBA s. 1 JTAG Technologies

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit)

Design and FPGA Implementation of 100Gbit/s Scrambler Architectures for OTN Protocol Chethan Kumar M 1, Praveen Kumar Y G 2, Dr. M. Z. Kurian 3.

UNIVERZA V LJUBLJANI Fakulteta za elektrotehniko. Robert Urankar. Pametni rastlinjak DIPLOMSKO DELO VISOKOŠOLSKEGA STROKOVNEGA ŠTUDIJA

DE2-115/FGPA README. 1. Running the DE2-115 for basic operation. 2. The code/project files. Project Files

I, you, we, they + have + glagol v 3. obliki. He, she, it + has + glagol v 3. obliki

Configuring FLASHlogic Devices

LAB #6 State Machine, Decoder, Buffer/Driver and Seven Segment Display

Transcription:

Blaž Zidarič PROGRAMSKO OKOLJE ZA NAČRTOVANJE PROGRAMIRLJIVIH VEZIJ S POMOČJO RAZVOJNE ENOTE Diplomsko delo Maribor, maj 2009

I Diplomsko delo visokošolskega strokovnega študijskega programa PROGRAMSKO OKOLJE ZA NAČRTOVANJE PROGRAMIRLJIVIH VEZIJ S POMOČJO RAZVOJNE ENOTE Študent: Študijski program: Smer: Mentor: Somentor: Blaž Zidarič visokošolski strokovni, elektrotehnika elektrotehnika elektronika izred. prof. dr. Rudolf Babič dr. Davorin Osebik Maribor, maj 2009

II Številka: E.0787 Datum in kraj: 09. 04. 2009, Maribor Na osnovi 330. člena Statuta Univerze v Mariboru (Ur. 1. RS, št. 90/2008) SKLEP O DIPLOMSKEM DELU 1. Blažu Zidariču, študentu visokošolskega strokovnega študijskega programa Elektrotehnika, smer Elektronika, se dovoljuje izdelati diplomsko delo pri predmetu Elektronika. 2. MENTOR: izred. prof. dr. Rudolf Babič SOMENTOR: asist. dr. Davorin Osebik 3. Naslov diplomskega dela: PROGRAMSKO OKOLJE ZA NAČRTOVANJE PROGRAMIRLJIVIH VEZIJ S POMOČJO RAZVOJNE ENOTE 4. Naslov diplomskega dela v angleškem jeziku: SOFTWARE ENVIRONMENT FOR FPGA CIRCUIT DESIGN WITH DEVELOPTMENT UNIT 5. Diplomsko delo je potrebno izdelati skladno z "Navodili za izdelavo diplomskega dela" in ga oddati v treh izvodih ter en izvod elektronske verzije do 09. 04. 2010 v referatu za študentske zadeve. Pravni pouk: Zoper ta sklep je možna pritožba na senat članice v roku 3 delovnih dni. Obvestiti: kandidata, mentorja, somentorja, odložiti arhiv.

III ZAHVALA Iskreno se zahvaljujem mentorju izred. prof. dr. Rudolfu Babiču in dr. Davorinu Osebiku za vsestransko pomoč pri izdelavi diplomskega dela. Posebno se zahvaljujem tudi svojim staršem in vsem ostalim, ki so me podpirali pri študiju.

IV PROGRAMSKO OKOLJE ZA NAČRTOVANJE PROGRAMIRLJIVIH VEZIJ S POMOČJO RAZVOJNE ENOTE Ključne besede: razvojna enota, programsko okolje za načrtovanje Xilinx ISE, programirljiva vezja, uporabniška navodila, primer načrtovanja UDK: 004.4:621.38.049(043.2) Povzetek V diplomskem delu je opisano programsko okolje za načrtovanje programirljivih vezij s pomočjo razvojne enote. Predstavljen je postopek dela s programskim okoljem Xilinx ISE in simulatorjem ModelSim. Razvojna enota je namenjena predvsem pedagoškim namenom za povezavo med računalnikom ter programskim okoljem Xilinx ISE. Cilj diplomskega dela je bil pripraviti uporabniška navodila za delo s programskim okoljem za načrtovanje programirljivih vezij s pomočjo razvojne enote. Podan je tudi primer načrtovanja časovnega multiplekserja 2:1 s programirljivim vezjem Spartan 3E XC3S100E, ki je generiran s periodo 2 s.

V SOFTWARE ENVIRONMENT FOR FPGA CIRCUIT DESIGN WITH DEVELOPMENT UNIT Key words: development unit, software environment for planning Xilinx ISE, programmable circuits, user instruction, planning example UDK: 004.4:621.38.049(043.2) Summary The diploma work thesis describes the software environment Xilinx ISE program surrounding for the planning field programmable gate array (FPGA) ming circuits design with a laboratory developing system. The designing with software environment Xilinx ISE and ModelSim is presented. he main part of the developing system is represented by the programmable programme circuits of the family XC3S100E by the firm Xilinx. The laboratory developing system is used mainly designed for education pedagogical purpose for within the FPGA circuits linked with a personal computer and the software environment Xilinx ISE interconection. The aim of the diploma work thesis was to prepare user instructions manual preparation. for the work with the programme surrounding, when planning programmable programming circuits for the laboratory developing system. The example of time multiplexer circuit design with Xilinx FPGA circuit XC3S100E is described.

VI KAZALO VSEBINE: 1 UVOD... 1 1.1 NAMEN IN CILJI DIPLOMSKEGA DELA... 2 2 RAZVOJNA ENOTA... 3 2.1 NAPAJALNI DEL... 6 2.2 LCD PRIKAZOVALNIK... 7 2.3 GENERATOR URINEGA SIGNALA... 9 2.4 ZAŠČITENI VHODNI IN IZHODNI PRIKLJUČKI... 10 2.5 NEPOSREDNI VHODNO-IZHODNI PRIKLJUČKI... 14 2.6 DIP STIKALA ZA NASTAVLJANJE VHODNIH LOGIČNIH NIVOJEV... 16 2.7 USB UPORABNIŠKI VMESNIK... 17 2.8 SERIJSKI EEPROM XCS01S ZA SHRANJEVANJE KONFIGURACIJSKIH PODATKOV... 20 2.9 INICIALIZACIJSKI KABEL... 21 3 DELO S PROGRAMSKIM OKOLJEM XILINX ISE... 23 3.1 ORGANIZACIJA... 23 3.2 NAMESTITEV IN ZAGON PROGRAMSKEGA PAKETA XILINX ISE WEBPACK... 23 3.3 USTVARJANJE NOVEGA PROJEKTA... 25 3.4 SHEMATSKI OPIS ELEMENTA... 29 3.5 VHDL OPIS ELEMENTA... 31 3.6 INICIALIZACIJA JTAG... 35 3.7 ZAPIS PROGRAMA NA EEPROM... 42 4 SIMULATOR MODELSIM... 47 5 REZULTAT... 52 6 SKLEP... 57 7 LITERATURA... 58

VII KAZALO SLIK: Slika 2.1: Opisani deli razvojne enote... 4 Slika 2.2: Shema razvojne enote... 5 Slika 2.3: Napajalni del razvojne enote... 6 Slika 2.4: Shema napajalnika... 7 Slika 2.5: Shema LCD prikazovalnika 16 1... 8 Slika 2.6: Povezava LCD prikazovalnika s FPGA vezjem XC3S100E... 8 Slika 2.7: Oscilator CFPS321B... 9 Slika 2.8: Shema generatorja urinega signala... 10 Slika 2.9: Shema zaščitenih vhodnih priključkov... 11 Slika 2.10: Povezava zaščitenih vhodnih priključkov s FPGA vezjem XC3S100E... 11 Slika 2.11: Shema zaščitenih izhodnih priključkov... 12 Slika 2.12: Povezava zaščitenih izhodnih priključkov s FPGA vezjem XC3S100E... 12 Slika 2.13: Logična zgradba vmesnika... 13 Slika 2.14: Shema neposrednih vhodno-izhodnih priključkov... 14 Slika 2.15: Povezava neposrednih vhodno-izhodnih priključkov s FPGA vezjem XC3S100E... 15 Slika 2.16: Shema DIP stikal... 16 Slika 2.17: Povezava DIP stikal s FPGA vezjem XC3S100E... 17 Slika 2.18: FT245BL uporabniški vmesnik proizvajalca FTDI... 18 Slika 2.19: Shema USB vmesnika... 19 Slika 2.20: Povezava USB vmesnika s FPGA vezjem XC3S100E... 19 Slika 2.21: Serijski EEPROM XCS01S... 21 Slika 2.22: Shema pomnilnika... 21 Slika 2.23: Inicializacijski kabel... 22 Slika 3.1: Postopek izdelave projekta... 23 Slika 3.2: Zagon programa... 24 Slika 3.3: Programa Xilinx ISE... 24 Slika 3.4: Določitev imena in lokacije projekta... 25 Slika 3.5: Lastnosti naprave... 26 Slika 3.6: Izbira tipa vira... 27 Slika 3.7: Izbran vir in tip datoteke... 27 Slika 3.8: Osnovno okno z vsemi orodji... 28 Slika 3.9: Izbira menija... 29 Slika 3.10: Izbira vira... 29 Slike 3.11: Izbrane možnosti... 30 Slika 3.12: Knjižnica za izbiro elementa... 31 Slika 3.13: Določitev vhodno-izhodnih priključkov... 32 Slika 3.14: Samodejno generirana predloga VHDL jezika... 33 Slika 3.15: Preverjanje sintaks... 34 Slika 3.16: Ustvarjanje shematskega elementa... 34 Slika 3.17: Ustvarjen element... 35 Slika 3.18: JTAG priključki... 35 Slika 3.19: Izbira vezja in dodelitev paketa pinov... 36 Slika 3.20: Seznam vhodno-izhodnih pinov... 36 Slika 3.21: Predloga vhodno-izhodnih priključkov v tekstovni obliki... 37

VIII Slika 3.22: Sinteza vezja... 38 Slika 3.23: Izvedba načrta... 38 Slika 3.24: Ustvarjanje programske datoteke... 39 Slika 3.25: Ustvarjanje PROM, ACE ali JTAG datoteke... 39 Slika 3.26: Nastavitev JTAG povezave... 40 Slika 3.27: Zavihek Boundary Scan... 40 Slika 3.28: Določitev nove konfiguracijsko datoteko... 41 Slika 3.29: Programiranje uspelo... 42 Slika 3.30: Zapis programa na EEPROM... 42 Slika 3.31: Priprava PROM datoteke... 43 Slika 3.32: Dodajanje naprave... 44 Slika 3.33: Uspešno končano zapisovanje... 44 Slika 3.34: Določitev nove konfiguracijske datoteke... 45 Slika 3.35: Izbira naprave... 45 Slika 4.1: Izbira menija... 47 Slika 4.2: Povzemanje HDL knjižnic simulacije... 48 Slika 4.3: Zagon programa ModelSim... 48 Slika 4.4: Program ModelSim... 49 Slika 4.5: Postavitev vseh spremenljivk na začetek... 49 Slika 4.6: Ustvariti-spremeniti tok signala... 50 Slika 4.7: Ustvariti vzorec čarovnika... 50 Slika 4.8: Ura vzorca atributov... 51 Slika 5.1: Blokovna shema primera... 52 Slika 5.2: Vezje primer... 54 Slika 5.3: Seznam vhodno-izhodnih pinov... 55 Slika 5.4: Veriga vezja... 55 KAZALO TABEL: Tabela 2.1: Priključki LCD prikazovalnika... 9 Tabela 2.2: Priključek za generator urinega signala... 10 Tabela 2.3: Zaščiteni vhodni priključki... 11 Tabela 2.4: Zaščiteni izhodni priključki... 13 Tabela 2.5: Neposredni vhodno-izhodni priključki... 15 Tabela 2.6: Priključki DIP stikala... 17 Tabela 2.7: Priključki USB vmesnika... 20

IX UPORABLJENE KRATICE FPGA USB EEPROM LED LVTTL TTL CPLD JTAG FTDI DCM DIP CLB I/O VHDL HDL DIR OE Field Programmeable Gate Array Logična programirna vezja Universal Serial Bus Univerzalno serijsko vodilo Electronically Erasable Programmable Read Only Memory Električno zbrisljiv in programirljiv bralni pomnilnik Light Emitting Diode Polprevodniška svetilna dioda Lov Voltage Transistor Transitor Logic Nizko napetostna transistor transistor logika Transistor-Transistor Logic Tranzistor-tranzistor logika Complex Programmable Logic Device Kompleksna programirljiva logična naprava Joint Test Action Group ali Standard Test Access Port and Boundary Scan Architecture Standard IEEE 1149.1, standardizirano testiranje elektronskih komponent ali sklopov Future Tehnology Devices Intl. Angleški proizvajalec integriranih vezij Digital Control Maneger Digitalni upravitelj ure Dual In Line Package Dvolinijsko ohišje, t.p. večvrstično DIP stikalo Configurable Logic Block Konfiguracijski logični blok Input Output Connector Vhodno izhodni priključek Very High Speed Integrated Circuit Hardware Description Language jezik za opis zelo hitrih integriranih vezij komponent ali sklopov Computer-Aided Design Računalniško podprto načrtovanje Direction Smer Output Enable Omogoči izhod

Uvod 1 1 Uvod Dandanes se uporabljajo digitalni sistemi na najrazličnejših področjih. Vsak dan imamo stik z napravami, ki vsebujejo digitalne komponente za obdelavo informacij in podatkov. Zmogljivost digitalnih komponent je vedno večja, zato moramo načrtovati vedno bolj zmogljive sisteme za obdelavo podatkov. Digitalni sistemi, zgrajeni s programirnimi vezji, imajo več prednosti glede na enake sisteme, ki so zgrajeni z mikrokrmilnikom. Najpomembnejše prednosti so hitrost delovanja, zanesljivost, sočasnost, majhna poraba energije, preprogramljivost in obdelava podatkov v realnem času. FPGA integrirana vezja so vezja, v katerih lahko sami načrtujemo svojo strukturo digitalnega vezja ali sistema v integrirani obliki. Sestavljene so iz matrike logičnih blokov (CLB-konfiguracijskih logičnih blokov in vhodno-izhodnih blokov) in povezovalnih polj, katera vsebujejo veliko število povezav. Obstaja več proizvajalcev FPGA vezij. Naša razvojna enota uporablja FPGA vezje firme Xilinx, ki se v laboratoriju uporablja že dalj časa. V zadnjem desetletju je tehnologija izdelave integriranih vezij naglo napredovala. Elektronski sistemi, ki so imeli pred desetletjem še visoko ceno, so danes dostopni širokemu krogu uporabnikov. V diplomi je predstavljeno programsko okolje Xilinx ISE v povezavi s FPGA vezjem in simulator ModelSim. Diplomsko delo začenjamo z uvodom. V drugem poglavju sledi opis posameznih elementov na razvojni enoti, povezave med njimi in FPGA vezjem. Tretjo opisuje delo s programskim okoljem Xilinx ISE v povezavi s FPGA vezjem, četrto poglavje simulator ModelSim, v petem pa je prikazan rezultat, in sicer načrtovanje časovnega multiplekserja 2:1 s programirljivim vezjem Spartan 3E XC3S100E, ki je generiran s periodo 2 s. V šestem poglavju sledi sklep in v sedmem literatura.

Uvod 2 1.1 Namen in cilji diplomskega dela Namen diplomskega dela je spoznati razvojno enoto s FPGA vezjem XC3S100E ter programsko okolje Xilinx ISE in simulator ModelSim. Cilj diplomskega dela je pripraviti uporabniška navodila za delo s programskim okoljem Xilinx ISE in simulatorjem ModelSim. Naš cilj je tudi načrtovati časovni multiplekser 2:1 s programirljivim vezjem Spartan 3E XC3S100E, ki je generiran s periodo 2 s. Predstaviti želimo postopek ustvarjanja novega projekta v programu Xilinx ISE in postopek s shematskim in VHDL opisom elementa. Opisali bomo tudi, kako inicializiramo JTAG s programirnim FPGA vezjem Spartan 3E XC3S100E in kako zapišemo program na EEPROM. S simulatorjem ModelSim pa bomo prikazali, kako posameznim vezjem izvedemo simulacijo.

RAZVOJNA ENOTA 3 2 RAZVOJNA ENOTA Razvojna enota je namenjena predvsem za pedagoško delo. Lahko jo uporabimo za učne namene, saj vsebuje 12 LED diod za opazovanje vhodnih signalov, štiri LED diode za izhodne signale, osem uporabniških preklopnih DIP stikal, USB vmesnik za sočasno sprejemanje in oddajanje ter enovrstični LCD prikazovalnik. Ostale priključke uporabljamo kot neposredne vhodno-izhodne priključke. Pridobljene rezultate tako koristimo z vsestransko ponazoritvijo tudi zaradi kompatibilnosti razvojne enote z drugimi napravami. Uporabljamo programirno vezje iz družine Spartan 3E XC3S100E. Enota podpira JTAG, glavni serijski in pomožni serijski način inicializacije preko Xilinx paralelnega kabla, kar nam omogoča programiranje v programskem okolju Xilinx ISE 9.1i. USB vmesnik in funkcije za komunikacijo omogočajo enostaven prenos podatkov iz programskega okolja MATLAB na razvojno enoto. Prav tako je razvojna enota z vmesnikom napetostnih nivojev popolnoma združljiva s starejšo strojno opremo, ki temelji na TTL logiki. Na sliki 2.1 imamo prikazano razvojno enoto od zgoraj, na njej pa so označeni tudi posamezni deli razvojne enote.

RAZVOJNA ENOTA 4 Zaščiteni vhodni priključki Neposredni vhodno-izhodni priključki Zaščitni izhodni priključki s štirimi LED indikatorji s štirimi LED indikatorji Osem LED indikatorjev za LCD prikazovalnik krmiljenje z DIP stikali tipa 16 1 Kvarčni kristal 6MHz Konfiguracija z Tipki»Reset«in logičnim stanjem Programiranje treh vhodnih priključkov Priključki za M0, M1, M2 inicializacijo JTAG in za DIP stikala za vpis podatkov preizkušanje na EEPROM določenih aplikacij Priključki za zaporedno USB priključek inicializacijo Priključki za določitev branja iz EEPROMA-a Priključki za (SD,D0,CD) prenos podatkov (IO_P,IO_N, LED indikator GCLK,GND) Blokirni kondenzatorji Napajalni del Linearno nastavljivi regulatorji Linearni 5V regulator (LM317T) (LM7805) Slika 2.1: Opisani deli razvojne enote Glavni elementi razvojne enoto so: napajalni del LCD prikazovalnik generator urinega signala zaščiteni vhodni in izhodni priključki neposredni vhodno-izhodni priključki DIP stikala za nastavljanje vhodnih logičnih nivojev USB uporabniški vmesnik serijski EEPROM XCS01S za shranjevanje konfiguracijskih podatkov Shemo razvojne enote prikazuje slika 2.2.

RAZVOJNA ENOTA 5 Slika 2.2: Shema razvojne enote

RAZVOJNA ENOTA 6 2.1 Napajalni del Napajalni del razvojne enote je 9 V izmeničnega napajanja. Sestavljen je iz AC priključka, diodnega usmernika, stikala za vklop in izklop, gladilnega in blokirnega kondenzatorja, treh linearno nastavljivih regulatorjev LM317T in enega linearnega 5 V regulatorja LM7805 (slika 2.3). Blokirni kondenzatorji, ki zagotavljajo dovolj energije ob hitrih prehodih in izmenjavanju stanj pri višjih frekvencah, so na vseh napajalnih priključkih FPGA naprav. Poraba toka v celotni obliki z vsemi elementi znaša 76 ma. Slika 2.3: Napajalni del razvojne enote Slika 2.4 prikazuje shemo napajalnika.

RAZVOJNA ENOTA 7 Slika 2.4: Shema napajalnika 2.2 LCD prikazovalnik Za izpis raznih stanj števcev, ure itd. se uporablja matrični alfanumerični LCDprikazovalnik tipa 16 1 (16 znakov v eni vrsti). Enovrstični prikazovalnik uporabljamo zato, ker je razvojna enota namenjena učilu in nimamo potrebe po večvrstičnih. Slika 2.5 prikazuje shemo LCD prikazovalnika 16 1.

RAZVOJNA ENOTA 8 Slika 2.5: Shema LCD prikazovalnika 16 1 Slika 2.6 prikazuje povezavo LCD prikazovalnika s FPGA vezjem XC3S100E. Slika 2.6: Povezava LCD prikazovalnika s FPGA vezjem XC3S100E Tabela 2.1 podaja seznam priključkov LCD prikazovalnika s FPGA vezjem XC3E100E.

RAZVOJNA ENOTA 9 Tabela 2.1: Priključki LCD prikazovalnika OZNAKA DB4 DB5 DB6 DB7 RS R/W ENA FPGA PIN P70 P71 P78 P79 P95 P98 P94 Predloga priključkov LCD prikazovalnika (.ucf datoteka): NET "DB4" LOC = "p70" IOSTANDARD = LVCMOS33 ; NET "DB5" LOC = "p71" IOSTANDARD = LVCMOS33 ; NET "DB6" LOC = "p78" IOSTANDARD = LVCMOS33 ; NET "DB7" LOC = "p79" IOSTANDARD = LVCMOS33 ; NET "RS" LOC = "p95" IOSTANDARD = LVCMOS33 ; NET "R/W" LOC = "p98" IOSTANDARD = LVCMOS33 ; NET "ENA" LOC = "p94" IOSTANDARD = LVCMOS33 ; 2.3 Generator urinega signala Za generiranje sistemskega urinega signala je namenjen oscilator CFPS321B (slika 2.7). S pomočjo tega oscilatorja in upraviteljem sistemske ure DCM lahko natančno upravljamo s signali ure. Oscilator CFPS321B omogoča generiranje urinega signala s frekvenco 50 MHz. Slika 2.7: Oscilator CFPS321B [2] Slika 2.8 prikazuje shemo generatorja urinega signala.

RAZVOJNA ENOTA 10 Slika 2.8: Shema generatorja urinega signala Tabela 2.2 podaja podatek o priključku za generator urinega signala s FPGA vezjem XC3S100E. Tabela 2.2: Priključek za generator urinega signala OZNAKA GCLK FPGA PIN P9 Predloga priključka za generator urinega signala (.ucf datoteka): NET "GCLK" LOC = "p9" IOSTANDARD = LVTTL ; Za delovanje oscilatorja niso potrebne nobene dodatne komponente, potrebujemo samo napajanje z enojno enosmerno napetostjo v območju od 2,7 V do 5 V in zunanji kondenzator. Amplituda izhodnega signala je pravokotna s polovičnim trajanjem impulza. S pomočjo zunanjega preklopnika lahko osrednjo frekvenco 50 MHz delimo na 25 MHz ali dobimo s povratno vezavo 100 MHz. 2.4 Zaščiteni vhodni in izhodni priključki Razvojna enota ima zaščitene vhodne in izhodne priključke, povezane z vmesnikom SN74LV245A za priključitev starejših naprav. Starejše naprave delujejo z višjimi napetostnimi nivoji, zato imamo vmesnik, ki nam bo omogočil priključitev teh naprav. Slika 2.9 prikazuje shemo zaščitenih vhodnih priključkov.

RAZVOJNA ENOTA 11 Slika 2.9: Shema zaščitenih vhodnih priključkov Slika 2.10 prikazuje povezavo zaščitenih vhodnih priključkov s FPGA vezjem XC3S100E. Slika 2.10: Povezava zaščitenih vhodnih priključkov s FPGA vezjem XC3S100E Tabela 2.3 podaja seznam zaščitenih vhodnih priključkov s FPGA vezjem XC3S100E. Tabela 2.3: Zaščiteni vhodni priključki OZNAKA VH0 VH1 VH2 VH3 FPGA PIN P58 P54 P57 P53

RAZVOJNA ENOTA 12 Predloga zaščitenih vhodnih priključkov (.ucf datoteka): NET "VH0" LOC = "p58" IOSTANDARD = LVCMOS33 ; NET "VH1" LOC = "p54" IOSTANDARD = LVCMOS33 ; NET "VH2" LOC = "p57" IOSTANDARD = LVCMOS33 ; NET "VH3" LOC = "p53" IOSTANDARD = LVCMOS33 ; Slika 2.11 prikazuje shemo zaščitenih izhodnih priključkov. Slika 2.11: Shema zaščitenih izhodnih priključkov Slika 2.12 prikazuje povezavo zaščitenih izhodnih priključkov s FPGA vezjem XC3S100E. Slika 2.12: Povezava zaščitenih izhodnih priključkov s FPGA vezjem XC3S100E

RAZVOJNA ENOTA 13 Tabela 2.4 podaja seznam zaščitenih izhodnih priključkov s FPGA vezjem XC3S100E. Tabela 2.4: Zaščiteni izhodni priključki OZNAKA IZH0 IZH1 IZH2 IZH3 FPGA PIN P2 P3 P4 P22 Predloga zaščitenih izhodnih priključkov (.ucf datoteka): NET "IZH0" LOC = "p2" IOSTANDARD = LVCMOS33 ; NET "IZH1" LOC = "p3" IOSTANDARD = LVCMOS33 ; NET "IZH2" LOC = "p4" IOSTANDARD = LVCMOS33 ; NET "IZH3" LOC = "p22" IOSTANDARD = LVCMOS33 ; Vmesnik [1] SN74LV245A omogoča asinhrono preklapljanje med dvema 8-bitnima vodiloma. Narejen je na osnovi nizkonapetostne CMOS tehnologije. Prenos logičnih stanj iz vodila A v B in iz B v A je mogoč glede na logično stanje DIR priključka. Priključek omogoči izhod (OE), vmesnik lahko postavi v stanje visoke impedance, tako da nanj priključene naprave ne čutijo nobene obremenitve. Vhodni priključki so lahko krmiljeni z napetostmi od 3,3 V do 5 V, kar ustreza LVTTL ali TTL napetostnemu standardu. Standarda se razlikujeta po velikosti napajalne napetosti in po napetosti, ki jo dajeta na izhodu ob visokem logičnem stanju. Ostali napetostni nivoji preklopov in nivojev logičnih stanj na izhodu so popolnoma identični, zato lahko z LVTTL napravo krmilimo katerokoli TTL napravo. Priklop med TTL in LVTTL napravami omogočajo samo integrirana vezja iz družine LVC. Slika 2.13 prikazuje logično zgradbo vmesnika. Do 7. ostalih kanalov Slika 2.13: Logična zgradba vmesnika [1]

RAZVOJNA ENOTA 14 Tudi vmesnik SN74LV245A je zaščiten. Zaščita vezja je potrebna zaradi vsesplošne uporabe razvojne enote. Ker je vezje namenjeno pedagoškemu delu, bi lahko hitro prišlo do uničenja katerega izmed programljivih vhodno-izhodnih priključkov. Zaščito vezja sestavljata en upor, vezan zaporedno na vhodno-izhodni priključek, in zenerjeva dioda 4,7 V. To pomeni, da napetost na diodi zaradi omejitve toka z uporom ne more preseči 5 V. Tovrstna zaščita zdrži prednapetosti do 30 V. 2.5 Neposredni vhodno-izhodni priključki Ti priključki nimajo zaščite vezja, ampak so neposredno povezani s FPGA vezjem. Ker priključki nimajo zaščite z nobenim zaščitnim vezjem, lahko pride ob nepravilni uporabi do poškodbe FPGA vezja ali celo uničenja. Namenjeni so prenosu podatkov med zunanjo periferijo in razvojno enoto. Slika 2.14 prikazuje shemo neposrednih vhodno-izhodnih priključkov. Slika 2.14: Shema neposrednih vhodno-izhodnih priključkov Slika 2.15 prikazuje povezavo neposrednih vhodno-izhodnih priključkov s FPGA vezjem XC3S100E.

RAZVOJNA ENOTA 15 Slika 2.15: Povezava neposrednih vhodno-izhodnih priključkov s FPGA vezjem XC3S100E Tabela 2.5 podaja seznam neposrednih vhodno-izhodnih priključkov s FPGA vezjem XC3S100E. Tabela 2.5: Neposredni vhodno-izhodni priključki OZNAKA VH-IZH0 VH-IZH1 VH-IZH2 VH-IZH3 VH-IZH4 VH-IZH5 VH-IZH6 VH-IZH7 VH-IZH8 VH-IZH9 VH-IZH10 VH-IZH11 VH-IZH12 VH-IZH13 VH-IZH14 VH-IZH15 FPGA PIN P60 P61 P62 P63 P65 P66 P67 P68 P83 P84 P85 P86 P88 P89 P90 P91

RAZVOJNA ENOTA 16 Predloga neposrednih vhodno-izhodnih priključkov (.ucf datoteka): NET "IZH0" LOC = "p60" IOSTANDARD = LVCMOS33 ; NET "IZH1" LOC = "p61" IOSTANDARD = LVCMOS33 ; NET "IZH2" LOC = "p62" IOSTANDARD = LVCMOS33 ; NET "IZH3" LOC = "p63" IOSTANDARD = LVCMOS33 ; NET "IZH4" LOC = "p65" IOSTANDARD = LVCMOS33 ; NET "IZH5" LOC = "p66" IOSTANDARD = LVCMOS33 ; NET "IZH6" LOC = "p67" IOSTANDARD = LVCMOS33 ; NET "IZH7" LOC = "p68" IOSTANDARD = LVCMOS33 ; NET "IZH8" LOC = "p83" IOSTANDARD = LVCMOS33 ; NET "IZH9" LOC = "p84" IOSTANDARD = LVCMOS33 ; NET "IZH10" LOC = "p85" IOSTANDARD = LVCMOS33 ; NET "IZH11" LOC = "p86" IOSTANDARD = LVCMOS33 ; NET "IZH12" LOC = "p88" IOSTANDARD = LVCMOS33 ; NET "IZH13" LOC = "p89" IOSTANDARD = LVCMOS33 ; NET "IZH14" LOC = "p90" IOSTANDARD = LVCMOS33 ; NET "IZH15" LOC = "p91" IOSTANDARD = LVCMOS33 ; 2.6 DIP stikala za nastavljanje vhodnih logičnih nivojev Za preizkušanje določenih aplikacij uporabljamo nastavljive vhodne priključke. Z osmimi uporabniškimi DIP stikali na razvojni enoti postavljamo posamezne vhodne linije na ustrezen logični nivo. Ko je stikalo sklenjeno, je na vhodnem priključku nizek logični nivo, pri razklenjenem stikalu je visok logični nivo. Za pravilno delovanje DIP stikal je potrebno v strukturi programirnega vezja uporabiti dvižne (pull up) upore. DIP stikala so vezana na pozitivni potencial 3.3 V. Uporabljamo mini DIP stikala v enem ohišju. Slika 2.16 prikazuje shemo DIP stikal. Slika 2.16: Shema DIP stikal Slika 2.17 prikazuje povezavo DIP stikal s FPGA vezjem XC3S100E.

RAZVOJNA ENOTA 17 Slika 2.17: Povezava DIP stikal s FPGA vezjem XC3S100E Tabela 2.6 podaja seznam priključkov DIP stikal s FPGA vezjem XC3S100E. Tabela 2.6: Priključki DIP stikala OZNAKA FPGA PIN LED DIODA DIP0 P5 LD9 DIP1 P10 LD10 DIP2 P11 LD11 DIP3 P12 LD12 DIP4 P18 LD13 DIP5 P16 LD14 DIP6 P17 LD15 DIP7 P15 LD16 Predloga priključkov DIP stikala (.ucf datoteka): NET "DIP0" LOC = "p5" IOSTANDARD = LVTTL PULLUP; #DIP1 NET "DIP1" LOC = "p10" IOSTANDARD = LVTTL PULLUP; #DIP2 NET "DIP2" LOC = "p11" IOSTANDARD = LVTTL PULLUP; #DIP3 NET "DIP3" LOC = "p12" IOSTANDARD = LVTTL PULLUP; #DIP4 NET "DIP4" LOC = "p18" IOSTANDARD = LVTTL PULLUP; #DIP5 NET "DIP5" LOC = "p16" IOSTANDARD = LVTTL PULLUP; #DIP6 NET "DIP6" LOC = "p17" IOSTANDARD = LVTTL PULLUP; #DIP7 NET "DIP7" LOC = "p15" IOSTANDARD = LVTTL PULLUP; #DIP8 2.7 USB uporabniški vmesnik USB vmesnik razvojne enote ponuja uporabniški dostop do vhodno-izhodnih priključkov. S pomočjo ustrezne programske opreme v okolju MATLAB lahko med tekom procesa v programirnem vezju sprejemamo ali pošiljamo podatke. Združljivost med USB vmesnikom in MATLAB-om je popolna, saj za delovanje med njima ni potreben noben

RAZVOJNA ENOTA 18 programski ali strojni vmesnik. Takšen vmesnik omogoča enostavno izvedbo meritev razvitih aplikacij v FPGA strukturi. Vmesnik sestavlja integrirano vezje FT245BL (slika 2.18), neposredno priklopljeno na dvonamenske vhodno-izhodne priključke programirnega vezja. Prenos podatkov poteka vzporedno z osembitno dolgo besedo. Zraven priključkov za prenos podatkov imamo še štiri kontrolne signale. Lastnosti integrirnega vezja FT245BL so [1]: razmeroma poceni in lahko dobavljiv podpira sočasen in masoven prenos skrbi za celotno USB komunikacijo kompatibilem z USB standardoma USB 1.1 in USB 2.0 lahko shranljiva identifikacija naprave na zunanji EEPROM vsebnost pretvornika nivojev s 5 V na 3,3 V z gonilniki podprt na operacijskem sistemu Microsoft Windows in MAC OS-X ter Linux Slika 2.18: FT245BL uporabniški vmesnik proizvajalca FTDI [2] Uporaba vmesnika je preprosta, saj nam o USB komunikaciji ni potrebno ničesar vedeti. Sama shema povezav ni zahtevna, ima malo zunanjih povezav. Vmesnik daje na izhodu logična stanja v območju od 0 V do 3,3 V, kar ustreza LVTTL standardu, zaradi tega lahko povezavo vmesnika izvedemo direktno. Slika 2.19 prikazuje shemo USB vmesnika.

RAZVOJNA ENOTA 19 Slika 2.19: Shema USB vmesnika Slika 2.20 prikazuje povezavo USB vmesnika s FPGA vezjem XC3S100E. Slika 2.20: Povezava USB vmesnika s FPGA vezjem XC3S100E Tabela 2.7 podaja seznam priključkov USB vmesnika s FPGA vezjem XC3S100E.

RAZVOJNA ENOTA 20 Tabela 2.7: Priključki USB vmesnika OZNAKA USB0 USB1 USB2 USB3 USB4 USB5 USB6 USB7 RD WR TXE RXF FPGA PIN P24 P26 P27 P30 P34 P36 P38 P40 P47 P48 P49 P41 Predloga priključkov USB vmesnika (.ucf datoteka): NET "USB0" LOC = "p24" IOSTANDARD = LVCMOS33 ; NET "USB1" LOC = "p26" IOSTANDARD = LVCMOS33 ; NET "USB2" LOC = "p27" IOSTANDARD = LVCMOS33 ; NET "USB3" LOC = "p30" IOSTANDARD = LVCMOS33 ; NET "USB4" LOC = "p34" IOSTANDARD = LVCMOS33 ; NET "USB5" LOC = "p36" IOSTANDARD = LVCMOS33 ; NET "USB6" LOC = "p38" IOSTANDARD = LVCMOS33 ; NET "USB7" LOC = "p40" IOSTANDARD = LVCMOS33 ; NET "RD" LOC = "p47" IOSTANDARD = LVTTL ; NET "WR" LOC = "p48" IOSTANDARD = LVCMOS33; NET "TXE" LOC = "p49" IOSTANDARD = LVCMOS33 ; NET "RXF" LOC = "p41" IOSTANDARD = LVCMOS33; 2.8 Serijski EEPROM XCS01S za shranjevanje konfiguracijskih podatkov Konfiguracijske podatke [2] shranjujemo na zunanje pomnilne enote zaradi trajnega shranjevanja konfiguracijskih podatkov, kar omogoča, da konfiguracijski podatki ostanejo tudi pri izgubi napajanja. Ob vklopu napajanja se ti samodejno prenesejo v programirno vezje. Za shranjevanje konfiguracijskih podatkov Spartan 3E programirnega vezja uporabljamo 1 Mb velik pomnilnik, uporablja se 1 Mb Xilinx XCS01S EEPROM. Vpis podatkov poteka preko inicializacijskega kabla za Xilinx. Z JTAG vmesnikom lahko

RAZVOJNA ENOTA 21 konfiguriramo programirno vezje ali pa vpisujemo podatke v pomnilnik. Napajanje pomnilnika moramo izvesti z enosmerno napetostjo 3,3 V, čeprav je delovanje zagotovljeno tudi pri nižjih napetostih. Slika 2.21 prikazuje serijski EEPROM XCS01S. Slika 2.21: Serijski EEPROM XCS01S [2] Slika 2.22 prikazuje shemo pomnilnika. Slika 2.22: Shema pomnilnika 2.9 Inicializacijski kabel S pomočjo inicializacijskega kabla konfiguriramo programirna vezja FPGA, CPLD ali vpisujemo podatke v EEPROM pomnilnike. Podpira IEEE 1284 protokol in je popolnoma združljiv s programsko opremo impact podjetja Xilinx. Prav tako je združljiv s protokolom IEEE 1149.1. Omogoča priklop naprav preko JTAG vodila in na Xilinx programirna vezja v pomožnem serijskem načinu. Napajanje je izvedeno s pomočjo

RAZVOJNA ENOTA 22 odcepnika na priključku miške ali tipkovnice osebnega računalnika. Kabel je spojen z osebnim računalnikom preko LTP tiskalniških vrat, podprt pa je z operacijskimi sistemi Microsoft Windows XP in Linux. Avtomatsko zaznavanje referenčne napetosti priklopljene naprave omogoča komuniciranje z različnimi napetostnimi standardi. Inicializacijski kabel prikazuje slika 2.23. Slika 2.23: Inicializacijski kabel [5] Navodila za priključitev inicializacijskega kabla z razvojno enoto Inicializacijski kabel in razvojno enoto priključimo, tako da so priključki na inicializacijskem kablu in razvojni enoti priključeni enako, in sicer: TMS TMS TDI TDI TCK TCK GND GND VCC 2V5

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 23 3 DELO S PROGRAMSKIM OKOLJEM XILINX ISE 3.1 Organizacija ISE WebPack je aplikacija, katera sodi v sklop zagotavljanja celovitosti proizvajalca programljivih logičnih vezij Xilinx. Namen je programiranje FPGA razvojnih enot. Glavni nadzornik opravil okolja ISE Webpack, Project Navigator, pomaga uporabnikom, da nastavijo in vodijo implementacijo sistema. ISE Webpack ponuja sintezo orodij, ki ga razvija samo podjetje Xilinx. Omogoča tudi uporabo orodij podjetij Synplicity, Mentor Graphics in Synopsis. Slika 3.1 prikazuje postopek izdelave projekta. Slika 3.1: Postopek izdelave projekta [2] 3.2 Namestitev in zagon programskega paketa Xilinx ISE WebPACK Za namestitev programa Xilinx ISE WebPACK moramo imeti na računalniku nameščen Windows 2000 ali XP. Moramo pa imeti tudi več kot 4 GB prostora na trdem disku. Podjetje Xilinx na svoji spletni strani ponuja osnovno verzijo

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 24 (http://www.xilinx.com/ise/logic_design_prod/webpack.htm) razvojnega okolja za njihova FPGA in CPLD vezja. Ko smo program namestili, program zaženemo z dvojnim klikom na Xilinx ISE 9.1i. Lahko pa poiščemo v meniju Start Xilinx ISE 9.1i in izberemo Project Navigator, kot prikazuje slika 3.2. Slika 3.2: Zagon programa Po zagonu programa se nam odpre program Xilinx ISE (slika 3.3), kjer imamo različna okna: Okno VIROV (Sources), v katerem lahko izbiramo med različnimi viri projekta. Okno POSTOPEK (Processes), v katerem lahko projekt izvajamo. Okno PREPIS (Transcript), v katerem nam prikazuje komentarje pregledovanja in najdene napake. Slika 3.3: Programa Xilinx ISE

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 25 3.3 Ustvarjanje novega projekta Za izdelavo novega projekta v programu Xilinx ISE uporabimo naslednjo pot: Novi ISE projekt ustvarimo tako, da izberemo: Datoteka (File) Novi projekt (New Project). Odpre se okno Ustvarjanje novega projekta (Create New Project), za določitev imena in lokacije projekta (slika 3.4). V polje Ime projekta (Project Name) vpišemo ime našega projekta (brez presledkov, ker jih program ne zazna) in v polju Lokacija projekta (Project Location) izberemo, kje se bo novi projekt shranjeval. Ko vpisujemo ime projekta (Project Name), se nam to ime posledično vpisuje v lokacijo projekta (Project Location). V polju Vrh nivoja tipa vira (Top-Level Source Type) je iz ponujenih seznamov že izbran HDL. Slika 3.4: Določitev imena in lokacije projekta Sledi okno Lastnosti naprave (Device Properties) (slika 3.5), kjer izberemo naslednje lastnosti: Kategorija izdelka (Product Category) : All. Družina (Family): Spartan 3E (ker uporabljamo programirno vezje iz družine Spartan 3E). Naprava (Device): XC3S100E (ker uporabljamo razvojno enoto s XC3S100E programirnim vezjem). Paket (Package): VQ100 (podnožnje programirnega vezja).

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 26 Hitrost (Speed): -4. Vrh nivoja tipa vira (Top-Level Source Type): HDL. Orodje za spajanje (Synthesis Tool): XST (VHDL/Verilog). Simulator: Modelsim-SE Verilog. Zaželjeni jezik (Preferred Language): Verilog. Na koncu izberemo še izboljšave povzetka (Enable Enhanced Design Summary), ostala polja pa pustimo neizpolnjena. Slika 3.5: Lastnosti naprave Sledi okno Ustvarjanje novega vira (Create New Source), v katerem kliknemo Novi vir (New Source). Sledi okno Izbira tipa vira (Select Source Type), v katerem določimo ime datoteke, lokacijo in tip. Pod Ime datoteke (File name) vpišemo ime naše datoteke (brez presledkov, ker jih program ne zazna) in pod Lokacija (Location) izberemo naslov, kjer bo datoteka shranjena, nato še na levi strani izberemo tip vira. Tip vira lahko izbiramo med IP (Coregen & Architecture Wizard), Schematic, State Diagram, Test Bench WaveForm, User Document, Verilog Module, Verilog Test Fixture, VHDL Module, VHDL Library, VHDL Package, VHDL Test Bench. Nato izberemo dodati projektu (Add to project), kar pomeni, da vse, kar je izbrano v oknu Izbira tipa vira (Select Source Type), dodamo projektu (slika 3.6).

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 27 Slika 3.6: Izbira tipa vira Okno Povzetek (Summary) prikaže izbrane lastnosti projekta, in sicer Dodati projektu (Add to Project), Vir imenika oziroma kje je projekt shranjen (Source Directory), Tip vira (Source Type), Ime vira (Source Neme). Za potrditev lastnosti kliknemo Končati (Finish). Nato ko program vpraša, če želimo ustvariti novo mapo za projekt, kliknemo Ja (Yes). Odpre se okno Ustvari novi vir (Create New Source) z izbranim virom datoteke (Source File) in tipom (Type). Če hočemo spremeniti izbrani vir datoteke (Source File) in tip (Type), kliknemo Odstranitev (Remove) (slika 3.7). Slika 3.7: Izbran vir in tip datoteke

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 28 V oknu Dodajanje obstoječemu viru (Add Existing Sources) lahko po potrebi vključimo dodaten že obstoječi vir, in sicer s klikom na Dodati vir (Add Source). Ko končamo z ustvarjanjem novega projekta, se nam prikaže povzetek izbranih nastavitev v oknu Povzetek projekta (Project Summary), in sicer Ime projekta (Project Name), Pot projekta (Project Path), Vrh nivoja tipa vira (Top Level Source Type), Družina naprave (Device Family), Naprava (Device), Paket (Package), Hitrost (Speed), Orodje za spajanje (Synthesis Tool), Simulator (Simulator), Zaželjeni jezik (Prefered Language). V primeru, da opazimo, da nismo izbrali pravilnih lastnosti, lahko te še naknadno spremenimo. Sledi osnovno okno z vsemi orodji. Na levi strani imamo okno virov (Sources), v katerem lahko spodaj izbiramo med zavihki virov (Sources), Snapshats, knjižnic (Libraries), simbolov (Symbols). Pod oknom virov (Sources) imamo okno Postopek (Processes), kjer lahko načrt sintetiziramo (Synthesize XST), izvajamo (Implement Design) in ustvarimo programsko datoteko (Generate Programming File). Na desni strani je Povzetek načrta (Design Summary), kjer imamo Stanje projekta (Project Status), Delitev povzetka (Partition Summary), Povzetek uporabe načrta (Device Utilization Summary), Povzetek uspešnosti (Performance Summary) in Podrobna poročila (Detailed Reports). Spodaj imamo še okno Prepis (Transcript), kjer nam prikazuje komentarje pregledovanja in najdene napake (slika 3.8). Slika 3.8: Osnovno okno z vsemi orodji

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 29 3.4 Shematski opis elementa Za shematski element moramo pri ustvarjanju projekta v oknu Izbira tipa vira (Select Source Type) izbrati Shematic (slika 3.6). Vse ostalo izvajamo po navodilih, ki so v poglavju Ustvarjanje novega projekta. Ko smo ustvarili svoj projekt v oknu virov (Sources) iz menija okna virov za (Sources for), izberemo Sinteza-Izvajanje (Synthesis/Implementation) (slika 3.9). Slika 3.9: Izbira menija V oknu virov (Sources) izberemo željeno vezje, v katerega nato dodamo željen element (slika 3.10). Slika 3.10: Izbira vira V oknu Postopek (Processes) moramo paziti na Možnost izbora (Select Options). Izbrane možnosti (Select Options) nam olajšajo delo med izvajanjem. Izbirali smo naslednje možnosti (slika 3.11): S klikom na sklop (When you click on a branch) lahko izbiramo med: Izberi celoten sklop (Select the entire branch), katerega smo izbrali mi, ali Izberi samo linijski odsek (Select the line segment).

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 30 Ko premakneš objekt (When you move an object), lahko izbiramo med: Ohrani povezavo z ostalimi predmeti (Keep the connections to other objects), katero smo izbrali mi, ali Prekini povezavo z ostalimi predmeti (Break the connections to other objects). Kadar uporabljaš orodje za izbiro področja, izberi objekt (When you use the area select tool, select the objects that), ki ga področje vsebuje (Are enclosed by the area), to smo izbrali mi, ali ki ga križa (Intersect the area). Kadar uporabljaš orodje za izbiro področja, izberi objekte (When you use the area select tool, select), ki izkjučujejo karakteristiko okna (Objects excluding attribute windows), kot smo izbrali mi, ali tiste, ki se tičejo samo okna (Attributes windows only). Slike 3.11: Izbrane možnosti Nato v oknu virov (Sources) kliknemo zavihek Simboli (Symbols), kjer lahko izberemo željen element iz knjižnice (slika 3.12). Element izberemo tako, da pod Ime simbola (Symbol Name Filter) vpišemo njegovo ime, nato se nam vpisano ime elementa prikaže pod Simboli (Symbols), potem z miško enkrat kliknemo na to ime in ga prenesemo desno

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 31 na delovni list. Za lažje razumevanje delovanja elementov si pomagamo tako, da kliknemo na Simbol info (Symbol Info), lahko pa tudi z desnim klikom miške na Simbol in izberemo iz menija Simbol (Symbol) Simbol info (Symbol Info). Za urejanje simbola izberemo Simbol (Symbol) Uredi simbol (Edit Symbol), kjer lahko simbolu uredimo vhodnoizhodne priključke, velikost in ime. Za dodajanje vhodno-izhodnih označevalcev kliknemo na Add I/O Marker ( ). Slika 3.12: Knjižnica za izbiro elementa 3.5 VHDL opis elementa Elementi, ki sestavljajo oddajno in sprejemno vezje, so v večini opisani v visokonivojskem jeziku VHDL, saj lahko na hiter in kompakten način naredimo kompleksne elemente ter zelo natančno simulacijo. Celotno vezje je prikazano shematsko, saj pregledno prikazuje relacije med posameznimi gradniki sekvenčnega vezja. Za VHDL element moramo pri ustvarjanju projekta v oknu za Izbira tipa vira (Select Source Type) izbrati VHDL Module (slika 3.6). Po oknu Izbira tipa vira (Select Source Type) se nam odpre okno Določite module (Define Module), kjer določimo vhodno-izhodne priključke vezja. Pod Ime vrat (Port Name) vpišemo imena vhodno-izhodnih priključkov, v našem primeru VH1, VH2, IZHOD, in pod Smer (Direction) določimo, kateri so vhodni (in) in kateri izhodni (out) priključki. V našem primeru sta VH1 in VH2 vhodna (in) priključka in IZHOD izhodni

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 32 (out) priključek (slika 3.13). V nekaterih primerih več signalov združujemo v vodila, za katere uporabljamo v jeziku VHDL vektorske podatkovne tipe: bit_vector in std_logic_vector. Velikost vektorjev določimo pri deklaraciji, kjer navedemo indekse spodje (LSB) in zgornje (MSB) meje. Najnižji bit ima običajno indeks 0 in se nahaja na desni strani, zato npr. 4-bitni vektor deklariramo kot»4 down to 0«. Slika 3.13: Določitev vhodno-izhodnih priključkov Sledi okno Povzetek (Summary) z lastnostmi ustvarjenega delovnega lista. S klikom na Končati (Finish) bo projekt navigator ustvaril novi vir z lastnostmi, ki smo jih izbrali: Dodati projektu (Add to Project), Vir imenika, kjer je projekt shranjen (Source Directory), Tip vira (Source Type), Ime vira (Source Name), Ime subjekta (Entity Name), Ime arhitekture (Architecture Name), Definicija vrat (Port Definitions). Nadaljevanje izvajamo po navodilih, ki so v poglavju Ustvarjanje novega projekta. Ko smo ustvarili svoj projekt, dobimo novi zavihek z imenom, ki smo si ga izbrali v oknu Izbira tipa vira (Select Source Type). V tem zavihku vidimo samodejno generirano predlogo VHDL jezika. Samodejno generirana predloga VHDL jezika je sestavljena iz dveh delov (slika 3.14): [4] V prvem delu (Entity) so opisani priključki vezja in ime datoteke. Vse to smo sami določili v oknu Določiti module (Define Module). V drugem delu (Architecture) je opisano delovanje vezja - med besedama Začeti (Begin) in Končati (End Behavioral) v arhitekturnem delu.

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 33 Slika 3.14: Samodejno generirana predloga VHDL jezika Z izpopolnjenim programom preverimo sintakso, in sicer preverimo, če je HDL koda pravilno vnesena in ali smo naredili kake tipkarske napake. V oknu Viri (Sources) izberemo željen element ali vezje, kateremu želimo preveriti sintakso. V oknu Postopek (Processes) z desnim klikom miške kliknemo Preveriti sintakso (Check Syntax) in izberemo Teči (Run) (slika 3.15), nato opazujemo pregled pravilnosti sintaks v oknu Prepis (Transcript). Popraviti moramo kakršnekoli napake; če nadaljujemo, ne da bi popravili napake, ne bomo mogli simulirati našega načrta.

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 34 Slika 3.15: Preverjanje sintaks Ko so vse sintakse pravilne, v oknu Postopek (Processes) izberemo Zasnova pripomočkov (Design Utilities) Ustvariti shematski simbol (Create Schematic Symbol) in nato z desnim klikom miške izberemo Teči (Run). Moramo tudi paziti, da imamo v oknu Viri (Sources) izbran naš element ali vezje. Ustvariti shematski simbol (Create Schematic Symbol) ustvari iz VHDL jezika element v shematski obliki (slika 3.16). Slika 3.16: Ustvarjanje shematskega elementa

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 35 Ko je element ustvarjen, ga najdemo, tako kot je opisano pri sliki 3.12 v poglavju Shematski vnos elementa. Na spodnji sliki 3.17 je prikazan ustvarjen element. Slika 3.17: Ustvarjen element 3.6 Inicializacija JTAG Pri inicializaciji je 2,5 V logika. S priključitvijo JTAG kabla pazimo, da je napajanje pravilno priključeno, saj lahko v nasprotnem primeru poškodujemo čip. Nato nastavimo pravilno konfiguracijo z logičnim stanjem treh vhodnih priključkov M0, M1 in M2. Povezava za inicializacijo JTAG mora biti M0, M1,M2 (1, 0, 1). Slika 3.18 prikazuje JTAG priključke. Slika 3.18: JTAG priključki [2] Ko smo povezali vezje z inicializacijskim kablom, gremo v okno Viri (Sources), kjer izberemo naše vezje. V oknu Postopek (Processes) izberemo Uporabnik omejitve (User Constraints) Dodeliti paket pinov (Assign Package Pins) in nato z desnim klikom miške izberemo Teči (Run) (slika 3.19).

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 36 Slika 3.19: Izbira vezja in dodelitev paketa pinov Požene se nam okno Xilinx PACE, kjer imamo okni Seznam vhodno-izhodnih pinov (Design Object List I/O Pins) in Načrt arhitekture (Device Architecture), v katerem vidimo načrt naše razvojne enote. Nato v seznamu vhodno-izhodnih pinov (Desing Object list I/O Pins) nastavimo pin lokacijo za vsak pin (Loc), banke (Bank), napetostne nivoje (I/O Std) in na vhodne pine (Termination) nastavimo Pulldown upore (slika 3.20). Ko končamo z nastavitvami, v oknu Seznam vhodno-izhodnih pinov (Desing Object list I/O Pins) zapremo okno Xilinx PACE; s tem ko smo zaprli okno Xilinx PACE, so se nam vse nastavitve shranile. Slika 3.20: Seznam vhodno-izhodnih pinov Če izberemo v oknu Postopek (Processes) Uporabnik omejitve (User Constraints) Uredi omejitve (besedila)(edit Constraints (Text)) in z desnim klikom miške kliknemo Teči (Run), se nam odpre predloga vhodno-izhodnih priključkov v tekstovni obliki (ucf datoteka) (slika 3.21).

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 37 Slika 3.21: Predloga vhodno-izhodnih priključkov v tekstovni obliki Sedaj izvedemo sintezo. V oknu Postopek (Processes) izberemo Sinteza (Synthesize XST), kliknemo desno na miški in izberemo Teči (Run). Med sintezo se HDL datoteke prevajajo v vrata in optimirajo za želeno oblikovanje. Procesi, ki so na razpolaga za sintezo z uporabo XST, so naslednji (slika 3.22): Poročilo o vpogledu v sintezo (View Synthesis Report). Vsebuje točen načrt sinteze in časovni povzetek ter seznam optimalnosti, ki so bile uporabljene. Pogled v RTL shemo (View RTL Schematic). Generira shematski pogled tvojega RTL mrežnega seznama. Vpogled v shemo tehnologije (View Technology Schematic). Generira shemo tehnologije mrežnega seznama. Proizvodnja postsintetičnega simulacijskega modela (Generate Post-Synthesis Simulation Model). Ustvari HDL simulacijske modele, ki bazirajo na mrežnem seznamu sintetiziranja.

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 38 Slika 3.22: Sinteza vezja Nato sledi izvedba načrta, ki v slučaju FPGA delovanja odkriva napake: prevajanja (Translate) povzemanja (Map) prostor in pot (Place & Route) V oknu Postopek (Processes) izberemo Izvedba načrta (Implement Design), kliknemo desno na miški in izberemo Teči (Run) (slika 3.23). Slika 3.23: Izvedba načrta Sledi izvedba konfiguracije nad programskimi datotekami za pošiljanje razvojni enoti. V oknu Postopek (Processes) izberemo Ustvariti programsko datoteko (Generate Programming File), kliknemo desno na miški in izberemo Teči (Run) (slika 3.24). Z uspešnim zaključkom konfiguracije dobimo datoteko s končnico.bit.

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 39 Slika 3.24: Ustvarjanje programske datoteke Sledi ustvarjanje PROM, ACE ali JTAG datoteke, in sicer v oknu Postopek (Processes) izberemo Ustvari programsko datoteko (Generate Programming File) Ustvari PROM, ACE ali JTAG datoteko (Generate PROM, ACE, or JTAG File), kliknemo desno na miški in izberemo Teči (Run) (slika 3.25). Med tem postopkom se lahko odpre pogovorno okno, kjer kliknemo Upadanje (Decline). Slika 3.25: Ustvarjanje PROM, ACE ali JTAG datoteke Odpre se nam okno Dobrodošli na impact (Welcome to impact), v katerem izberemo Configure device using Boundary-Scan (JTAG). Paziti moramo tudi, da izberemo Avtomatsko poveži kabel in identično Boundary-Scan verigo (Automatically connect to a cable and identify Boundary-Scan chain) (slika 3.26). impact nam omogoča še nasledje: Pripraviti PROM datoteko. Pripraviti sistem ACE datoteke. Pripraviti Boundary-Scan datoteko.

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 40 Slika 3.26: Nastavitev JTAG povezave Program Xilinx ISE se povezuje z razvojno enoto. Če dobimo sporočilo, da sta bili najdeni dve napravi, kliknemo OK za nadaljevanje. Ustvari se novi zavihek Boundary Scan, kjer se nam prikaže veriga programirnega vezja FPGA (xc3s100e) in EEPROM pomnilnik (xcf01s) (slika 3.27). Slika 3.27: Zavihek Boundary Scan

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 41 Z desnim klikom miške kliknemo na glavno programirno vezje FPGA (xc3s100e) in izberemo Določi novo konfiguracijsko datoteko (Assign New Configuration File). Pojavi se nam okno Določi novo konfiguracijsko datoteko (Assign New Configuration File). Za določitev konfiguracijske datoteke za xc3s100e napravo v JTAG verigi, izberemo našo datoteko s končnico *.bit in kliknemo Odpreti (Open) (slika 3.28). Če dobimo opozorilno sporočilo, kliknemo OK. Slika 3.28: Določitev nove konfiguracijsko datoteko Nato v zavihku Boundary Scan ponovno z desnim gumbom miške kliknemo na glavno programirno vezje FPGA (xc3s100e) in izberemo Program. Z izbiro Program vpišemo program v programirno vezje FPGA (xc3s100e). Odpre se okno Lastnosti programiranja (Programming Properties), ki pa jih ne spreminjamo; kliknemo OK, da programiramo napravo. Program se prek JTAG vmesnika prenese na razvojno enoto. Med prenašanjem programa se nam prikaže okno Napredek (Progress Dialog). Ko je programiranje končano, se v modrem okvirju pojavi sporočilo Program uspel (Program Succeeded) (slika 3.29).

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 42 Slika 3.29: Programiranje uspelo 3.7 Zapis programa na EEPROM Z uspešno inicializacijo JTAG nadaljujemo z zapisom na EEPROM. V oknu virov (Sources) izberemo zavihek Konfigurirati (Configuration) in v oknu Postopek (Processes) zavihek Postopek (Processes). Nato v oknu virov (Sources) dvakrat kliknemo na PROM File Formatter (slika 3.30). Slika 3.30: Zapis programa na EEPROM Odpre se okno Priprava PROM datotek (Propare PROM Files). V tem oknu nastavimo naslednje vrednosti (slika 3.31):

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 43 Pod Želim ciljati na (I want to target a), izberemo Xilinx PROM. Pod Oblika PROM datoteke (PROM File Format) izberemo MCS. V Ime PROM datoteke (PROM File Name) vtipkamo ime, kot si ga izberemo v oknu Izbira tipa vira (Select Source Type). Slika 3.31: Priprava PROM datoteke V oknu Specificirati Xilinx PROM napravo (Specify Xilinx PROM Device) nastavimo, koliko naprav bomo uporabljali. V našem primeru uporabljamo samo eno napravo. Kliknemo na Dodati (Add) in dodamo EEPROM, ki ga uporabljamo v programirnem vezju; v našem primeru xcf01s. Po kliku na Dodati (Add) se nam še enkrat odpre okno Specificirati Xilinx PROM napravo (Specify Xilinx PROM Device), vendar imamo sedaj pod Del imena (Part Name) naš EEPROM xcf01s, ki smo ga izbrali v prejšnjem oknu in ga dodali s klikom na Dodati (Add). Nato se pojavi okno Povzetek generacije datoteke (File Generation Summary) s podanimi podatki in če se strinjamo, kliknemo Končati (Finish). Vpraša nas, če smo pripravljeni dodati novo napravo. Kliknemo OK. V naslednjem oknu Dodati napravo (Add Device) izberemo našo datoteko s končnico *.bit in kliknemo Odpreti (Open) (slika 3.32).

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 44 Slika 3.32: Dodajanje naprave Kliknemo Ne (No), ko nas vpraša, če bi radi dodali še kakšno oblikovalsko datoteko k podatkovni bazi. Nato kliknemo OK za nadaljevanje. Dobimo novi zavihek (PROM File Formatter). V oknu Postopek (Proceses) izberemo zavihek Configuration Operations in dvakrat kliknemo Ustvariti datoteko (Generate File). Po uspešno končanem zapisovanju se nam v modrem okvirju prikaže besedilo Generacija PROM datoteke uspela (PROM File Generation Succeeded) (slika 3.33). Slika 3.33: Uspešno končano zapisovanje

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 45 Sedaj sprogramiramo še vezje v»flashu«, kar pomeni, da se bo naš program izvajal tudi po»resetu«razvojne enote. Izberemo datoteko Boundary Scan, v kateri izberemo ikono EEPROM xcf01s in z desnim klikom miške iz menija izberemo Določi novo konfiguracijsko datoteko (Assign New Configuration File). Odpre se okno Določi novo konfiguracijsko datoteko (Assign New Configuration File), v katerem izberemo našo datoteko s končnico *.mcs in kliknemo Odpreti (Open) (slika 3.34). Slika 3.34: Določitev nove konfiguracijske datoteke Nato z desnim klikom miške ponovno kliknemo na EEPROM xcf01s in iz menija izberemo Konfiguracijska datoteka (Assign New Configuration File). Odpre se okno Izberite napravo imena (Select Device Part Name), v kateri izberemo xcf01s_vo20 (slika 3.35). Slika 3.35: Izbira naprave

DELO S PROGRAMSKIM OKOLJEM XILINX ISE 46 Sedaj spet z desnim miškinim gumbom kliknemo na EEPROM (xcf01s) in izberemo Program. Z izbiro Program vpišemo le-tega v EEPROM (xcf01s). Program se zapiše v EEPROM in po uspešnem zaključku sporoči v modrem okvirju Program uspel (Program Succeded). Postopki nastavitve za uporabo podatkov iz EEPROM-a: Po opravljenem zapisu na EEPROM izklopimo razvojno enoto s stikalom. Nastavimo konfiguracijo z logičnim stanjem vhodnih priključkov M0, M1, M2, kjer mora biti povezava M0, M1, M2 (1, 1, 1). Nato nastavimo povezavo za branje iz EEPROM-a SD, D0, CD (0, 1, 1). Sedaj vklopimo razvojno enoto s stikalom.

SIMULATOR MODELSIM 47 4 SIMULATOR MODELSIM Simulator ModelSim najlažje uporabljamo tako, da ga poženemo iz programa Xilinx ISE, ker bo v tem primeru avtomatsko pognal skripto, ki prevede VHDL kodo,»starta«simulator in prenese vse signale v okno Tok signala (Waveform). Ko uspešno opravimo aplikacijo vezja, želimo preveriti oziroma opazovati delovanje, kar izvedemo s simulacijo vezja v ModelSim. Najprej v programu Xilinx ISE v oknu Viri (Sources) iz menija Viri za (Sources for) izberemo Simulacijo (Behavioval Simulation) (slika 4.1). Slika 4.1: Izbira menija Sledi preverjanje pravilnosti knjižnice, in sicer v oknu virov izberemo xc3s100e4vq100 in v oknu Postopek (Processes) zasnovo pripomočkov (Desing Utilities) Povzemanje HDL knjižnic simulacije (Compile HDL Simulation Libraries), nato kliknemo desno na miški in izberemo Ponovitev vseh (Rerun All) (slika 4.2). Povzemanje HDL simulacije (Compile HDL Simulation) je potrebno opraviti le prvič pri novem projektu. Drugače lahko vedno pristopamo neposredno k simulaciji. Povzemanje HDL knjižnic simulacije lahko poteka nekaj minut.

SIMULATOR MODELSIM 48 Slika 4.2: Povzemanje HDL knjižnic simulacije Nato za simulacijo izberemo željen element ali vezje v oknu Viri (Sources) ter v oknu Postopek (Processes) izberemo ModelSim simulator (ModelSim Simulator) Simulacija modela (Simulate Behavioral Model) in nato z desnim klikom miške izberemo Teči (Run) (slika 4.3). Slika 4.3: Zagon programa ModelSim

SIMULATOR MODELSIM 49 Odpre se nam program ModelSim z okni za izvajanje simulacije (slika 4.4): Delovno okno (Workspace). Predmeti (Objects). Prepis (Transcript). Slika 4.4: Program ModelSim Sedaj v oknu Prepis (Transkript) vnesemo pod ukazno vrstico VSIM 2>Restart (z malo pisavo) in Vstopiti (Enter). Odpre se nam okno Znova (Restart), kjer postavimo vse spremenljivke na začetek (slika 4.5). Slika 4.5: Postavitev vseh spremenljivk na začetek

SIMULATOR MODELSIM 50 Nato odpremo novi delovni vir, in sicer izberemo Datoteka (File) Nov (New) Okno (Window) Valovanje (Wave). Sedaj izberemo vhodne spremenljivke in jih prenesemo z miško iz okna Predmeti (Objects) v Valovanje (Wave1). Nato v oknu Valovanje (Wave1) z desno tipko na miški izberemo vhodno spremenljivko, kateri želimo ustvariti-spremeniti tok signala (Create/Modify Waveform) (slika 4.6). Slika 4.6: Ustvariti-spremeniti tok signala Odpre se okno Ustvariti vzorec čarovnika (Create Pattern Wizard), kjer določimo, kako dolgo se bo signal periodično ponavljal. Pod Čas začetka (Start Time) vpišemo začetek signala in pod Čas zaključka (End Time) zaključek signala, nato izberemo časovno enoto (Time Unit) (slika 4.7). Slika 4.7: Ustvariti vzorec čarovnika

SIMULATOR MODELSIM 51 Določimo uro vzorcu atributov (slika 4.8): Začetna vrednost (Initial Value). Ura periode (Clock Period), kjer izberemo tudi časovno enoto (Time Unit). Obratovalni ciklus (Duty Cycle), razmerje med visokim in nizkim logičnim nivojem. Slika 4.8: Ura vzorca atributov Sedaj v oknu Prepis (Transcript) vnesemo pod VSIM 6>Teči (Run) in željen čas opazovanja ter nato Vstopiti (Enter), npr: Run 500ns in Enter. S ponovnim izvajanjem simulacije je potrebno ponoviti (Restart). V primeru, da se signal prikaže v modri barvi ali s presledkom, pomeni, da gre za visoko impedančno stanje.

REZULTAT 52 5 REZULTAT Načrtovali smo časovni multiplekser 2:1, s programirljivim vezjem Spartan 3E XC3S100E, ki je generiran s periodo 2 s. V prvi polovici periode je bil aktiven prvi vhod A (4 bitna vrednost), v drugi polovici pa drugi vhod B (4 bitna vrednost). Na vsakem izmed vhodov smo imeli štiri stikala, s katerimi smo lahko nastavljali različne vhodne kombinacije. Glede na vhodno kombinacijo se je postavil izhod (4 bitna vrednost), ki smo ga prikazali s štirimi LED diodami. Periodo 2 s smo dosegli z delilnikom frekvence. Ker je osnovna frekvenca oscilatorja, uporabljenega na razvojni enoti, 50 MHz, smo morali to frekvenco deliti s 100000000. Ta delilnik je realiziran v podvezju GEN_IZBIRA, kjer smo delilnik opisali v VHDL jeziku. Multiplekser 2:1 smo realizirali v podvezju MUX2NA1, ki smo ga prav tako opisali v VHDL jeziku. Definirali smo tudi ustrezne priključke, s katerimi smo povezali ustrezne vhodno-izhodne elemente na razvojni enoti. Slika 5.1 prikazuje blokovno shemo primera. Slika 5.1: Blokovna shema primera Najprej smo ustvarili nov projekt. V programu Xilinx ISE smo izbrali Datoteka (File) Novi projekt (New Projeckt).

REZULTAT 53 Nato se nam je odprlo okno Ustvarjanje novega projekta (Create New Project), v katerem smo pod Ime projekta (Project Name) vpisali PRIMER, ki se nam je posledično vpisoval v lokacijo projekta (Project Location). Sledilo je okno Lastnosti naprave (Device Properties), kjer smo izbrali lastnosti, kot prikazuje slika 3.5. V oknu Ustvarjanje novega vira (Create New Source) smo kliknili Novi vir (New Source). Sledilo je okno Izbira tipa vira (Select Source Type), v katerem smo izbrali tip Shematic in pod Ime datoteke (File Name) vpisali ime GL_VEZJE. Ko smo končali z ustvarjanjem projekta, je sledilo ustvarjanje podvezja; z desnim miškinim gumbom smo kliknili na GL_VEZJE v oknu Viri (Sources) in izbrali Novi vir (New Source). Nato smo v oknu Izbira tipa vira (Select Source Type) izbrali VHDL Module in pod Ime datoteke (File Name) vpisali GEN_IZBIRA. V oknu Določite module (Define Module) smo pod Ime vrat (Port Neme) vpisali ime vhodnega priključka CLK in izhodnega priključka IZBIRA ter jima določili smer (Direction) vhodni (in) in izhodni (out). Dobili smo samodejno generirano predlogo VHDL jezika, v katero smo vpisali predlogo generatorja, ki je generirala periodo T=2 s. Predloga generatorja s periodo T=2 s: signal stevec : integer range 0 to 100000000 := 0; signal not_signal: STD_LOGIC :='0'; begin process (CLK) begin if rising_edge(clk) then if stevec = 99999999 then stevec <= 0; not_signal <= not_signal xor '1'; IZBIRA <= not_signal; else stevec <= stevec + 1; end if; end if; end process; Nato smo preverili sintakso (Check Syntax) in ustvarili shematski element (Create Schematic Symbol). Zatem smo dali ustvarjen element v datoteko GL_VEZJE.

REZULTAT 54 Sledilo je ustvarjanje dodatnega podvezja; z desnim gumbom miške smo kliknili na GL_VEZJE v oknu Viri (Sources) in izbrali Novi vir (New Source). V oknu Izbira tipa vira (Select Source Type) smo izbrali VHDL Module in pod Ime datoteke (File Name) vpisali MUX2NA1. Nato smo v oknu Določite module (Define Module) pod Ime vrat (Port Name) vpisali imena vhodnih priključkov IZBIRA, VHA, VHB in izhodnega priključka IZHOD ter jim določili smeri (Direction) vhodni (in) in izhodni (out). Potem smo določili še velikosti priključkov VHA, VHB in IZHOD. Označili smo Bus pri omenjenih priključkih in vpisali 0 pri spodnji meji (LSB) in 3 pri zgornji meji (MSB), kar pomeni, da so ti priključki 4- bitni. Dobili smo samodejno generirano predlogo VHDL jezika, v katero smo vpisali predlogo multiplekser 2:1. Predloga multiplekserja 2:1: [6] process(vha,vhb,izbira) begin case IZBIRA is when '0' => IZHOD <= VHA; when '1' => IZHOD <= VHB; when others => NULL; end case; end process; Nato smo preverili sintakso (Check Syntax) in ustvarili shematski element (Create Schematic Symbol). Temu je sledil prenos ustvarjenega elementa v datoteko GL_VEZJE. Potem smo v datoteki GL_VEZJE povezali ustvarjena elementa in dodali vhodnoizhodne označevalce (Add I/O Marker ) ( kot prikazuje slika 5.2. ). Povezano vezje primera je izgledalo tako, Slika 5.2: Vezje primer

REZULTAT 55 Sledilo je določanje vhodno-izhodnih pinov glede na razvojno enoto za FPGA vezje Spartan 3E XC3S100E. Seznam vhodno-izhodni pinov (Desing Object list I/O Pins) je izgledal tako, kot prikazuje slika 5.3. Slika 5.3: Seznam vhodno-izhodnih pinov Sledilo je povezovanje razvojne enote s FPGA vezjem Spartan 3 XC3S100E in računalnik z JTAG inicializacijskim kablom (JTAG Programming Cable). Nato smo izvedli sintezo (Sinthesize-XST), izvedbo načrta (Implement Design) in ustvarili programsko datoteko (Generate Programming File). Sledilo je ustvarjanje PROM, ACE ali JTAG datoteke (Generate PROM, ACE or JTAG File). Odprlo se nam je okno Dobrodošli na impact (Welcome to impact), v katerem smo izbrali Configure device using Boundary-Scan (JTAG). Izbrati smo morali tudi Avtomatsko poveži kabel in identično Boundary-Scan verigo (Automatically connect to a cable and identify Boundary-Scan chain). Nato smo dobili zavihek Boundary Scan, kjer smo imeli verigo vezja z EEPROM-om (XCF01S) in FPGA vezjem (XC3S100E) (slika 5.4). Slika 5.4: Veriga vezja