0388 - OrCAD Cz.2

Poprzedni odcinek kierowaliśmy głównie do Czytelników którzy OrCAD-a albo w ogóle nie mają, albo też dopiero co go uzyskali. Obecnie zwracamy się do początkujących entuzjastów rysowania schematów za pomocą klawiszy komputera: przedstawiamy "serce" OrCAD-a, czyli program DRAFT.

Słowo się rzekło - DRAFT na ekranie. Po wywołaniu programu DRAFT ładuje do pamięci zbiory wybrane podczas konfiguracji programu - startujące kartą graficzną, drukarką oraz biblioteką.

DRAFT wyświetla teraz "wizytówkę", którą reprodukowaliśmy w poprzedniej części. Wciśnięcie dowolnego klawisza powoduje pojawienie się na ekranie napisu ostrzegającego użytkownika przed pogwałceniem praw autorskich. Po ponownym wciśnięciu klawisza, w lewym górnym rogu ekranu pojawia się napis "load file?". Pytanie to dotyczy nazwy zbioru zawierającego schemat. Jeżeli przystępujemy do edycji nowego schematu, możemy z czystym sumieniem wcisnąć klawisz ENTER. Wówczas wyświetlony zostanie napis "<<< Unnamed Worksheet >>>" (arkusz bez nazwy) oraz dwie prostopadłe linie, stanowiące część obrysu pola, na którym rysowany będzie schemat. Nazwę zbioru zawierającego schemat można też podać w momencie wywołania programu DRAFT (odpowiednie zlecenie może wówczas np. przyjąć postać DRAFT SCHEMAT.SCH). W tym ostatnim przypadku pytanie "load file?" jest pomijane.

Zlecenia programu DRAFT

Istnieją trzy sposoby podawania zleceń :

  • za pomocą klawiszy kursora i klawisza ENTER,
  • przez podanie pierwszej litery zlecenia,
  • za pomocą myszki.

Aby wyświetlić na ekranie najwyższy poziom hierarchicznego menu, należy po zakończeniu omówionego wyżej dialogu początkowego wcisnąć klawisz ENTER lub lewy klawisz myszki (są one jednakowo traktowane przez program). Wspomnijmy od razu, że prawy klawisz myszki pełni tę samą funkcję co klawisz ESCAPE. Posiadaczy trój-klawiszowych myszek prosimy o cierpliwość. Omówienie zastosowania środkowego klawisza odkładamy do jednej z następnych części artykułu (patrz hasło "makro zlecenia"). Rys.1

Reprodukcję głównego menu programu przedstawia Rys.1. Zauważmy, że pierwsze zlecenie - "Again" jest wyróżnione. Przesuwając myszkę lub wciskając jeden z klawiszy "kursor w dół" i "kursor w górę" możemy stwierdzić, że wyróżnienie przesuwa się po oknie menu. Aby wykonać wybrane w ten sposób zlecenie, należy ponownie wcisnąć "ENTER" lub, równoważny z punktu widzenia programu, lewy klawisz myszki. Jak wspomnieliśmy, dowolne zlecenie można także wprowadzić przez podanie jego pierwszej litery (zauważmy, że początkowe litery wszystkich zleceń głównego menu są różne). Pragniemy zwrócić uwagę na zalety tej ostatniej metody. Po pierwsze - podanie pierwszej litery zlecenia powoduje jego natychmiastowe wykonanie (unikamy konieczności wciskania klawisza ENTER). Po drugie - literę wybierającą zlecenie można wprowadzić niezależnie od tego, czy okno menu jest wyświetlane na ekranie (nie trzeba więc wciskać "ENTER" w celu uaktywnienia tego okna). Pozwala to znacznie przyśpieszyć pracę po uzyskaniu pewnej wprawy w posługiwaniu się programem.

O strategii

Liczba poziomów hierarchii jest w programie DRAFT różna dla poszczególnych zleceń. Podczas lub po realizacji zlecenia można powrócić na najwyższy poziom menu posługując się klawiszem ESCAPE. Powrót "podczas realizacji zlecenia" jest równoznaczny z przerwaniem jego wykonywania. Dobrze jest pamiętać o tym, zwłaszcza gdy eksperymenty zawiodą Czytelnika w ślepy lub ciemny zaułek... Powrót do głównego menu po wykonaniu zlecenia następuje na ogół automatycznie. Istnieje jednak grupa zleceń, które raz rozpoczęte wydają się wykonywać w nieskończonej pętli. Jako przykład można wymienić zlecenie "Place/Label" (umieść etykietę). Po otrzymaniu go program pyta o jej nazwę ("label?"). Oprócz nazwy trzeba jeszcze podać (na kolejnych, niższych poziomach menu) rodzaj etykiety oraz miejsce, w którym ma się ona znaleźć. Po umieszczeniu jej na schemacie program powraca do pytania o nazwę kolejnej etykiety. Powrót do głównego menu następuje dopiero po wciśnięciu klawisza ESCAPE. Istnieją jeszcze bardziej "złośliwe" zlecenia, które wymagają... trzykrotnego wciśnięcia "ESCAPE". O tym, czy nastąpił już powrót na najwyższy poziom hierarchii zleceń, najłatwiej przekonać się obserwując pierwszą wyświetlaną linię, tuż nad obrysem arkusza. Po osiągnięciu głównego menu linia ta staje się pusta.

Podsumujmy krótko strategię walki z DRAFT-em:

  • działania zaczepne - ENTER - wyświetlanie listy zleceń,
  • działania obronne - ESCAPE - powrót do głównego menu.

Mamy nadzieję, że po przeczytaniu powyższych wskazówek Czytelnik nie będzie musiał uciekać się do stosowania tak drastycznych posunięć, jak ALT/CTRL/DEL ...

O rysowaniu

Zastanówmy się, jak przenieść na ekran komputera schemat narysowany za pomocą tradycyjnych środków (ołówek + linijka). Pierwszym nasuwającym się w takiej sytuacji pytaniem jest jak umieścić na ekranie podzespoły, z których składa się schemat. Zleceniem, jakim należy się posłużyć, jest Get (Pobierz). Pozwala ono skorzystać z bogatych zasobów bibliotek OrCad-a. Tu jeszcze raz pragniemy przypomnieć, że o możliwości dostępu do poszczególnych grup podzespołów decyduje etap konfiguracji programu. Jeżeli więc konfiguracja DRAFT-a zawiera wyłącznie bibliotekę DEVICE.LIB (elementy dyskretne), to efektywnie korzystać z programu mogą wyłącznie osoby, które nie stosują w swoich projektach układów scalonych. Bardziej wymagający użytkownicy powinni skonfigurować program tak, aby mieć dostęp do układów pamięciowych (MEMORY.LIB), czy np. układów cyfrowych firmy Motorola (MOTO.LIB). Nazwy bibliotek są na tyle sugestywne, że opisywanie zawartości zbiorów INTEL.LIB, TTL.LIB, CMOS.LIB itp. uważamy za zbyteczne. W razie wątpliwości można posłużyć się zleceniem Library (Biblioteka), aby wyświetlić na ekranie listę dostępnych podzespołów (Library\Directory\...) lub ich rysunki (Library\Browse\...).

Powróćmy do wspomnianego wyżej zlecenia Get. Pozwala ono umieścić na rysunku dowolny podzespół zdefiniowany w jednej z dołączonych bibliotek. Gdy w lewym, górnym rogu ekranu pojawi się napis "Get?", należy wpisać nazwę żądanego podzespołu (np. 74LS00). W tym momencie rodzi się kolejne pytanie. W którym miejscy rysunku umieszczony zostanie wybrany podzespół? Oczywiście dokładnie tam, gdzie życzy sobie użytkownik. Wystarczy tylko przesunąć go w odpowiednie miejsce za pomocą myszki lub klawiszy kursora, a następnie podać zlecenie Place (umieść). Podanie zlecenia Get\74LS00\Place nie kończy się powrotem do głównego menu. Dzieje się tak wyłącznie z uwagi na wygodę użytkownika. Jeżeli rysowany schemat zawiera tylko jedną bramkę 74LS00, to aby wrócić na najwyższy poziom hierarchii zleceń, wystarczy wcisnąć klawisz ESCAPE. W Przeciwnym wypadku rysowany podzespół można "rozmnożyć" przesuwając myszkę w następne wybrane miejsce i podając ponownie ostatni człon zlecenia (Place).

Czytelnicy, którzy na bieżąco sprawdzają poprawność tego tekstu, stwierdzą zapewne, że rozmieszczenie tu i ówdzie na schemacie bramki 74LS00 zdają się wykazywać niepokojąco duże podobieństwo. Po pierwsze - wszystkie są zdefiniowane w ten sam sposób (wejścia po lewej stronie, wyjście po prawej), po drugie - każda z nich jest oznaczona tym samym zagadkowym symbolem (U?A), po trzecie - bramki te mają jednakowe numery wyprowadzeń (wejścia - 1,2, wyjście - 3). Aby zbliżyć postać schematy do intencji jego autora, należy posłużyć się zleceniem Edit. Pozwala ono uporać się ze wszystkimi zasygnalizowanymi problemami. Podając zlecenie Edit\Edit (to samo na dwóch kolejnych poziomach hierarchii) stajemy przed koniecznością wyboru jednej z czterech opcji :

  • Reference (numer porządkowy podzespołu),
  • Part value (typ układu scalonego lub wartość elementu dyskretnego),
  • Orientacion (orientacja)
  • Which device (numer części układu składającego się z kilku jednakowych elementów, np. bramek).

Każdy z podzespołów umieszczonych na schemacie za pomocą zlecenia Get\...\Place można, stosownie do potrzeb, obrócić o 90, 180, 270 stopni lub przedstawić w postaci "lustrzanego odbicia" (Mirror). Wszystko w ramach opcji "Orientation". W przypadku bramek zmienić można także kształt obrysu, np. bramka NAND może zostać przedstawiona jako bramka OR z zanegowanymi wejściami (opcja Orientation\Convert). Wrócimy do tego tematu przy okazji omawiania bibliotek. Numerem porządkowym podzespołu nie trzeba się zbytnio przejmować, gdyż w pakiecie OrCAD istnieje program, który znaki "?" w oznaczeniach U?, R?, czy C? zamienia na kolejne liczby. Niewiele uwagi ze strony użytkownika wymaga też oznaczenie typu układu scalonego. Parametr "Part Value" jest jednak istotny w przypadku elementów dyskretnych. Domniemanie wartości wszystkich rezystorów wynoszą bowiem ... RESISTOR. Aby zamienić to określenie na konkretne wartości rezystancji, należy posłużyć się zleceniem Edit\Edit\Part Value\Name.

Na "gęstych" schematach istotne staje się często rozmieszczenie napisów określających rodzaj i wartość podzespołu. Przesuwanie tych napisów umożliwiają zlecenia Edit\Edit\Reference\Location oraz Edit\Edit\Part Value\Location. Aby zmienić numery wyprowadzeń narysowanego podzespołu, stanowiącego część układu scalonego, należy zastosować zlecenie Edit\Edit\Which device. Podanie go spowoduje wyświetlenie w oknie menu kilku kolejnych cyfr, np. w przypadku bramki NAND z układu 74LS00 - 1,2,3,4. Wybierając jedną z nich decydujemy o tym, którą część układu scalonego (a zatem jakie numery wyprowadzeń) reprezentuje narysowany symbol. Jeżeli wybrana zostanie część 4 układu 74LS00, to wejściom bramki przyporządkowane zostaną numery 12 i 13, a jej wyjściu - numer 11.

Aby tworzony rysunek zasługiwał na miano schematu, należy jeszcze podzespoły te połączyć ze sobą w odpowiedni sposób. Wymagane połączenia można zrealizować posługując się przewodami (wire) i magistralami (bus). Łączenie schematów składających się z wielu arkuszy wymaga pewnych dodatkowych środków, ale "first things first", czyli zacznijmy od kabla.

Dostęp do magazynu kabli uzyskuje się w programie DRAFT za pomocą zlecenia Place\Wire. Aby przewód połączeniowy zaczął się rozwijać, należy myszką lub klawiszami kursora wskazać początek połączenia (koniec wyprowadzenia jednego z narysowanych podzespołów) i podać następny człon zlecenia - Begin (początek). Jeżeli połączenie stanowi odcinek linii prostej, to po doprowadzeniu przewodu do końcowego punktu połączenia "ucina się" go wybierając z menu opcję End (koniec). Przewód można także "zagiąć" pod kątem 90 stopni. W tym celu należy w miejscu "zgięcia" podać ponownie "Begin", co powoduje "przyklejenie" narysowanej części połączenia. Bardzo użyteczną opcją zlecenia Place\Wire jest także New (nowy). Umożliwia ona umieszczenie na schemacie następnego nowego przewodu bez konieczności powrotu do głównego menu (co ma miejsce po podaniu opcji "End").

Niezwykle rzadko udaje się narysować schemat, na którym żadne przewody nie krzyżują się. Autorzy programu DRAFT, zdając sobie z tego sprawę, wprowadzili zlecenie Place\Junction (umieść\połączenie), które pozwala zaznaczyć miejsca, w których przecinające się przewody powinny zostać ze sobą zwarte. Rys.2

Tyle na temat przewodów. Z magistralami sprawa nie jest niestety aż tak prosta. Zasady prowadzenia ich nie odbiegają wprawdzie od podanych wyżej, lecz zgodnie z dialektycznym prawem przechodzenia zmian ilościowych w jakościowe, aby posłużyć się magistralą (a więc wiązką przewodów), należy wziąć pod uwagę pewne dodatkowe okoliczności. Każdej magistrali trzeba nadać nazwę (etykietę) składającą się z literowo-cyfrowego oznaczenia oraz zawartego w nawiasach kwadratowych wyrażenia określającego ilość reprezentowanych przez nią przewodów (np. A[0..15]). Wartość pierwszego indeksu musi zawsze wynosić zero. Przewody stanowiące odgałęzienia magistrali muszą również być oznaczone odpowiednimi etykietami - w omawianym przypadku są to symbole A0,A1, ... ,A15. Ponadto każdy z tych przewodów powinien być dołączony do magistrali w pewien wyróżniony sposób - ukośną kreską umieszczaną w schemacie za pomocą zlecenia Place\Entry (umieść odgałęzienie). Dodajmy jeszcze, że odgałęzienia magistrali mogą mieć także postać... magistral. Rodzaj obiektu, który "pączkuje" z rysowanej magistrali, zależy od opcji wybranej w zleceniu: Place\Entry\Wire (odgałęzienie w postaci przewodu) lub Place\Entry\Bus (odgałęzienie w postaci magistrali).

Aby nie wystawiać wyobraźni Czytelnika na próbę, omówimy teraz przykładowy schemat, zamieszczony na Rys.2. Rysunek ten zawiera trzy i jedną szóstą układu scalonego - pamięć EPROM 2764, dwie pamięci RAM 6264 (układy zdefiniowane w bibliotece MEMORY.LIB) oraz jeden z sześciu negatorów zawartych w układzie 74LS04 (biblioteka TTL.LIB), nieudolnie udający to dekoder adresowy. Ponadto na rysunku zauważyć można przewody łączące CE i CS układów pamięci z negatorem, a także magistralę danych. Świadomie przedstawiamy Czytelnikom dzieło, o którym w najlepszym razie można powiedzieć, iż jest na wpół skończone. W tym szaleństwie jest jednak metoda. Na niedbale sporządzonym schemacie umieściliśmy starannie narysowane magistrale. Spełniają one wszystkie podane wyżej wymagania, a wiec m.in. :

  • są prawidłowo oznaczone etykietami;
  • każdy z przewodów-odgałęzień zawiera etykietę powiązaną w odpowiedni sposób z nazwą magistrali;
  • odgałęzienia magistrali są dołączone do niej za pomocą ukośnych kresek (zlecenie Place\Entry\Wire).

Na schematach zawierających magistrale muszą również występować etykiety. Przysparzają one niekiedy kłopotów, warto więc zapoznać się z nimi nieco dokładniej.

O etykietach

Użytkownicy programu DRAFT, którzy nie mieli okazji zapoznać się z jego dokumentacją, mogą uważać, że stosowanie etykiet jest zagadnieniem z pogranicza czarnej magii. Po pierwsze - rozróżnia się aż trzy rodzaje etykiet (internal, bus member i comment), po drugie - program wydaje się "nie widzieć" niektórych etykiet umieszczonych na schemacie.

Uchylmy rąbka tajemnicy. Jako "comment" należy deklarować wszystkie napisy, które nie wiążą się bezpośrednio z łączeniem podzespołów, jako "bus member" - etykiety przewodów stanowiących odgałęzienia magistrali, jako "internal" - etykiety magistrali i końców przewodów, które mają zostać połączone (np. +5V na Rys.2). Niezwykle istotne jest położenie etykiety w odniesieniu do określonego przez nią obiektu. Należy przestrzegać prostej, lecz niełatwej do odgadnięcia zasady : "lewy dolny róg pierwszego znaku etykiety musi stykać się z tym obiektem". Zauważmy, że wszystkie etykiety występujące na Rys.2 są umieszczone zgodnie z przedstawioną regułą. Czytelnicy, którzy dysponują programem, mogą sprawdzić, że przesunięcie etykiety +5V choć o jedną pozycję w lewo, lub umieszczenie jej pod przewodem, spowoduje wystąpienie błędów podczas sprawdzania poprawności schematu.

Pora na poprawki

Pomyłki są rzeczą ludzką i w związku z tym jednym z głównych zajęć przy pracy z OrCAD-em będzie poprawianie tego, co narysowaliśmy wcześniej. Poprawki mogą oczywiście dotyczyć dowolnych części składowych schematu - elementów, połączeń, opisów itd. Menu programu DRAFT zawiera m.in. zlecenia Block, Delete oraz Edit, na nie właśnie kierować będziemy myszkę podczas wprowadzania poprawek.

Zlecenie Block służy do przemieszczania fragmentów schematu zaznaczanych ramką podczas operacji Block\ ... \Begin\End. W zależności od wybranej opcji (Block\Move lub Block\Drag), połączenia przesuwanego bloku z otoczeniem są przerywane lub nie. Początkujących użytkowników czekają tu niespodzianki. Po pierwsze - blok obejmuje nie tylko obiekty obwiedzione ramką, lecz także przecinane przez nią, więc szanse na "przyklejenie się" do przesuwanego bloku dodatkowego, niechcianego elementu są spore. Po drugie - przewody, które łączą przemieszczany fragment schematu z otoczeniem (w przypadku wybrania opcji Block\Drag) są "rozciągane", w związku z czym mogą przyjąć postać linii ukośnych. Ten niepożądany efekt można później usunąć posługując się zleceniem Block\FixUp. Ostatnią niespodzianką, której istnienie chcemy zasygnalizować, jest oddziaływanie zlecenia Block\Drag na magistralę. Otóż magistrale przecinające obrys bloku są przerywane (a nie rozciągane). Zapobiec temu można podając wcześniej komendę Set\Drag Busses\Yes, co jednak prowadzi do znacznego spowolnienia przemieszczania Bloku.

Kasowanie części schematu można wykonać wskazując obiekt (Delete\Object) lub blok (Delete\Block). Należy pamiętać, że druga z wymienionych opcji powoduje usunięcie zarówno elementów zawartych wewnątrz bloku, jak i przecinanych przez jego obrys. W rezultacie, jeżeli blok przypadkowo styka się np. z końcem jednego wyprowadzenia układu scalonego, usuwany jest cały ten układ. Operacja kasowania jest na szczęście odwracalna (Delete\Undo). Zauważmy, że niektóre elementy schematu nakładają się (np. dwa skrzyżowane przewody i symbol połączenia). Aby w takiej sytuacji usunąć tylko symbol połączenia, trzeba skorzystać z opcji Delete\Object. Program pyta wówczas, który ze wskazywanych elementów ma zostać skasowany.

O zleceniu Edit pisaliśmy już w części zatytułowanej "O rysowaniu". Dodamy więc tylko, że podczas wprowadzania poprawek wygodnie jest korzystać z opcji Edit\Find, która pozwala odnaleźć poszukiwany napis (np. nazwę podzespołu) w gąszczu przewodów, magistral i układów scalonych.

O planach

W przyszłym miesiący omówimy inne elementy OrCAD-a, m.in. ERRCHECK - program sprawdzający poprawność schematu oraz NETLIST - program generujący listę połączeń. Przedstawimy także strukturę bibliotek, po czym (za dwa miesiące) ... powrócimy do programu DRAFT, aby pokazać Czytelnikom kilka "chwytów" pozwalających pracować lżej, łatwiej i przyjemniej.

Marek Matuszczak, "Komputer" Marzec 1988r.