background image

Laboratorium przedmiotu Podstawy Techniki Cyfrowej 

 

ć

w.1: Układy kombinacyjne 

 
 
Wprowadzenie: 
 

Wszelkie  realizacje  układowe  projektów  w  ramach  laboratorium  z  przedmiotu 

Podstawy  Techniki  Cyfrowej  b

ę

d

ą

  tworzone  w  oparciu  o  matryce  FPGA  (Field 

Programmable Gate Array).  

Matryca FPGA to rodzaj programowalnego układu logicznego, który składa si

ę

 

z  rozmieszczonych  matrycowo  bloków  logicznych  (CLB).  W  trakcie  syntezy  układu 
poszczególne  bloki  s

ą

  ze  sob

ą

  ł

ą

czone  za  po

ś

rednictwem  linii  traktów 

poł

ą

czeniowych  (Routing  Channels)  oraz  programowalnych  matryc  kluczy 

poł

ą

czeniowych  umieszczonych  w  miejscu  krzy

Ŝ

owania  si

ę

  traktów  poziomych  i 

pionowych.  Po  zaprogramowaniu  matrycy  FPGA  uzyskujemy  fizycznie  działaj

ą

cy 

rzeczywisty  układ  (nie  jest  to  symulacja).  Obecnie  mo

Ŝ

na  zleci

ć

  stworzenie  układu 

scalonego działaj

ą

cego identycznie jak zaprogramowana matryca (Hard-Copy). 

 

W  ramach  laboratorium  u

Ŝ

ywana  b

ę

dzie  płyta  uruchomieniowa  Spartan  3A 

firmy  Xilinx  oparta  o  matryc

ę

  FPGA  –  Spartan  XC3S700A. 

Ś

rodowiskiem 

programistycznym u

Ŝ

ywanym podczas laboratorium b

ę

dzie ISE firmy Xilinx  w wersji 

10.1. 

ISE  jest 

ś

rodowiskiem,  które  zapewnia  dost

ę

p  do  wszystkich  elementów 

niezb

ę

dnych podczas tworzenia i implementacji projektu w oparciu o matryce FPGA. 

Głównym  elementem 

ś

rodowiska  jest  Project  Navigator,  czyli  aplikacja  z  poziomu 

której  mo

Ŝ

emy  kontrolowa

ć

  przebieg  procesu  projektowania  oraz  uruchamia

ć

  inne 

aplikacje 

ś

rodowiska ISE.  

 
Wygl

ą

d okna aplikacji Project Navigator jest przedstawiony na rysunku 1.  

 
A  –  okno  plików 

ź

ródłowych  (Sources)  –  przedstawione  wszystkie  elementy 

projektu w formie hierarchicznej; 

B  –   okno  procesów  (Processes)  –  przedstawione  dost

ę

pne  operacje  dla 

zaznaczonego elementu w cz

ęś

ci A; 

C  –   główne okno robocze; 
D  –  okno  konsoli  (Console)  –  wy

ś

wietlane  informacje,  ostrze

Ŝ

enia,  ewentualne 

ę

dy itp.; 

 

Cz

ęść

  plików  b

ę

dzie  dost

ę

pna  po  zmianie  dokonanej  w  oknie  A 

(Implementation / Simulation). Po wybraniu pliku w oknie A uruchomienie wybranego 
dla niego procesu w oknie B nast

ę

puje poprzez dwukrotne klikni

ę

cie nazwy procesu. 

Cz

ęść

  procesów  wymaga  wst

ę

pnego  ich  skonfigurowania  (po  ich  uruchomieniu 

dost

ę

pne b

ę

d

ą

 opcje konfiguracji).  

 
Konfiguracja płyty uruchomieniowej: 
 
 

Nie  wdaj

ą

c  si

ę

  w  szczegóły  na  temat  trybów  pracy  płyty  zawsze  przed  jej 

zał

ą

czeniem    nale

Ŝ

y    pami

ę

ta

ć

  aby  sprawdzi

ć

  konfiguracj

ę

,  tzn.  ustawi

ć

  zworki  tak 

jak na rysunku 2. 
  

background image

 

rys.1.    Wygl

ą

d okna aplikacji Project Navigator

 
 
Synteza układu opisanego za pomoc

ą

 schematu: 

 
1)  Stworzenie nowego projektu. File->New Project ... 

Okre

ś

lenie nazwy projektu i lokacji na dysku; 

Wybór Top-level Source type jako Schematic; 

 
2)  Wybór cech matrycy oraz sposobów syntezy i symulacji; 

Family: Spartan 3A

Device: XC3S700A; 

Package: FG484; 

Synthesis Tool: XST; 

Simulator:  ISE Simulator

Preffered Language: Verilog; 

 
3)  Zako

ń

czenie tworzenia projektu; 

Next -> Next-> Finish; 

 
4)  Dodanie pliku typu Schematic

Project -> New Source -> Schematic; 

Nadanie nazwy, zaznaczenie Add to Project; 

 

background image

 

rys.2.    Defaultowe ustawienie zworek płyty uruchomieniowej Xilinx Spartan-3A. 
 
 
 
5)  Edycja schematu; 
 

Podczas  edycji  nale

Ŝ

y  umieszcza

ć

  na  schemacie  symbole  elementów  (np. 

bramek  logicznych)  oraz  poł

ą

czenia  mi

ę

dzy  nimi.  Dost

ę

pne  typy  elementów  – 

zakładka Categories, dost

ę

pne elementy – Symbols. Do rysowania poł

ą

cze

ń

 nale

Ŝ

u

Ŝ

ywa

ć

  opcji  Add  ->  Wire,  do  nadawania  sygnałom  nazw  opcji  Add  ->  Net  Name

natomiast do okre

ś

lenia wej

ś

cia lub wyj

ś

cia układu słu

Ŝ

y opcja Add -> I/O Marker

Dost

ę

p do opcji dowolnego elementu schematu nast

ę

puje poprzez dwukrotne 

klikni

ę

cie elementu. 

 
6)  Okre

ś

lenie przyporz

ą

dkowania sygnałów WE/WY ze schematu do odpowiednich 

pinów matrycy; 

Tworzony  jest  plik  ogranicze

ń

  (rozszerzenie  .ucf)  poprzez  Project  ->  New 

Source -> Implementation Constraint File; 

Nadanie nazwy, zaznaczenie Add to Project; 

Wybór pliku w oknie A; 

Wybór User Constraints -> Edit Constraints File (Text) w oknie B; 

Edycja  pliku  w  oknie  roboczym  wg.  Zasady  (prosz

ę

  si

ę

  stara

ć

  stosowa

ć

 

polsko-brzmi

ą

ce  nazwy  poł

ą

cze

ń

  w  celu  wykluczenia  pomyłek  mog

ą

cych 

powsta

ć

 przez u

Ŝ

ycie zarezerwowanej nazwy): 

 
NET ”Net Name”  LOC = “Nrpin“; 
 

background image

Dla przykładu z rysunku 3 plik  ogranicze

ń

 mo

Ŝ

e wygl

ą

da

ć

 nast

ę

puj

ą

co: 

 
NET ”We1”  LOC = ”U10”; 
NET ”We2”  LOC = ”V8”; 
NET ”Wy1”  LOC = ”R20”; 

 

 

rys.3.   Przykładowy projekt. 
 
Jako  fizyczne  elementy  wyj

ś

ciowe  zaleca  si

ę

  dla  celów  laboratoryjnych  wybiera

ć

 

dost

ę

pne na płycie uruchomieniowej diody LED, natomiast jako elementy wej

ś

ciowe 

–  przeł

ą

czniki  lub  klawisze.  Nr.  pinu  matrycy  do  którego  ka

Ŝ

da  dioda,  klawisz  czy 

przeł

ą

cznik  s

ą

  podł

ą

czone  opisane  s

ą

  zarówno  bezpo

ś

rednio  na płytce  drukowanej 

jak  i  w  przewodniku  u

Ŝ

ytkownika  płyty  uruchomieniowej  SPARTAN-3A  (patrz 

literatura). 
 
6)  Kompilacja 
 

Kompilacja  całego  projektu  jest  mo

Ŝ

liwa  po  zaznaczeniu  w  oknie  A  pliku 

(modułu)  oznaczonego  jako  główny  (Top  Module)  oraz  uruchomienia  w  oknie  B 
procesu  -  Generate  Programming  File.  Plik  oznaczony  jako  Top  Module  ma  do 
nazwy doł

ą

czony rysunek trzech małych kwadracików (patrz rys. 1, okno A). 

 
Mo

Ŝ

liwe  jest  zagnie

Ŝ

d

Ŝ

anie  modułów.  W  tym  celu  po  stworzeniu  modułu  1  i 

jego  zaznaczeniu  w  oknie  A  mo

Ŝ

na  uruchomi

ć

  w  oknie  B:    Processes  ->  Design 

Utilities  ->  Create  Schematic  Symbol.  Nast

ę

pnie  po  stworzeniu  modułu  2  (patrz 

Synteza Układu, punkt 4) i ustawieniu go jako Top Module mo

Ŝ

na w nim wykorzysta

ć

 

background image

schemat z modułu 1 poprzez symbol dost

ę

pny z Symbols -> Categories (tam gdzie 

symbole  bramek  i  innych  elementów).  Nale

Ŝ

y  pami

ę

ta

ć

Ŝ

e  plik  ogranicze

ń

  *.ucf 

odnosi  si

ę

  tylko  do  modułu  głównego  (Top  Module).  Wyj

ś

cia  i  wej

ś

cia  wszystkich 

podległych  modułów  traktowa

ć

  nale

Ŝ

y  jako  sygnały  lokalne  w  obr

ę

bie  modułu 

głównego. 
  
 
7)    Symulacja  projektu  zgodnie  z  informacjami  zawartymi  w  cz

ęś

ci  SYMULACJA 

PROJEKTU;  
 
8) Programowanie matrycy; 
 

Do  zaprogramowania  matrycy  u

Ŝ

ywana  b

ę

dzie  aplikacja  iMPACT  (po 

wygenerowaniu pliku wynikowego syntezy nale

Ŝ

y uruchomi

ć

 proces Configure Target 

Device  /  Manage  Configuration  Project  –  iMPACT.  W  dost

ę

pnych  ła

ń

cuchu  JTAG 

zobaczymy  poł

ą

czone  2  elementy:  matryc

ę

  XC3S700A  oraz  pami

ęć

  PROM. 

Programowa

ć

  podczas  laboratorium  zaleca  si

ę

  tylko  matryc

ę

  (dla  niej  nale

Ŝ

wskaza

ć

  plik  z  rozszerzeniem  .bit)  natomiast  dla  pami

ę

ci  PROM  nie  nale

Ŝ

wskazywa

ć

 

Ŝ

adnego pliku.

 

 
 
Symulacja projektu: 
 
W celu zasymulowania układu konieczne jest wygenerowanie wektora pobudze

ń

 (plik 

z rozszerzeniem .tbw
 
1)  Dodanie pliku typu Test Bench Waveform

Project -> New Source -> Test Bench Waveform; 

nadanie  nazwy  (inna,  ni

Ŝ

  nazwa  pliku  typu  Schematic),  zaznaczenie  Add  to 

Project; 

W  oknie  Initialize  Timing  nale

Ŝ

y  wybra

ć

  typ  układu  (Clock  Information)  oraz 

uzupełni

ć

 odpowiednie parametry czasowe; 

Plik wektora pobudze

ń

 .tbw odnosi si

ę

 zawsze do modułu głównego projektu 

(Top Module). 

Klikaj

ą

c  w  przebiegi  wej

ś

ciowe  (niebieskie  pola)  nale

Ŝ

y  ustali

ć

  ich  przebieg 

oraz okre

ś

li

ć

 czas trwania symulacji; 

 
2)  Wywołanie symulatora ISE Simulator; 

W oknie A nawigatora projektów nale

Ŝ

y zmieni

ć

 Implementation na Behavioral 

Simulation; 

Zaznaczy

ć

 plik *.tbw

Uruchomi

ć

 proces Xilinx ISE Simulator -> Simulate Behavioral Model 

 
3)    Simulation  ->  Restart  ->  Run  All;  (mo

Ŝ

emy  te

Ŝ

  skraca

ć

  czas  symulacji  I 

uruchamia

ć

 Simulation -> Restart -> Run for Specified Time

 
4)     Simulation -> End simulation 
 
 

background image

Przebieg 

ć

wiczenia: 

 

Celem 

ć

wiczenia jest wprowadzenie do programowania matryc FPGA poprzez 

realizacj

ę

 wybranych układów kombinacyjnych z wykorzystaniem narz

ę

dzi ISE firmy 

Xilinx oraz Modelsim firmy Mentor Graphics. 
 
Przygotowanie do laboratorium: 

 

praktyczna znajomo

ść

 sposobów projektowania układów kombinacyjnych; 

umiej

ę

tno

ść

 optymalizacji funkcji logicznych; 

 
Przebieg 

ć

wiczenia i sposób oceniania: 

 

sprawdzanie przygotowania do zaj

ęć

 (max 1 pkt); 

zapoznanie ze 

ś

rodowiskiem ISE; 

zapoznanie ze sprz

ę

tem i jego wst

ę

pna konfiguracja; 

symulacja i realizacja prostego układu kombinacyjnego (max 1 pkt); 

symulacja  i  realizacja  bardziej  zaawansowanego  układu  kombinacyjnego  
(max 2 pkt); 

symulacja i realizacja stworzonego z min. 2 modułów układu kombinacyjnego 
(max 1 pkt); 

 
  * podczas 

ć

wiczenia ka

Ŝ

da sekcja tworzy osobny protokół z przebiegu 

ć

wiczenia 

 
Protokół: 

 

Protokół powinien zawiera

ć

:  

 

nazwiska osób wykonuj

ą

cych 

ć

wiczenie; 

tytuł i numer 

ć

wiczenia; 

poprawny numer grupy i sekcji; 

komentarze  przedstawiaj

ą

ce  post

ę

p  w  realizacji 

ć

wiczenia  oraz  wszelkie 

niezb

ę

dne do zrealizowania 

ć

wiczenia notatki; 

 
Literatura: 
 

http://toolbox.xilinx.com/docsan/xilinx10/books/docs/qst/qst.pdf

  

- ISE 10.1 Quick Start Tutorial 

http://direct.xilinx.com/direct/ise10_tutorials/ise10tut.pdf

  

- ISE In-Depth Tutorial 

http://www.xilinx.com/support/documentation/boards_and_kits/ug334.pdf

  

- Spartan-3A/3AN FPGA Starter Kit Board User Guide 

 

http://www.xilinx.com/support/documentation/boards_and_kits/s3astarter_schematic.
pdf

  

 

- Spartan-3A/3AN Starter Kit Board Schematic 

http://www.xilinx.com/support/documentation/user_guides/ug331.pdf

  

- Spartan-3 Generation FPGA User Guide 

 
 
Opracowanie: Mariusz Latos, 2009