symulacja ukladow


Politechnika Zielonogórska
w Zielonej Górze
Instytut Informatyki i Elektroniki
Laboratorium Podstaw Techniki Cyfrowej
OrCAD/VST
Symulacja układów-
podstawowe operacje
1. Co to jest symulacja komputerowa ?
W sytuacji, gdy projektowane są coraz bardziej złożone układy elektroniczne symulacja
komputerowa nabiera wciąż większego znaczenia. Pozwala przede wszystkim uniknąć
kłopotliwego i skomplikowanego montowania prototypów. Symulacja komputerowa jest
odpowiednikiem montowania układu prototypowego z tą różnicą, że całe testowanie układu
odbywa się w sposób symboliczny na modelu utworzonym ze schematu układu. Do
symulacji potrzebne są następujące elementy układu:
" schemat układu (przetworzony w odpowiedni dla danego programu symulacyjnego
sposób),
" wymuszenia, czyli wartości sygnałów wejściowych podawane w trakcie symulacji
w chwilach określonych przez projektującego układ.
W Laboratorium Podstaw Techniki Cyfrowej wykorzystywany jest program SIMULATE
wchodzący w skład pakietu OrCAD/VST.
2. Przygotowanie schematu do symulacji
Symulacja układu cyfrowego przedstawionego w postaci schematu utworzonego przy
użyciu programu DRAFT wymaga przeprowadzenia dodatkowych operacji. Związane są
one z zapewnieniem poprawności graficznej i elektrycznej układu, numeracją
poszczególnych elementów oraz koniecznością przedstawienia schematu w postaci
tekstowej. Operacje te wykonywane są poprzez wywołanie odpowiednich programów
należących do pakietu OrCAD/SDT.
2.1 ANNOTATE
Program ANNOTATE służy do numerowania wszystkich elementów katalogowych
znajdujących się na schemacie. Uruchomienie tego programu nie jest konieczne w
przypadku ponumerowania tychże elementów indywidualnie podczas tworzenia schematu.
Uruchomienie programu następuje przez wywołanie:
annotate przyklad.sch /m/o/q
W tym przypadku wszystkie elementy znajdujące się na schemacie przyklad.sch zostaną
ponumerowane w tej samej kolejności, w jakiej zostały umieszczone na schemacie.
Schemat ten zostanie potraktowany jako jednoarkuszowy (przełącznik /o), numery będą
wprowadzone na schemat (przełącznik /m) zaś sam program będzie wyświetlał jedynie
informacje niezbędne dla użytkownika (praca w trybie cichym - przełącznik /q).
2
2.2 CLEANUP
Przed rozpoczęciem symulacji niezbędne jest zagwarantowanie poprawności graficznej
i elektrycznej schematu. Pierwszy przypadek związany jest najczęściej z umieszczeniem
dwóch elementów w jednym miejscu na schemacie (co nie jest widoczne na schemacie,
a może prowadzić do błędnego działania układu podczas symulacji). Zalecany sposób
wywołania:
cleanup przyklad.sch /o/q
Znaczenie przełączników jest takie samo, jak w przypadku ANNOTATE.
Jeżeli program nie wyświetli żadnych komunikatów schemat jest poprawny od strony
graficznej. Jakiekolwiek komunikaty oznaczają błędy, przy czym niektóre z nich (np.
podwójne połączenia przewodów) usuwane są automatycznie, a inne użytkownik musi
poprawić sam programem DRAFT. Ta druga sytuacja sygnalizowana jest komunikatem
<>
na końcu działania programu. Oznacza to, że należy wywołać program DRAFT i poprawić
błędne miejsca (usunąć podwójne bramki itp.). O tym, gdzie takie sytuacje wystąpiły
informuje program CLEANUP w wyświetlanych komunikatach postaci
Duplicate found at X=... Y=...
Xi Yokreślają pozycję kursora na schemacie.
Uwaga: po poprawieniu schematu należy jeszcze raz ponumerować elementy (program
ANNOTATE) !
2.3 ERC
Schemat, który jest poprawny graficznie może zawierać błędy elektryczne, np. zwarte
wyjścia bramek TTL czy nie podłączone wejścia układów. Sprawdzenie poprawności
elektrycznej odbywa sie poprzez wywołanie programu ERC:
erc przyklad.sch /o/q
Nawet w trybie cichym program ERC wyświetla zawartość tabelki schematu. Jeżeli poniżej
tych danych nie pojawiły się żadne komunikaty oznacza to, że schemat jest poprawny
elektrycznie i można przejść do dalszych operacji. Jeśli jednak pojawiły się komunikaty,
najprawdopodobniej trzeba będzie poprawić schemat. Najczęściej występującym tu
komunikatem jest
<> Input has no driving source - U2A, I1
Oznacza on ostrzeżenie, że na jednym z wejść podanego elementu (w tym przypadku U2A)
brak podłączonego sygnału. Przyczyna może być dwojaka - wejście umyślnie nie zostało
3
podłączone (np. wykorzystuje się tylko trzy wejścia w bramce czterowejściowej) i wówczas
nie wymaga to żadnych poprawek lub na wejście podłączono błędnie połączenie. Zwykle
jest to wynikiem nałożenia przewodu na końcówkę elementu (co nie jest dozwolone). W
takim przypadku niezbędne jest uruchomienie programu DRAFT, usunięcie błędnie
narysowanego przewodu i ponowne narysowanie go (tym razem bez nakładania na
wyprowadzenie elementu). Uwaga: możliwe jest także, że przewód nałożony jest nie na
podane wejście elementu, ale na końcówkę poprzedzającego elementu.
W komuniaktach ERC wejścia układów numerowane są zwykle od góry, począwszy od
numeru I0 (czyli gdyby element U2A był trójwejściową bramką AND, to I1 oznaczałoby
środkowe wejście).
2.4 INET
Schemat w postaci graficznej - takiej jak zapisuje go DRAFT - nie jest zrozumiały dla
symulatora. Z tego też względu musi być przekształcony na postać tekstową (tzw. listę
połączeń), zgodną z ustalonym standardem. Służy dotegoprogramINET:
inet przyklad.sch przyklad.inf /o/p/q
Pierwszym z parametrów wywołania jest nazwa schematu, drugim zaś nazwa pliku, do
którego ma być zapisana lista połączeń. Przełącznik /p powoduje, że wliście używane są
numery wyprowadzeń elementów scalonych, a nie nazwy portów nadane przez
użytkownika (taki jest wymóg symulatora).
3. Uruchomienie symulacji
Uruchomienie symulatora odbywa się przez wywołanie
simulate
z katalogu roboczego. Program zgłasza się winietą tytułową taką samą, jak w przypadku
programu DRAFT. Aby przejść do wykonywania symulacji należy dwukrotnie wcisnąć
dowolny klawisz (po pojawieniu się komunikatu :::press any key to continue::: u góry
ekranu).
Po zniknięciu winiety tytułowej i informacji o prawach autorskich pojawi się pusta tabela
symulacji oraz komunikat u góry ekranu:
Enter Netlist Input file name (NULL=exit Program) ?
Należy wprowadzić w tym miejscu nazwę pliku zawierającego listę połączeń (przyklad.inf).
Można podać samą nazwę pliku, bez rozszerzenia (program domyślnie przyjmie
rozszerzenie .inf). Jeżeli zostanie wciśnięty klawisz bez podawania nazwy pliku,
program zakończy działanie i powróci do DOS.
4
Wprowadzenie nazwy listy połączeń program sygnalizuje pytaniem o potwierdzenie
podanej nazwy, np.
U:\15A\PRZYKLAD.INF ?
Potwierdzenie następuje po wciśnięciu klawisza (lub wybraniu opcji Yes z menu).
Wciśnięcie lub wybranie opcji No umożliwia wprowadzenie nowej nazwy.
Program wprowadza wybraną listę połączeń, po czym wyświetla pytanie o nazwę pliku
z wymuszeniami:
Enter Stimulus file name ?
Standardowo plik ten ma rozszerzenie .STM i podobnie jak w przypadku listy połączeń
można podać samą nazwę pliku, np. przyklad. Pliku tego nie można stworzyć inaczej niż w
programie SIMULATE. Z tego też względu przy pierwszym wywołaniu symulatora dla
danego projektu plik wymuszeń nie zostanie wczytany (bo go po prostu nie ma), co
program zasygnalizuje komunikatem
Stimulus File Not Found. Type any key to continue
Po wciśnięciu dowolnego klawisza zostanie uruchomiony edytor wymuszeń (STIMULUS
EDITOR).
4. Wymuszenia
Oprócz samego schematu (podanego w postaci listy połączeń) do przeprowadzenia
symulacji niezbędne są jeszcze wymuszenia, czyli wartości sygnałów wejściowych
podawane w wybranych momentach czasu w celu obserwacji reakcji układu. Wymuszenia
mogą być podawane w dwojaki sposób - w postaci przebiegów czasowych poszczególnych
sygnałów wejściowych oraz w postaci wektorów testowych.
4.1 Przebiegi czasowe
Najczęściej wykorzystywanym sposobem zadawania wymuszeń dla układu są przebiegi
czasowe sygnałów wejściowych czyli specyfikacja zmian ich wartości wraz z określeniem
czasu, w którym zmiany te następują. Załóżmy na przykład, że jedną ze zmiennych
wejściowych jest ENABLE. Chcemy, aby początkowo miała ona wartość 0, po 150 ns
zmieniła wartość na 1, zaś w chwili 560 z powrotem na 0. W tym celu musimy dodać
sygnał ENABLE do listy wymuszeń wraz ze specyfikacją zmianjegowartości:
4.1.1 Dodanie sygnału do listy wymuszeń
Po uruchomieniu edytora wymuszeń (co następuje automatycznie po wprowadzeniu
nieistniejącej nazwy pliku z wymuszeniami lub wywołaniu opcji Edit Stimulus z menu
głównego) można dodać nowy sygnał do listy wymuszeń. W tym celu należy wywołać
5
operację Add (wciskając lub wywołując opcję z menu wyświetlonego po wciśnięciu
). Spowoduje to pojawienie się nowego okna (także oznaczonego jako STIMULUS
EDITOR), w którym wprowadza się informacje o wartościach pojedynczego sygnału.
Najpierw należy wprowadzić nazwę tego sygnału, ustawiając kursor na opcji Signal Name i
wywołując operację Edit (najszybciej będzie wcisnąć ). Podświetlenie całego wiersza
przy opcji zamieni się na kursor (w postaci prostokąta) co oznacza, że od tej chwili można
wprowadzać nazwę sygnału wejściowego, np. ENABLE. Wprowadzanie należy zakończyć
wciśnięciem klawisza .
Kolejną informacją, którą należy wprowadzić jest wartość początkowa sygnału, tj. wartość
w chwili 0. Wprowadzenie jej odbywa się za pośrednictwem opcji Initial Value. Po
ustawieniu na nią kursora menu (wyświetlone w pierwszej linii ekranu) zawiera m. in.
dopuszczalne wartości: 0, 1, U (wartość nieustalona). Wybór następuje przez wciśnięcie
odpowiedniego klawisza lub wybranie odpowiedniej opcji z rozwiniętego menu.
Poniżej opcji Initial Value znajduje się lista zmienności sygnału, w której podaje się
wszystkie przewidywane zmiany wartości sygnału. Do tej listy dodaje się informacje
postaci (kiedy - co). Dodanie nowej informacji do listy następuje poprzez wywołanie opcji
Add, po której pojawia się pytanie o moment czasu:
Time of Function?
W odpowiedzi należy podać wartość czasu (w nanosekundach), przy którym ma nastąpić
zmiana wartości danego sygnału, np. 150 (dla przykładu z ENABLE). Po wciśnięciu
pojawi się kolejne pytanie:
Function?
i zostanie wyświetlone menu z dopuszczalnymi operacjami na danym sygnale:
" 0, 1 nadaj wartość 0lub 1
" U nadaj wartość nieustaloną
" Z nadaj wartość "wysoka impedancja"
" T przełącz na wartość przeciwną (z 0na 1 lubz 1na 0)
" GOTO skocz do innego momentu czasu i wykonaj tą operację, która jest mu
przypisana. W tym przypadku dodatkowo pojawi się jeszcze pytanie o adres skoku:
Destination of Jump?
Podaje się tu miejsce, do którego ma być wykonany skok.
Operację Add z wyszczególnieniem zmian wartości danego sygnału można powtarzać
dowolnie długo.
Po zakończeniu wprowadzania danych dla jednego sygnału można powrócić do głównego
menu edytora wymuszeń wywołując opcję Return.
4.1.2 Deklarowanie sygnałów zegarowych
6
Sygnały zegarowe (i wszelkie inne zmieniające swą wartość w regularnych odstępach
czasu) można deklarować w uproszczony sposób, wykorzystując pętle. Załóżmy
przykładowo, że chcemy zadeklarować sygnał wymuszenia, który będzie zmieniał swoją
wartość co 50 ns rozpoczynając od wartości 0 (czyli jest to sygnał zegarowy taktujący co 50
ns). W tym celu podajemy wartość 0 w opcji Initial Value, po czym do listy dodajemy dwie
operacje: przełączenie sygnału na wartość przeciwną w chwili 50 ns oraz skok do chwili 50
po dojściu do 100 ns (wprowadzając dla 100 operację GOTO 50). Lista będzie miała zatem
następującą postać:
50 T
100 JMP 50
Jeżeli w chwili 0 sygnał miał wartość 0, to po dojściu do 50 przestawi się na 1. Po dojściu
do 100 wykona przewidzianą tam operację czyli skok do 50, a w konsekwencji ponowne
przełączenie wartości, tym razem na 0. Znów przejdzie do 100, wykona skok, przełączy itd.
W efekcie uzyskamy sygnał zegarowy taktujący co 50 ns.
4.1.3 Usuwanie sygnałówz listy wymuszeń
Zbędne sygnały wprowadzone do listy wymuszeń ( a także puste miejsca na liście) usuwa
się z listy wywołując operację Delete z menu edytora wymuszeń po wcześniejszym
ustawieniu kursora na zbędnym sygnale (miejscu listy). Spowoduje to wyświetlenie
pytania:
Delete Record?
Potwierdzenie polecenia (wciśnięcie lub wybranie opcji Yes) spowoduje usunięcie
elementu listy, zaś zaprzeczenie ( lub No) - odwołanie polecenia.
4.1.4 Zmiana wymuszeń w istniejącym sygnale
Jeżeli występuje potrzeba zmiany wymuszeń dla sygnału już zapisanego na liście
wymuszeń, zamiast usuwać go z listy i pózniej wprowadzać na listę z nowymi wartościami
można przeprowadzić jego edycję. W tym celu w edytorze wymuszeń należyustawić kursor
na danym sygnale i wywołać operację Edit. Spowoduje to pojawienie się okna edycji
pojedynczego sygnału, ale z już wprowadzonymi wcześniej wartościmi, które można teraz
zmieniać dowolnie w zależności od potrzeb. Nie można jedynie zmieniać operacji
przypisanych poszczególnym momentom czasu i jeżeli np. chcemy zastąpić ustawianie
sygnału na 1 w chwili 150 ustawianiem na T należy najpierw usunąć z listy dotychczasową
operację (ustawiając kursor na to miejsce listy i wywołując Delete), a następnie wprowadzić
nową wartość.
4.2 Wektory testowe
Drugą metodą wprowadzania wymuszeń są wektory testowe. Wektorem testowym nazywa
się zestaw wartości sygnałów wejściowych podanych w jednej, określonej chwili.
7
Najprostszym przykładem zbioru wektorów testowych jest tablica prawdy układu
kombinacyjnego, w której do każdego wiersza przypisano moment czasu. Wektory testowe
zapisywane są w osobnym pliku, zaś informacje o tym pliku wprowadza się wedytorze
wymuszeń.
4.2.1 Plik wektorów testowych
Plik wektorów testowych należy utworzyć jeszcze przed wywołaniem symulatora.
Najprostszą metodą jego utworzenia jest użycie programu TVGEN (patrz p. 9), który
automatycznie tworzy szkielet takiego pliku, choć można także stworzyć go ręcznie. Należy
przy tym zachować pewne zasady:
" każdy wiersz rozpoczynający się średnikiem jest traktowany jako komentarz;
" wszystkie wartości dla danego pojedynczego sygnału muszą być zapisane w tej samej
kolumnie;
" czas dla każdego wektora musi zaczynać się od tej samej kolumny i zajmować tyle samo
znaków;
" w pliku nie mogą znajdować się puste linie;
" na końcu pliku musi się znalezć linia zawierająca słowo END.
Przykładowo, plik wektorów testowych dla układu kombinacyjnego o dwóch zmiennych
wejściowych mógłby wyglądać następująco:
; przykladowy plik wektorow testowych
;
; X X
; 1 2
;
000 0 0
100 0 1
200 1 0
300 1 1
350 0 0
END
Do symulacji potrzebne będą pewne informacje związane z plikem wektorówtestowych. Są
to:
" numer kolumny, od której zaczyna się czas (w tym przypadku 1)
" ilość znaków, na których zapisano czas (w tym przypadku 3)
" numery kolumn, w których zapisano wartości poszczególnych sygnałów (w tym
przypadku X1 - 10 i X2 - 20).
Typowym rozszerzeniem pliku wektorów testowych jest .TVS.
Dane oplikuwektorów testowych w edytorze wymuszeń
Jeżeli wymuszenia będą podawane w postaci wektorów testowych, informację o tymnależy
podać w edytorze wymuszeń (STIMULUS EDITOR). Służy do tego opcja TestVectorEdit
8
menu tego edytora (wywołanie: klawisz lub wybranie opcji z menu rozwiniętego
klawiszem ). Po jej wywołaniu pojawi się inny ekran tego edytora przeznaczony do
wprowadzania istotnych danych o wektorach testowych. Aby móc korzystać z wektorów
zapisanych w pliku o nazwie PRZYKLAD.TVS należy wprowadzić następujące
informacje:
" Po ustawieniu kursora na wiersz Test Vector należy wywołać opcję Enable.
Standardowo ustawione jest tu Disabled, czyli korzystanie z wektorów testowych jest
zablokowane. Przestawienie tego parametru na Enabled pozwala na używanie wektorów
jako wymuszeń.
" Jako parametr Test Vector Filename należy podać nazwę pliku z wektorami testowymi.
Należy przy tympamiętać, że nie można tu wprowadzać ścieżki dostępu (plik musi być
zapisany w katalogu roboczym symulatora) oraz że dozwolone jest podanie samej nazwy
(bez rozszerzenia), o ile rozszerzeniem jest .TVS. Wprowadzenie nazwy jest możliwe po
przejściu w tryb edycji parametru - opcja Edit. Kropka, która znajduje się w polu
wartości tego parametru jest zbędna i należy ją usunąć klawiszem .
Wciśnięcie kończy wprowadzanie nazwy pliku.
" Parametr Time Input Column ustawiony jest standardowo na 1 i zawiera informację
o numerze kolumny pliku z wektorami, od której zaczyna się informacja o czasie.
Wprzykładzie podanym przed chwilą jest to 1 (a więc wartość standardowa). Tak jest
zazwyczaj, zatem nie ma potrzeby zmieniania wartości tego parametru. Jeżeli jednak
wystąpi taka konieczność, zmienia się ją tak, jak w przypadku innych parametrów -
wywołując trybedycji i kończąc wprowadzanie parametru klawiszem .
" Parametr Time Input Width zawiera z kolei dane o liczbie znaków, za pomocą których
zapisano każdą informację o czasie. Dla naszego przykładu jest to liczba 3 co oznacza,
że każdy moment czasu jest liczbą trzycyfrową. Aby zmienić standardową wartość 10
należy wywołać opcję Edit, usunąć dotychczasową wartość klawiszem ,
wprowadzić nową i wcisnąć .
" Oprócz powyższych parametrów ogólnych pliku wektorów testowych należy
wprowadzić także listę sygnałów znajdujących się w tych wektorach. Lista ta oznaczona
jest nagłówkiem Context||Signal Name i początkowo jest pusta (jedynym jej elementem
jest symbol końca listy - Last Record). Do tej listy należy dopisać wszystkie sygnały
wejściowe które znajdują się w wektorach testowych. Nie należy tu wprowadzać
sygnałów wyjściowych. Dopisywanie nowego sygnału odbywa się po wywołaniu opcji
Add gdy kursor ustawiony jest na koniec listy. Spowoduje to utworzenie nowego,
pustego pola listy poprzedzającego koniec listy. Kursor przestawi się na to pole. Aby
wprowadzić nazwę sygnału należy wywołać teraz operację Edit, co spowoduje zamianę
podświetlenia pola na kursor. Uwaga: nie należy usuwać wpisanej tam automatycznie
kropki !. Po wprowadzeniu nazwy sygnału (nie wolno przy tym dopisywać na końcu
żadnych spacji) należy wcisnąć . Teraz trzeba jeszcze wprowadzić informację o
tym, w którym miejscu (w której kolumnie) pliku z wektorami testowymi dany sygnał
występuje. Mówi o tym kolumna oznaczona Column na prawo od nazwy sygnału. Dla
nowo utworzonego pola ma ona zawsze wartość 99. Chcąc ją zmienić należyprzestawić
podświetlenie na odopowiednie pole (klawiszem ) i wywołać Edit, po
czym usunąć dotychczasową wartość (klawiszem ), wpisać nową (np. dla
9
sygnałuX1z powyższego przykładu będzie to 10) i wcisnąć .
" Po wprowadzeniu wszystkich parametrów i informacji o sygnałach w wektorach
testowych należy powrócić do ekranu głównego edytora wymuszeń przy pomocy opcji
Return.
4.3 Wykorzystanie wymuszeń
Po wprowadzeniu wszystkich wymuszeń należy doprowadzić je do postaci zrozumiałej dla
symulatora, czyli w pewnym sensie skompilować je. Odbywa się to poprzez wywołanie
operacji Use z menu głównego edytora wymuszeń. Warto jednak najpierw zapisać
wymuszenia na dysk, bowiem nie odbywa sie to automatycznie. Do tego celu służy opcja
Write, po wywołaniu której pojawi się pytanie o nazwę pliku. Wystarczy podać samą
nazwę, bez rozszerzenia, bowiem zalecanym i domyślnym rozszerzeniem dla pliku
z wymuszeniami jest .STM.
Jeżeli w podanych wymuszeniach nie ma błędów, symulator wyjdzie z edytora wymuszeń i
wyświetli ekran symulacji (zwykle pusty). Jeżeli zaś w wymuszeniach znajdują się błędy
(z których najczęstszym jest podanie niewłaściwej - nieistniejącej na schemacie - nazwy
sygnału), wówczas program wyświetli okno, w którym popełniony jest błąd, ustawi kursor
w miejscu wykrycia błędu i w pierwszej linii ekranu poda komunikat o rodzaju błędu. Bez
usunięcia błędu nie jest możliwe kontynouwanie symulacji.
5. Śledzenie
Do przeprowadzenia symulacji nie wystarczy schemat symulowanego układu (w postaci
listy połączeń) i wymuszenia - niezbędne jest także określenie, które sygnały wukładzie
mają być śledzone. Symulator nie może przyjąć co do tego żadnych założeń, bowiem nie
wiadomo, czy ma np. podawać wartości wszystkich wejść, a jeżeli tylko niektórych, to
jakich itd. W związku z tym użytkownik musi sam wprowadzić listę sygnałów badanego
układu, których wartości zamierza śledzić podczas symulacji. W tym celu po
skompilowaniu wymuszeń musi wywołać opcję Trace z menu głównego symulatora
(wciskając klawisz lub wybierając opcję z menu rozwiniętego przy użyciu klawisza
), zaś z niej - opcję Trace Edit. Spowoduje to wywołanie edytora wielkość
śledzonych (TRACE EDITOR), który początkowo jest pustą listą. Należy do niej dopisać
wszyskie te sygnały, których wartości mają być dostępne podczas symulacji.
5.1 Pojedyncze sygnały
Chcąc dopisać jakikolwiek sygnał do listy śledzeń należy wywołać opcję Add z menu
edytora śledzeń. Spowoduje to wyświetlenie okna edycyjnego dla pojedynczego sygnału
(wielkości śledzonej). Każda z tych wielkości ma kilka parametrów:
" Display Name - zawiera nazwę, pod jaką dany sygnał ma być wyświetlany podczas
symulacji. Nazwa ta może być taka sama, jak na schemacie, ale może być także zupełnie
inna. Wprowadzenie nazwy odbywa się tak samo, jak wszelkich innych danych w
10
programie SIMULATE - wymaga wywołania opcji Edit.
" Type - informuje o typie wprowadzanej wielkości. Standardowo ustawianym typem jest
Signal i w przypadku pojedynczych sygnałów nie należygozmieniać.
" Trace - określa, czy sygnał ma być śledzony. Standardowo parametr ten jest ustawiony
na On, czyli sygnał jest śledzony. Potrzeba zmiany tej wartości występuje dość rzadko,
zwykle w celu chwilowego wyłączenia śledzenia danego sygnału bez usuwania go
z listy. Przełączanie wartości odbywa się przy użyciu opcji + i -.
" Display - alanogicznie do Trace z tym, że decyduje o tym, czy sygnał będzie
wyświetlany czy nie. Przełączanie wartości odbywa się tak samo, jak w przypadku
poprzedniej opcji.
" Signal Name - o ile parametr Display Name pozwalał wprowadzić dowolną nazwę,
o tyle tu konieczne jest wprowadzenie nazwy sygnału istniejącej na schemacie. Może to
być zarówno nazwa portu, jak i dowolnego wyprowadzenia układu scalonego.
W pierwszym przypadku należypamiętać o tym, że podczas przetwarzania pliku na listę
połączeń niektóre znaki są zmieniane. Dotyczy to zwłaszcza ukośników (/ i \), które
zastępuje słowo BAR. Jeżeli zatem na schemacie istnieje port oznaczony /Q, to podczas
symulacji będzie się nazywał BARQ. Pełna informacja o zmianach znaków
wprowadzanych przez program INET zawarta jest w dodatku A.
W przypadku, gdy użytkownik chce obserwować wartości sygnałówwewnętrznych układu,
dostępnych jedynie poprzez numery wyprowadzeń układów scalonych, może tą informację
wprowadzić właśnie w tym parametrze. Jeżeli np. chcemy ślewdzić wartość sygnału na
wyprowadzeniu 12 układu oznaczonego jako U2, zamiast nazwy sygnału wpisujemy .U2-
12. Należy pamiętać tu o kropce na początku oraz o tym, by wprowadzać tylko oznaczenia
całych układów, bez dodatkowych liter (czyli U2 a nie U2A).
Po wprowadzeniu wszystkich parametrów danego sygnału można przejść do menu
głównego edytora śledzeń wywołując operację Return.
5.2 Grupy sygnałów
Często zachodzi potrzeba przedstawienia grupy sygnałów w postaci jednej wielkości np.
dziesiętnej. Aatwiej jest bowiem analizować układ, w którym podczas wyświetlania
wyników symulacji mamy jedną liczbę 123 zamiast ośmiu sygnałówo wartościach kolejno
01111011. Aby zebrać grupę sygnałów w jedną całość (magistralę) do śledzenia należy
postąpić tak, jak w przypadku dopisywania pojedynczego sygnału do listy śledzeń z tą
różnicą, że dodatkowo należy zmienić typ sygnału (drugi parametr). Dostępne są tu cztery
możliwości związane z magistralami:
" Binary Bus magistrala dwójkowa,
" Octal Bus magistrala ósemkowa,
" Decimal Bus magistrala dziesiętna,
" Hex Bus magistrala szesnastkowa.
Określenie "magistrala szesnastkowa" oznacza, że wyniki symulacji dla tej magistrali będą
podawane w postaci liczb szesnastkowych.
11
Zmiana typu sygnału na jeden z powyższych powoduje konieczność wprowadzenia listy
sygnałów wchodzących w skład magistrali wraz z wyszczególnieniem kolejności tych
sygnałów w magistrali. W związku z tym na końcu listy parametrów pojawia się lista
(pusta) Bit Signal Name, do której należy dopisać odpowiednie sygnały używając nazw
analogicznych do tych, które były używane w przypadku pojedynczych sygnałów.
Dopisanie sygnału do listy odbywa się poprzez wywołanie operacji Add i wpisanie nazwy
sygnału, począwszy od najmniej znaczącego bitu magistrali (bit nr 0). Po zakończeniu
wprowadzania parametrów magistrali można przejśc do menu głównego edytora śledzeń
wywołując operację Return.
5.3 Usuwanie zbędnych elementówlisty
Jeżeli wprowadzony element listy (sygnał lub magistrala) nie jest już potrzebny, można go
usunąć ustawiając na nim kursor i wywołując operację Delete, po czym potwierdzając
decyzję wybierając opcję Yes.
Można także zablokować śledzenie wartości danego elementu listy, co da taki sam efekt
podczas wyświetlania wyników symulacji, jak usunięcie go z listy, ale bez konieczności
ponownego go wpisywania gdyby zaszła konieczność ponownego śledzenia jego wartości.
W tym celu wystarczy zmienić wartość parametru Trace dla tego elementu. Można to
zrobić w dwojaki sposób:
" Ustawić kursor na danym elemencie, wywołać operację Edit i po przestawieniu kursora
na parametr Trace wyłaczyć go (opcja - menu); powrót do menu głównego edytora
śledzeń - operacja Return;
" Ustawić kursor na danym elemencie i przesunąć go w prawo do kolumny Trace. Wartość
można zmienić wywołując operację -. Ten sposób nie wymaga wchodzenia do trybu
edycji elementu listy śledzeń.
5.4 Wprowadzanie listy z pliku
Jeżeli symulacja danego układu była prowadzona już wcześniej, to lista śledzeń została
prawdopodobnie zapisana na plik. Przy kolejnym uruchomieniu symulatora nie ma potrzeby
tworzenia jej od nowa - wystarczy wprowadzić tą wcześniej utworzoną. Symulator nie pyta
jednak o jej nazwę tak, jak ma to miejsce w przypadku listy połączeń czy wymuszeń.
Trzeba to zrobić samemu, wywołując z menu edytora wymuszeń operację Read i podając
nazwę pliku z listą sygnałów śledzonych.
5.5 Zapis i kompilacja listy
Po wprowadzeniu wszystkich elementów listy śledzeń należy je skompilować, podobnie jak
w przypadku wymuszeń. Odbywa się to poprzez wywołanie operacji Use z menu głównego
edytora śledzeń. Warto jednak najpierw zapisać listę na dysk, bowiem nie odbywa sie to
automatycznie. Do tego celu służy opcja Write, po wywołaniu której pojawi się pytanie o
nazwę pliku. Wystarczy podać samą nazwę, bez rozszerzenia, bowiem zalecanym i
domyślnym rozszerzeniem dla pliku z listą śledzeń jest .TRC.
12
Jeżeli w podanych sygnałach i magistralach nie ma błędów, symulator wyjdzie z edytora
śledzeń i wyświetli ekran symulacji ze skompilowanymi przed chwilą sygnałami. Jeżeli zaś
znajdują się wnich błędy (z których najczęstszym jest podanie niewłaściwej - nieistniejącej
na schemacie - nazwy sygnału), wówczas program wyświetli okno, w którym popełniony
jest błąd, ustawi kursor w miejscu wykrycia błędu i w pierwszej linii ekranu poda
komunikat o rodzaju błędu. Bez usunięcia błędu nie jest możliwe kontynouwanie
symulacji.
5.6 Odczyt listy
Podobnie jak w przypadku wymuszeń można wprowadzić wcześniej utworzoną listę
sygnałów śledzonych. W tym celu po wejściu do edytora śledzeń należy wywołać operację
Read, a następnie podać nazwę pliku. Domyślnym rozszerzeniem nazwy pliku z listą
śledzeń jest .TRC.
6. Symulacja
Po skompilowaniu sygnałówdo śledzenia można przejść do samej symulacji.
6.1 Uruchomienie symulacji
Uruchomienie symulacji układu następuje poprzez wywołanie operacji Run Simulation
z menu głównego symulatora. Dostępne jest ono po wciśnięciu klawisza .
Wywołanie tej operacji spowoduje wyświetlenie pytania o długość symulacji:
Simulation Length?
Podanie tu wartości np. 1000 oznacza, że symulacja będzie prowadzona od aktualnego
stanu zegara symulacji (wyświetlonego w lewym dolnym rogu ekranu pod nazwą SysTime)
przez zadaną liczbę nanosekund.
6.1.1 Zmiana kroku próbkowania
Częstym zjawiskiem po uruchomieniu symulacji jest pojawienie się komunikatu
Trace Buffer will overflow if Simulation continues. Continue?
Oznacza on, że obszar pamięci przeznaczony do przechowywania wyników symulacji
przepełni się jeżeli symulacja będzie kontunuowana. Użytkownik ma do wyboru dwie
możliwości - jeżeli wybierze Yes, symulacja będzie kontynuowana, przy czym
wprowadzanie nowych wyników będzie powodować usuwanie starych, począwszy od
początkowych (nowe pomiary "wypychają" stare). Wybór opcji No zatrzymuje symulację.
Przepełnienia bufora można uniknąć na wiele sposobów, z których najczęściej
wykorzystywanym jest zmiana kroku próbkowania. Standardowo symulator próbkuje układ
co 1 ns, tzn. co jedną nanosekundę odczytuje wartości śledzonych sygnałówi zapisuje je do
13
bufora. Tak duża częstotliwość próbkowania przydaje się bardzo rzadko, właściwie jedynie
wtedy, gdy chcemy dokładnie określić czas propagacji badanego układu. Na ogół jednak
słuszna jest zmiana kroku próbkowania na większą wartość, np. 10 co dziesięciokrotnie
zmniejsza liczbę pomiarów, a coza tymidzie także i wartości zapisywanych do bufora.
Zmiany kroku próbkowania dokonuje się za pośrednictwem opcji Trace menu głównego
symulatora, a z menu tej opcji - operacji Change View. Kiedy kursor jest ustawiony na tę
opcję menu w pierwszej linii ekranu wyświetlona jest aktualna wartość kroku próbkowania
(np. View=1). Po wywołaniu opcji Change View pojawi się pytanie o nową wartość kroku
próbkowania:
Trace Delta Time?
Po wprowadzeniu nowej wartości i wciśnięciu zmieni się skala na wykresie
przebiegówczasowych.
6.1.2 Zerowanie zegara symulacji
Każdorazowe uruchomienie symulacji powoduje przestawienie zegara symulacji na nową
wartość, równą sumie wartości startowej i długości symulacji. Aktualny stan zegara
symulacji jest zawsze wyświetlony na ekranie (jako SysTime). Chcąc uruchomić symulację
od zera, należy wyzerować (zainicjalizować) zegar. Służy do tego operacja Initialize menu
głownego symulatora. Jej wywołanie spowoduje wyświetlenie komunikatu
This will restart the simulator at 0. Are you sure?
wybór opcji Yes spowoduje wyzerowanie zegara, zaś opcja No odwołuje polecenie
inicjalizacji zegara.
6.1.3 Uruchomienie symulacji od wybranego momentu
Może się zdarzyć, że zajdzie potrzeba przeprowadzenia symulacji nie od początku
wybranego okresu, ale dopiero od jakiegoś pózniejszego momentu, np. uruchamia się
symulację do 25000, ale interesujący jest aktualnie tylko fragment od 19500. Można
ustawić tę drugą wartość jako początkowy moment symulacji wykorzystując do tego celu
opcję Trace, a z jej wewnętrznego menu - Set Start Time. Spowoduje to wyświetlenie
komunikatu:
Start Trace Time?
W odpowiedzi należy wpisać odpowiednią wartość (w powyższym przykładzie 19500)
i wcisnąć .
7. Wydruk
Wykresów czasowych utworzonych podczas symulacji nie można zapisać na dysk. Można
14
je jedynie wydrukować. Służy do tego operacja Hardcopy dostępna w menu głównym
symulatora. Jej wywołanie spowoduje wyświetlenie menu, w którym należy ustawić
następujące parametry:
" Destination - dokąd ma być drukowany wykres. Standardowo jest to LPT:, czyli
bezpośrednio na drukarkę. Można jednak "wydrukować" wykres do pliku (np. gdy
aktualnie nie ma dostępu do drukarki). W tym celu należy przestawić ten parametr na
File i wprowadzić nazwę pliku (symulator sugeruje nazwę HARDCOPY.PRN; chcą
wprowadzić inną nazwę należy najpierw usunąć tą klawiszem ). Tak
utworzony plik można pózniej wydrukować poleceniem copy nazwapliku prn: /b
systemu operacyjnego.
" Start Time - początek wykresu czasowego. Chociaż w menu wpisana jest wartość 0 dla
tego parametru, nawet jeśli chcemy wydrukować wykresy od tej właśnie chwili, należy
wpisać ponownie 0 (lub jakąkolwiek inną wartość).
" End Time - koniec wykresu czasowego. Należy podać tu moment, na którym ma
zakończyć się drukowanie wykresów symulacji.
" Paper Width - szerokość papieru. Dostępne są dwie mozliwości: Narrow (papier wąski) i
Wide (szeroki). Bez względu na szerokość papieru wykresy drukowane są wzdłuż kartki.
Uruchomienie drukowania następuje po wywołaniu operacji Make Hardcopy.
Uwaga: skala wykresu na wydruku zależy wyłącznie od parametrów Start Time, End Time
oraz wartości kroku próbkowania. Nie ma na nią wpływu ustawienie skali wykresów na
ekranie (Zoom).
8. Przetwarzanie wykresów czasowych na postać tekstową
W pewnych sytuacjach pożądane jest przetworzenie wykresów czasowych symulacji
wpostać tekstową, taką, jaką mają wektory testowe. W celu uzyskania takiej wersji
wyników symulacji należy przed uruchomieniem symulacji ustawić na Yes parametr Spool
To Disk występujący w menu opcji Set menu głównego symulatora. Program zapyta
onazwę pliku, do którego mają być zapisane wyniki symulacji. Zalecanym rozszerzeniem
dla tegoplikujest .TDF.
Zawartość pliku .TDF musi być jeszcze dodatkowo przetworzona na wektory testowe.
W tym celu należy zakończyć pracę symulatora i przejść do systemu operacyjnego,
a następnie wywołać program
SPOOLTV nazwa.TDF nazwa.TVS
Gdzie nazwa.TDF jest nazwą pliku utworzonego podczas symulacji, zaś nazwa.TVS jest
nazwą pliku z wektorami testowymi, który ma utworzyć porgam SPOOLTV. Jeżeli podana
zostanie tylko pierwsza nazwa, program utworzy plik o takiej samej nazwie i automatycznie
doda do niego rozszerzenie .TVS.
15
9. Zakończenie pracy i powrót doDOS
Po zakończeniu pracy przejście do systemu operacyjnego odbywa się po wywołaniu opcji
Quit, a z jej menu Abandon Program.
10. Dodatek A - Automatyczne generowanie pliku wektorów
testowych
W celu ułatwienia tworzenia pliku wektorów testowych producenci pakietu OrCAD
stworzyli program do generowania tego pliku. Program nosi nazwę TVGEN i jest
wywoływany z poziomu systemu operacyjnego. Przed jego wywołaniem należy jednak
przygotować dodatkowy plik - "definicje wektorów testowych" - którego standardowym
rozszerzeniem jest .TVD. Zawiera on informacje o tym, jakie sygnały mają się znalezć
w wektorach testowych oraz jakie są ich typowe wartości. Przykładowo, chcemy utworzyć
wektory testowe dla trzech sygnałów: A, B i C, które mają mieć wartości odpowiednio 0, 1
i 1 oraz być zapisane w kolumnach 15, 25 i 35. Zawartość pliku przyklad.tvd byłaby wtedy
następująca:
a signal 15 0
b signal 25 1
c signal 35 1
Wywołanie programu do automatycznego generowania wektorów testowych ma
następującą postać:
TVGEN przyklad.tvd przyklad.tvs
Rozszerzenia .tvd i .tvs można pominąć.
Uruchomienie programu spowoduje wyświetlenie kilku dodatkowych pytań związanych
z tworzonymi wektorami testowymi:
" Start Time? - moment czasu, od którego ma być rozpoczęte podawanie wektorów
testowych na wejścia układu (tzn. czas przypisany do pierwszego wektora);
" End Time? - moment czasu, na którym ma się zakończyć podawanie wektorów
testowych na wejścia układu (czas przypisany do ostatniego wektora);
" Time Increment? - odstępmiędzy kolejnymi wektorami;
" Starting Column Number Of Time Field? - numer kolumny w pliku wektorów
testowych, od której ma być wpisywany czas;
" Time Field Width? - ilość cyfrf w zapisie czasu w pliku wektorów testowych.
16
Jeśli dla podanego powyżej przykładu wprowadzono następujące dane:
Start Time?0
End Time?400
Time Increment?100
Starting Column Number Of Time Field?1
Time Field Width?4
to w efekcie powstanie plik przyklad.tvs o następującej zawartości:
;A C
B
;
0000 0 1 1
0100 0 1 1
0200 0 1 1
0300 0 1 1
0400 0 1 1
END
Chcąc wprowadzić odpowiednie wektory testowe należy wprowadzić ten plik do
dowolnego edytora tekstu i pozmieniać wartości poszczególnych sygnałów.
Jeżeli zachodzi potrzeba wprowadzenia magistrali do wektorów testowych wówczas w
pliku .tvd deklaruje się ją wnastępujący sposób:
adr bus 0:7 15 00001111
w tym przypadku magistrala nazywa się adr i jej bity ponumerowane są od 0 do 7. Bit nr 0
ma być zapisany w kolumnie 15, zaś poszczególne bity mają wartości 0 (bity 0..3) i 1 (bity
4..7). Po uruchomieniu programu TVGEN i podaniu takich samych parametrów jak
poprzednio w pliku .TVS pojawiłyby się następujące wektory testowe:
; aaaaaaaa
; dddddddd
; rrrrrrrr
; 01234567
;
0100 00001111
0200 00001111
0300 00001111
0400 00001111
END
17
11. Dodatek B - Zmiana symboli wprowadzana przez program Inet
Podczas tworzenia listy połączeń program INET usuwa niektóre znaki, zastępując je
innymi. Wynika to z faktu, że tworzona lista połączeń zapisywana jest zgodnie ze
standardem EDIF, w którym niektórre znaki są niedozwolone. INET dokonuje następującej
konwersji znaków:
" !, @, #, $, %, ^, &, *, (, ), _, =, <, >, {, }, :, ;, ", ', `, ?, , , . - zamieniane są na znak
podkreślenia, ale nie zaleca się ich stosowania;
" + zamieniany jest na słowo PLUS;
" - zamieniany jest na słowo MINUS;
" / i \ zamieniane są na słowo BAR.
Przykładowo, port oznaczony na schemacie jako /Q w symulatorze należynazywać BARQ.
18
12. Spis Treści
1. Co to jest symulacja komputerowa ?...................................................................................2
2. Przygotowanie schematu do symulacji ...............................................................................2
2.1 ANNOTATE .................................................................................................................2
2.2 CLEANUP ....................................................................................................................3
2.3 ERC ...............................................................................................................................3
2.4 INET..............................................................................................................................4
3. Uruchomienie symulacji......................................................................................................4
4. Wymuszenia ........................................................................................................................5
4.1 Przebiegi czasowe .........................................................................................................5
4.1.1 Dodanie sygnałudolistywymuszeń ......................................................................5
4.1.2 Deklarowanie sygnałów zegarowych .....................................................................6
4.1.3 Usuwanie sygnałów z listy wymuszeń ...................................................................7
4.1.4 Zmiana wymuszeń wistniejącym sygnale .............................................................7
4.2 Wektory testowe............................................................................................................7
4.2.1 Plik wektorów testowych .......................................................................................8
4.3 Wykorzystanie wymuszeń...........................................................................................10
5. Śledzenie ...........................................................................................................................10
5.1 Pojedyncze sygnały .....................................................................................................10
5.2 Grupy sygnałów...........................................................................................................11
5.3 Usuwanie zbędnych elementów listy ..........................................................................12
5.4 Wprowadzanie listy z pliku.........................................................................................12
5.5 Zapis i kompilacja listy ...............................................................................................12
5.6 Odczyt listy..................................................................................................................13
6. Symulacja ..........................................................................................................................13
6.1 Uruchomienie symulacji..............................................................................................13
6.1.1 Zmiana kroku próbkowania..................................................................................13
6.1.2 Zerowanie zegara symulacji .................................................................................14
6.1.3 Uruchomienie symulacji od wybranego momentu...............................................14
7. Wydruk..............................................................................................................................14
8. Przetwarzanie wykresów czasowych na postać tekstową .................................................15
9. Zakończenie pracy i powrót do DOS ................................................................................16
10. Dodatek A - Automatyczne generowanie pliku wektorów testowych ............................16
11. Dodatek B - Zmiana symboli wprowadzana przez program Inet....................................18
12. Spis Treści.......................................................................................................................19
19


Wyszukiwarka

Podobne podstrony:
Symulacja układów dynamicznych New
Analizowanie działania układów mikroprocesorowych
DX 6 Symulacja ver lato 2004
,Modelowanie i symulacja systemów, Model dynamiczny
Kinematyka i Dynamika Układów Mechatronicznych
budowa i działanie układów rozrządu silników spalinowych
Analizowanie prostych układów elektrycznych
Instrukcja do ćw 20 Regulacja dwupołożeniowa temperatury – symulacja komputerowa
Katalog układów logicznych CMOS serii 4000
symulator EPROM i EEPROM do PC 1
15 Wykonywanie obsługi i konserwacji układów automatyki
C Builder Symulacje komputerowe poprws
Smarowanie układów pneumatycznych
dobrucki,wprowadzenie do inżynierii akustyki, drgania układów o skończonej liczbie stopni swobody
BADANIE UKŁADÓW PROSTOWNIKOWYCH PRZY RÓŻNYCH OBCIĄŻENIACH
symulacja obwodów elektrycznych

więcej podobnych podstron