Automatyzacja procesu projektowania układów - kik

Transkrypt

Automatyzacja procesu projektowania układów - kik
Przemysław Sołtan
Oleg Maslennikow
Wydział Elektroniki
Politechnika Koszalińska
ul. Partyzantów 17, 75-411 Koszalin
Robert Berezowski
Magdalena Rajewska
Automatyzacja procesu implementacji
układów cyfrowych w technologii prądowych
układów FPGA
Słowa kluczowe: układy reprogramowalne (FPGA), układy reprogramowalne mieszane,
języki opisu sprzętu, bramki prądowe, algebra bramek prądowych
STRESZCZENIE
W referacie zaprezentowano zautomatyzowaną procedurę implementacji układów cyfrowych w układach
FPGA zbudowanych w oparciu o bramki prądowe – nowe bramki logiczne cechujące niskim poziomem szumu
cyfrowego. Celem pracy jest stworzenie mieszanego analogowo-cyfrowego układu reprogramowalnego, w
którym część cyfrowa jest zbudowana z bramek prądowych w celu zmniejszenia jej wpływu na część analogową
układu. Główna idea polega na opracowaniu części cyfrowej układu jako prototypu funkcjonalnego znanego
układu FPGA (np. rodzin Virtex lub Spartan II). Zaproponowana procedura polega na opracowaniu projektu
docelowego urządzenia i jego implementacji korzystając z odpowiedniego oprogramowania (np. Xilinx
Foundation). Następnie wykonuje się analiza i przekształcenie otrzymanego pliku konfiguracyjnego na jego
odpowiednik konfigurujący prądowy układ FPGA za pomocą własnego środowisko programowe. Umieszczony
przykład ilustruje poszczególne etapy tworzenia prostego projektu i jego realizacji w prądowym układzie FPGA.
1. WPROWADZENIE
Jednym z najważniejszych problemów projektowania analogowo-cyfrowych układów
VLSI, jest zmniejszenie wpływu części cyfrowej układu (tzw. zakłóceń podłożowych) na jego
część analogową [1]. Radykalnym sposobem rozwiązania wymienionego problemu jest
realizacja cyfrowej części układu w oparciu o bramki prądowe [2,3]. Główną ich cechą jest
stała wartość pobieranego prądu w różnych trybach ich pracy. Z tego powodu cechują się one
znacznie mniejszym poziomem szumu cyfrowego i nie zakłócają układów analogowych. Poza
tym, badania wykonane przez autorów w ramach grantu KBN 7T11B 004 20 wykazały, że
standardowe układy cyfrowe zbudowane w oparciu o bramki prądowe są prostszymi logicznie
(pod względem ilości wykorzystanych bramek do 35%) od ich prototypów zbudowanych w
oparciu o klasyczne bramki napięciowe. Stwarza to podstawę do opracowania mieszanych
analogowo-cyfrowych układów na wspólnym podłożu, i w szczególności, do wytworzenia
reprogramowalnych układów mieszanych.
W związku z tym w ramach prowadzonych badań opracowane zostały również struktury
wewnętrzne prototypów prądowych bloków operacyjnych (Slice) i bloków wejścia-wyjścia
(IOB) układu SPARTAN II firmy Xilinx [4]. Opracowane prototypy mają jednakowe z
oryginałem wejścia, wyjścia i wszystkie tryby pracy. Na podstawie opracowanych bloków
prądowych, podobna do struktury układu FPGA SPARTAN II (bez bloków pamięci
operacyjnej) i jej parametryzowany model w języku VHDL. Głównymi parametrami modelu
są ilość CLB i IOB. Badanie modelu całego układu prądowego FPGA dokonano na układach
sumatorów szeregowego i wielobitowych w sposób następujący. Najpierw została określona
ilość bloków CLB (slice) i IOB niezbędnych dla realizacji w układzie FPGA wybranego
sumatora. Następnie określono tryby pracy (realizowane funkcje logiczne) każdego bloku
CLB i połączenia między nimi, na podstawie czego ręcznie określono zawartość
poszczególnych komórek pamięci konfiguracyjnej układu FPGA. Następnie otrzymane dane
zostały wprowadzone do pamięci konfiguracyjnej modelu i sprawdzono poprawność jego
działania. Wykazano pełną zgodność otrzymanych wyników z oczekiwanymi.
Opisana procedura formowania i ładowania danych konfiguracyjnych może być wykonana
w sposób zautomatyzowany (co jest bardzo ważnym przy implementacji dużych projektów),
jeśli zostaną opracowane odpowiednie programy do syntezy i implementacji układu
prądowego FPGA. Jednak fizyczne i logiczne zasady funkcjonowania bramek prądowych
różnią się od analogicznych zasad funkcjonowania klasycznych bramek napięciowych.
Dlatego procedury syntezy logicznej układów prądowych i napięciowych też się różnią. Poza
tym, synteza układów prądowych jest dość specyficzna i nieznana dla większości
projektantów. Dlatego przy założeniu wykorzystania prądowych układów FPGA
funkcjonalnie zgodnych z ich odpowiednikami napięciowymi można do automatyzacji
wykorzystać narzędzia do syntezy i implementacji napięciowej. Jako bazę programową
autorzy wykorzystali pakiet Foundation/ISE firmy Xilinx,Inc. [5], który umożliwia eksport z
programu informacji o konfiguracji i połączeniach komórek w konkretnej realizacji
układowej FPGA. Do automatyzacji procesu projektowania zastosowano opracowany przez
autorów program GEDEON przetwarzający informacje z plików projektów w formacie .xdl
(Xilinx Design Language). Zastosowanie gotowych rozwiązań umożliwia łatwe przenoszenie
gotowych projektów prądowych przedstawionych w formacie .hdl i ich testowanie w
środowisku bez tworzenia skomplikowanych i nowych narzędzi do syntezy i implementacji.
Zaproponowana procedura opisana została w następnych rozdziałach referatu.
2. PROCES TWORZENIA PRĄDOWEGO PROJEKTU VHDL
Przy założeniu tworzenia prądowych modeli układu FPGA funkcjonalnie zgodnych z ich
odpowiednikami napięciowymi można do automatyzacji wykorzystać narzędzia do syntezy i
implementacji napięciowej. Jako bazę programową wykorzystano pakiet Foundation/ISE
firmy Xilinx,Inc. umożliwiający eksport z programu informacji o konfiguracji i połączeniach
komórek FPGA w konkretnej realizacji układowej. Do automatyzacji procesu projektowania
zastosowano opracowany przez autorów program GEDEON przetwarzający informacje z
plików projektów przedstawionych w formacie XDL (Xilinx Design Language). Proces
tworzenia prądowego projektu jest przedstawiony na Rys. 1. i przebiega w kilku fazach:
• przygotowanie projektu w technologii napięciowej;
• symulacja i tworzenie testbench’ów (ActiveHDL);
• synteza i implementacja układu (Foundation)
• generowanie pliku XDL (Xilinx Design Language) wyłuskującego informację o
konfiguracji układu FPGA;
• stworzenie prądowych bibliotek bloków SLICE oraz IOB dla konkretnego układu FPGA
• analiza pliku XDL i generacja projektu w postaci plików VHDL (program GEDEON)
• symulacja układu prądowego (ActiveHDL);
• porównanie Testbench’ów symulacji napięciowej z wynikami symulacji prądowej.
2.1. Projektowanie modeli napięciowych
Po stworzeniu projektu w języku VHDL i próbie jego implementacji w środowisku
Foundation firmy Xilinx otrzymuje się binarne pliki NCD (Native Circuit Description), które
zawierają informację konfiguracji układu FPGA projektowanego urządzenia. W celu eksportu
pliku NCD do postaci tekstowej korzysta się z programu XDL.exe (rys.2).
Projekt w VHDL
(technologia
Symulacja projektu
(ActiveHDL)
Synteza i
Implementacja
Generacja projektu w
technologii prądowej
(Gedeon)
W
E
R
Y
F
I
K
A
C
J
A
Projekt VHDL
(technologia prądowa)
Rys. 1. Proces generowania projektu prądowego
Otrzymany plik w formacie XDL może zostać użyty we własnych programach
użytkowników pakietu Foundation. Dzięki programowi xdl.exe uzyskuje się możliwość
bezpośredniej ingerencji w strukturę wewnętrzną konfiguracji urządzenia w konkretnej
implementacji układu FPGA. Możne w ten sposób dokonywać modyfikacji i importować
projekt do postaci binarnej pliku NCD lub też wykorzystać w innym zewnętrznym programie
do własnego przetwarzania. Taka właśnie możliwość została wykorzystana do generacji
modeli urządzeń zgodnych z technologią prądową. W tym celu zaprojektowano odpowiedni
program GEDEON umożliwiający przetwarzanie plików w formacie XDL i generację na ich
podstawie modeli prądowych projektu napięciowego.
Plik
NCD
xdl.exe
Plik
XDL
Rys. 2. Schemat konwersji plików programu XDL.exe
2.2. Synteza i implementacja
Wykorzystanie pakietu Foundation podyktowane zostało koniecznością zastosowania
narzędzia do syntezy (dekompozycja funkcji logicznych w komórkach FPGA, rozmieszczenie
komórek oraz ich łączenia). Służy do tego wbudowany program do syntezy FPGA Expres
firmy Synopsys. Dzięki takiemu podejściu udało się uniknąć analizy złożonych algorytmów
PLACE & ROUTE. Mimo tego stworzone środowisko testowego jest dobrym startem do
analizy własnych rozwiązań tychże algorytmów, czy też wykorzystania innych narzędzi do
syntezy logicznej.
Ze względu na różnorodność rozwiązań budowy układów FPGA ograniczono się do
wyboru architektury SPARTANII. Składa się ona z dwóch podstawowych bloków: SLICE
zawierające po dwa bloki CLB oraz bloków IOB’s. Bloki RAM, DLL i inne w obecnej fazie
projektu nie są rozpatrywane. Na wybór architektury SPARTANII zdecydowano się ponieważ
bloki SLICE są zbudowane tak jak w architekturze VIRTEX, a ponadto ich budowa daje
więcej możliwości realizowania różnych funkcji w porównaniu z przestarzałą już architekturą
X4000. W implementacji testowych przykładów wykorzystano najmniejszy z układów serii
SPARTANII xc2s15 -6 cs144. Dla wybranej architektury zaprojektowano prądowe modele
bloków SLICE oraz IOB. Oba modele były też podstawą do realizacji scalonego prądowego
układu FPGA realizowanego w technologii krzemowej w ramach grantu KBN. Układ
SPARTANII posiada inne bloki, które nie zostały zaimplementowane w postaci modeli
prądowych. Jest to temat do dalszych badań i projektów tych modeli w technologii prądowej.
2.3. Generacja pliku XDL
Generację pliku XDL (Xilinx Design Language) realizuje się za pomocą programu
XDL.exe podając jako parametr nazwę pliku NCD zawierającego konfigurację projektu
zaimplementowanego w określonym układzie FPGA.
xdl.exe -ncd2xdl project.ncd project.xdl
W ten sposób uzyskuje się tekstowy plik XDL zawierający informacje na temat
wykorzystanej architektury, rodzaju komórek (SLICE, IOBS, itd.) oraz połączeń pomiędzy
komórkami FPGA.
Plik formatu XDL (Xilinx Design Language) jest plikiem tekstowym, który określa
konfigurację (Mapping), rozmieszczenie instancji (Placement), oraz listę węzłów wraz z ich
połączeniami do określonych instancji komponentów (Routing).
3. PRZYKŁAD IMPLEMENTACJI DWUWEJŚCIOWEJ BRAMKI AND
Zastosowanie nieskomplikowanego projektu miało na celu zobrazowanie procesu
przetwarzania i realizacji projektu prądowego. Projekt wykonano w VHDL i dokonano
syntezy i implementacji dla jednego z układów z rodziny SPARTANII. Uzyskany plik NCD
następnie poddano przetworzeniu do formatu XDL i otrzymano plik and.xdl, z którego
najważniejsze informacje umieszczono poniżej.
design "and2" xc2s15cs144-6 v2.36 ;
inst
inst
inst
inst
"a" "IOB" , placed LR8
"b" "IOB" , placed LR8
"c" "IOB" , placed LR8
"N_c" "SLICE" , placed
K3 , cfg "PAD:a: INBUF:C_a: IMUX::1 ";
L1 , cfg "PAD:b: INBUF:C_b: IMUX::1 ";
K2 cfg "OUTBUF:C_c: PAD:c: OMUX::O OUTMUX::1 ;
R8C1 CLB_R8C1.S0 , cfg "YUSED::0 G:C3:#LUT:D=(A2*A1) GYMUX::G";
net "N_a", outpin "a" I, inpin "N_c" G2;
net "N_b", outpin "b" I, inpin "N_c" G1;
net "N_c", outpin "N_c" Y, inpin "c" O;
Narzędzie Foundation zaimplementowało bramkę AND2 wykorzystując do tego celu 3
bloki IOB oraz jeden blok SLICE w sposób przedstawiony na rys.3.
Każdy z bloków został odpowiednio skonfigurowany. Informacje o konfiguracji
poszczególnych komórek FPGA jest podawana w pliku XDL w postaci łańcucha tekstowego.
Poniżej na rys.4 znajduje się przykład instancji komponentów IOB i SLICE wraz z
konfiguracją (cfg) dla implementacji przykładowej bramki AND.
4. PROGRAM GEDEON
Po generacji pliku XDL w drugim etapie projektowania następuje analiza i z uwzględnieniem
prądowych modeli komórek układu FPGA, zostaje wygenerowany projekt dla technologii
prądowej w języku VHDL. Do realizacji tego zadania zaprojektowano program o nazwie
GEDEON, który realizuje proces konwersji pliku XDL na plik projektu VHDL. W celu
tworzenia modeli prądowych z ich odpowiedników napięciowych program GEDEON
analizuje pliki XDL z danymi wyeksportowanymi z projektu napięciowego syntezowanego w
środowisku Foundation/ISE. Z pliku XDL wyłuskane zostają informacje na temat
wykorzystanych komponentów (ich instancje) oraz połączenia pomiędzy nimi (netlista).
Program dokonuje analizy konfiguracji i podaje jej odpowiednik w postaci liczby binarnej.
SLICE
Matryce
przełączników
C
B
A
C=A and B
IOBs
Rys. 3. Przykładowa implementacji bramki AND w układzie FPGA (widok połączeń).
LUT D=(A2*A1)
G2
G1
A4
A3
A2
A1
D
WS
YUSED
F6
GXOR
G
Y
0
GYMUX
DI
inst "N_c" "SLICE" , placed R8C1
CLB_R8C1.S0 ,
cfg "YUSED::0 G:C3:#LUT:D=(A2*A1)
GYMUX::G";
Rys. 4. Przykładowa implementacja bramki AND w układzie FPGA (konfiguracja bloku SLICE)
Proces tworzenia bitów konfiguracyjnych przebiega dwuetapowo:
Dla układu SLICE:
• analiza konfiguracji bloków LUT;
• analiza konfiguracji multiplekserów kluczujących strukturę SLICE;
Dla bloku IOB:
• analiza konfiguracji wyprowadzenia bloku (PAD);
• analiza konfiguracji multiplekserów kluczujących strukturę IOB;
Do analizy funkcji realizowanych w blokach LUT zaprojektowano prosty analizator
równań boolowskich, który przekształca konfiguracyjny łańcuch tekstowy na odpowiednik
Projekt
napięciowy
(XDL)
Plik
konfiguracyjny
układu FPGA
GEDEON
Projekt
prądowy
(VHDL)
Prądowe
modele
komponentów
SLICE i IOBs
(VHDL)
Prądowy
TestBench
(VHDL)
Rys. 8. Schemat konwersji plików programu GEDEON.
binarny.
Bity konfiguracyjne
komponentów
Komponent
prądowy
Komponent
napięciowy
Rys. 9. Bity konfiguracyjne komponentów napięciowych i prądowych
Aby zachować zgodność struktur w programie GEDEON zastosowano plik konfiguracyjny
określający zależności między wersją prądową i napięciową układu FPGA.
CELL = SLICE
CYSELF
CYSELG
CYINIT
CY0F
…
…
END SLICE
F =
G =
CIN
0 =
0 1 = 1 #OFF = X
0 1 = 1 #OFF = X
= 0
BX = 1
00 1 = 01 F1 = 10
#OFF = X
PROD = 11 #OFF = XX
Po zgromadzeniu takich informacji jak instancje, ich konfiguracje oraz ich połączenia
następuje generacja modelu projektowanego urządzenia w VHDL z wykorzystaniem
prądowych modeli komponentów wybranej rodziny układów FPGA (np. SPARTANII).
WNIOSKI
W niniejszej pracy zaprezentowana została zautomatyzowana procedura implementacji
układów cyfrowych w układach FPGA zbudowanych w oparciu o bramki prądowe.
Zaproponowana procedura wykorzystuje dostępne narzędzia do syntezy i umożliwia szybkie
testowanie i sprawdzanie projektów prądowych. Procedura polega na opracowaniu projektu
docelowego urządzenia cyfrowego w języku HDL i jego implementacji w wybrany układ
FPGA korzystając z odpowiedniego oprogramowania. Następnie wykonuje się analiza i
przekształcenie otrzymanego pliku konfiguracyjnego na jego odpowiednik konfigurujący
prądowy układ FPGA. W tym celu stworzono własne środowisko programowe. Umieszczony
w referacie przykład ilustruje poszczególne etapy tworzenia projektu dwuwejściowej bramki
AND i jej realizacji w prądowym układzie FPGA. Kolejnym etapem prac badawczych jest
zautomatyzowanie procesu weryfikacji układu. W tym celu zostaną generowane odpowiednie
testy dla projektu prądowego i projektu napięciowego. Dodatkowo proces weryfikacji musi
uwzględniać niezgodność typów danych ze względu na korzystanie ze specjalnej biblioteki
logiki prądowej zawierającej własną tablicę rezolucji.
BIBLIOGRAFIA
[1]. M. Ingels, M.S.J. Steyaert, Design strategies and decoupling techniques for reducing the effects of electrical
interference in mixed-mode ICs, IEEE J. Of Solid-State Circuits, N7, 1997, pp.1136-1141.
[2]. A. Guziński, P. Pawłowski, D. Czwyrow, J. Kaniewski, O. Maslennikow, N. Maslennikowa, D. Rataj,
Design of Digital Circuits with Current-mode Gates, Bulletin of the Polish Academy of Sciences,
Technical Sciences, Electronics and Electrotechnics, Vol. 48, No. 1, 2000, pp. 74-91.
[3]. Maslennikow O. Approaches to Designing and Examples of Digital Circuits Based on the Current-Mode
Gates. Data Recording, Storage & Processing, V.3, No.2, 2001, pp.84-98.
[4]. The Programmable Logic Data Book. Xilinx, Inx.,2000.
[5]. Dokumentacja do programu Foundation/ISE (Version 4.1). Xilinx, Inc., 2001.
Praca wykonana w ramach grantu KBN 7T11B 004 20