Niewątpliwie najbardziej spektakularnym programem pakietu OrCAD jest DRAFT. Niestety, zaznajomiliśmy z nim Czytelników już w zeszłym miesiącu. Dziś zapraszamy więc na wycieczkę po okolicach DRAFT-a. Aby nie zagubić się w gąszczu szczegółów, proponujemy zwiedzanie w stylu amerykańskim - rzut oka przez okno pędzącego autokaru. Celem, majaczącym gdzieś w oddali, jest płytka drukowana, zaprojektowana na podstawie schematu narysowanego za pomocą programu DRAFT oraz dokumentacja tego schematu.
Programy usługowe
Pierwszy obiekt, na który natkniemy się po drodze, to CLEANUP - program usuwający ze schematu nakładające się przewodzy i magistrale oraz ostrzegający o istnieniu innych nakładających się obiektów, np. etykiet. Wykonanie tego programu bezpośrednio po zakończeniu rysowania schematu pozwala zredukować liczbę błędów i ostrzeżeń podawanych przez inne programy usługowe.
Następna atrakcja - program ANNOTATE - warta jest uwagi wszystkich leniwych użytkowników OrCAD-a. Program ten automatycznie numeruje wszystkie podzespoły występujące na schemacie, zwalniając w ten sposób projektanta od konieczności pamiętania, że np. ostatni z kondensatorów umieszczonych na schemacie został oznaczony jako C63. Korzyści ze stosowania tego programu widać zwłaszcza wtedy, gdy modyfikacje schematu prowadzą do usunięcia z niego niektórych podzespołów. ANNOTATE pozwala wówczas uniknąć "dziur" w numeracji.
Najbardziej emocjonującą przygodą, jaką przeżyć można zwiedzając zaułki OrCAD-a, jest spotkanie z programem ERCHECK. Werifikuje on schemat pod kątem zgodności z zasadami mówiącymi, że nie wypada :
- zwierać wyjść układów,
- pozostawiać nie dołączonych wejść układów,
- zwierać wyjść źródeł zasilania.
Do błędów i ostrzeżeń sygnalizowanych przez ERCHECK należy jednak podchodzić z pewną dozą sceptycyzmu. Po pierwsze - niektóre ostrzeżenia mają prawo pojawić się nawet w poprawnie zredagowanych schematach. Po drugie - niektóre informacje o błędach są fałszywe i wynikają (o czym dalej) z... błędów występujących w bibliotekach standardowych. Po trzecie - jeżeli ERCHECK nie sygnalizuje żadnych błędów, to.. jeszcze nic nie znaczy. Proponujemy informacje podawane przez omawiany program rozpatrywać zawsze w kontekście listy połączeń, o której za chwilę.
Najbardziej niedyskretnym programem usługowym OrCAD-a jest niewątpliwie NETLIST. Jest to źródło informacji o tym kto, z kim i... którym wyprowadzeniem. Inaczej mówiąc, NETLIST tworzy listę połączeń wszystkich podzespołów umieszczonych na schemacie. NETLIST umożliwia tworzenie listy połączeń w siedemnastu różnych formatach, dostosowanych m.in. do programów SPICE, PCAD, RACALREDAC. Dodajmy na marginesie, że pełna lista dostępnych formatów jest wyświetlana na ekranie monitora, gdy w wywołaniu programu NETLIST użyje się jakiejkolwiek niedozwolonej nazwy, np. BLABLABLA.
Lista połączeń jest tworzona głównie po to, aby umożliwić "przeniesienie" narysowanego schematu do programów symulacyjnych lub programów wspomagających projektowanie płytek drukowanych. Jednocześnie pozwala ona zweryfikować ostrzeżenia i błędy zgłaszane przez program ERCHECK. Listę połączeń schematu prezentowanego w poprzedniej części cyklu, zredagowaną w formacie COMPUTERVISION; przedstawia Rys.1.
Leniwy inżynier może liczyć na pomoc OrCAD-a również wtedy, gdy szef-sadysta zażąda od niego sporządzenia wykazu podzespołów występujących na schemacie. W tej sytuacji pomocny jest program PARLIST (Patrz Rys.2).
Na koniec chcemy jeszcze przedstawić dwa programy usługowe, które wprawdzie nie wiążą się bezpośrednio z przekuwaniem schematu w płytkę drukowaną, lecz są istotne dla osób, które skłonne są traktować ORCAD-a jako narzędzie pracy, a nie jak pakiet programów, o którym wypada coś wiedzieć. COMPOSER oraz DECOMP służą do kompilacji i dekompilacji bibliotek. Biblioteki standardowe na dyskietkach instalacyjnych mają postać skompilowaną - równie zwięzłą, co mało czytelną. Dlatego też, aby wzbogacić je o dodatkowe podzespoły lub usunąć wykryte błędy, należy je najpierw zdekompilować. Program DECOMP tworzy zbiory, które łatwo jest modyfikować korzystając ze zwykłego edytora tekstu. Jedynym problemem, z jakim należy się tutaj liczyć, jest znaczna długość bibliotek, np. zdekompilowany zbiór DEVICE.LIB (biblioteka elementów dyskretnych) zajmuje ponad 200 KB - kęs nie do przełknięcia dla niektórych edytorów.
Poprawione, uzupełnione czy wręcz nowo utworzone biblioteki należy skompilować korzystając z programu COMPOSER. W zasadzie można tu eksperymentować do woli, należy jednak wziąć pod uwagę fakt, że istniejąca biblioteka jest kasowana w momencie rozpoczęcia kompilacji jej nowej wersji. Jeżeli podczas kompilacji wystąpią błędy, to nowa biblioteka nie zostanie zapisana na dysk, a więc... odrobina ostrożności nie zaszkodzi.
0001 N00001 U3-22 U4-2 U2-22
0002 GND C1-2 U3-14 U2-14 U4-7
U1-14
0003 RAM1\ U3-20
0004 R/W U3-27 U4-1 U2-27
0005 RAM2\ U2-20
0006 ROM\ U1-20 U1-22
0007 VCC U1-27 U1-1 U2-26 U3-26
C1-01 U3-28 U2-28 U4-14
U1-28
0008 D0 U1-11 U2-11 U3-11
0009 D1 U1-12 U2-12 U3-12
0010 D2 U1-13 U2-13 U3-13
0011 D3 U1-15 U2-15 U3-15
0012 D4 U1-16 U2-16 U3-16
0013 D5 U1-17 U2-17 U3-17
0014 D6 U1-18 U2-18 U3-18
0015 D7 U1-19 U2-19 U3-19
0016 A0 U1-10 U2-10 U3-10
0017 A1 U1-9 U2-9 U3-9
0018 A2 U1-8 U2-8 U3-8
0019 A3 U1-7 U2-7 U3-7
0020 A4 U1-6 U2-6 U3-6
0021 A5 U1-5 U2-5 U3-5
0022 A6 U1-4 U2-4 U3-4
0023 A7 U1-3 U2-3 U3-3
0024 A8 U1-25 U2-25 U3-25
0025 A9 U1-24 U2-24 U3-24
0026 A10 U1-21 U2-21 U3-21
0027 A11 U1-23 U2-23 U3-23
0028 A12 U1-2 U2-2 U3-2
Rys.1 Przykładowa lista połączeń.
{De-Compiled Library}
PREFIX
END
'88486'
REFERENCE 'Super scalak'
{X Size =} 16 {Y Size =} 20 {Parts per Package =} 1
R1 31 SHORT I/O 'SHORT'
R3 32 PAS 'PAS'
R5 33 DOT HIZ 'DOT'
R7 36 CLK IN 'CLK'
R9 38 SHORT OUT 'SHORT'
R11 40 OC ''
R12 41 I/O 'R12'
R14 255 CLK I/O '255'
R16 256 CLK I/O '256'
R18 258 CLK OUT '258'
L1 27 OUT 'L1'
L3 19 OC 'L3'
L4 20 OUT 'L4'
L6 21 OUT 'N\e\g\a\c\j\a'
L7 28 OUT 'O\P\I\S\U\'
L10 10 OC 'OC'
L12 14 SHORT HIZ 'HIZ'
L14 14 DOT OUT 'OUT'
L16 16 CLK IN 'IN'
L20 20 OUT 'L20'
B5 5 DOT IN 'DOLNY DRUT'
B10 10 OUT 'B\1\0\'
T6 6 IN 'TOP6'
T9 9 CLK OUT 'T9'
L0 1 DOT PWR 'Vcc'
R0 7 PWR 'Vss'
Rys.3 Definicja "Super scalaka".
--- * --- * ---
Revised: January 7, 1988
Revision 1
Bill Of Materials January 22, 1988 21:06:33 Page
Item Quantity Reference Part
------------------------------------------------
1 1 U1 2764
2 2 U1,U3 6264
3 1 U4 74LS04
4 1 C1 100 uF
Rys.2 Przykładowy wykaz podzespołów.
Dla tych, co chcą, a nie mogą
Z myślą o Czytelnikach, którzy chcieliby praktycznie zaznajomić się z OrCAD-em, a nie mają możliwości skorzystania z oryginalnej dokumentacji, zamieszczamy skrótowe informacje o składni zleceń pozwalających wywołać omówione wyżej programy usługowe. Pragniemy zaznaczyć, że ograniczamy się tutaj do następującego przypadku :
- schemat narysowany na jednym arkuszu,
- OrCAD zainstalowany na dysku stałym.
ANNOTATE schemfile/M - automatyczna numeracja podzespołów schematu zapisanego w zbiorze "schemfile".
CLEANUP schemfile - usunięcie ze schematu "schemfile" nakładających się obiektów.
COMPOSER filename libname - kompilacja biblioteki.
DECOMP libname filename - dekompilacja biblioteki.
ERRCHECK schemfile - sprawdzenie poprawności schematu "schemfile" (informacje o błędach wyświetlane na ekranie).
ERCHECK schemfile errfile - sprawdzenie poprawności schematu "schemfile" (informacje o błędach zapisywane w zbiorze "errfile").
NETLIST schemfile format/S - utworzenie listy połączeń w formacie "format" dla schematu "schemfile" (lista wyświetlana na ekranie).
NETLIST schemfile netfile format/S - utworzenie listy połączeń w formacie "format" dla schematu "schemfile" (lista zapisywana w "netfile").
PARTLIST schemfile - utworzenie wykazu podzespołów schematu "schemfile" (wykaz wyświetlany na ekranie).
PARTLIST schemfile partfile - utworzenie wykazu podzespołów schematu "schemfile" (wykaz zapisywany w "partfile").
Biblioteki
O wypożyczaniu elementów z biblioteki pisaliśmy poprzednim razem. Teraz zajmiemy się zaopatrzeniem biblioteki w nowe pozycję. Postanowiliśmy przedstawić zasady tworzenia bibliotek na podstawie przykładów, które proponujemy potraktować jako rebusy do samodzielnego rozwiązania.
Kilku słów ostrzeżenia wymagają biblioteki standardowe. W bibliotece TTL.LIB zauważyliśmy błędne określenie rodzaju wyjść w układach 74LS125 i 74LS126. Podano tam typ wyjścia OUT, podczas gdy powinno być HIZ (trój-stanowe). Podobnych drobnych błędów jest więcej. One to właśnie powodują podawanie przez program ERCHECK fałszywych ostrzeżeń. Przyczyną kłopotów mogą być także wyprowadzenia masy, oznaczane dla niektórych układów scalonych jako GND, dla innych - VSS oraz wyprowadzenia "plusa" zasilania (VCC lub VDD). W razie wątpliwości dobrze jest sprawdzić na liście połączeń, czy zasilanie zostało prawidłowo doprowadzone do wszystkich podzespołów.
{De-Compiled Library}
PREFIX
'74LS' = 'LS' { PREFIX - stały przedrostek }
'74S' = 'S' { dla grópy elementów }
'74ALS' = 'ALS'
'74AS' = 'AS'
'74HCT' = 'HCT'
'74HC' = 'HC'
'74'
END
'74LS00'
'74S00'
'74ALS00' { Spis elementów, które przedstawiane }
'74AS00' { będą tym samym obrazem graficznym, }
'74HCT00' { z takimi samymi symbolami }
'74HC00' { i rodzajami wyprowadzeń. }
'7400'
'74LS24'
'7426'
'74S37'
'7437'
'74LS132'
'74HCT132'
'74HC132'
'74ALS1000'
'74AS1000'
{X Size =} 6 {Y Size =} 4 {Parts per Package =} 4
L1 1 4 9 12 IN 'I0'
L3 2 5 10 13 IN 'I1'
R2 3 6 8 11 DOT OUT 'O'
T0 14 14 14 14 PWR 'VCC'
B0 7 7 7 7 PWR 'GND'
{ 0} ###############################################...............
Mapa bitowa bramki NAND 7400
{ 40} ###############################################...............
CONVERT
L1 1 4 9 12 IN 'I0'
L3 2 5 10 13 IN 'I1'
R2 3 6 8 11 OUT 'O'
T0 14 14 14 14 PWR 'VCC'
B0 7 7 7 7 PWR 'GND'
{ 0} ###########################################.....................
Alternatywna mapa bitowa
{ 40} ###########################################.....................
'74LS09'
'74S09' { Jak w przykładzie powyżej, lecz zamianie }
'74ALS09' { ulegają symbole oraz rodzaje }
'74HC09' { wyprowadzeń elementu. }
'74HC09'
'7409'
{X Size =} 6 {Y Size =} 4 {Parts per Package =} 4
L1 1 4 9 12 IN 'I0'
L3 2 5 10 13 IN 'I1'
R2 3 6 8 11 OC 'O'
T0 14 14 14 14 PWR 'VCC'
B0 7 7 7 7 PWR 'GND'
BITMAP '74LS00'
CONVERT
L1 01 04 09 12 IN 'I0'
L3 02 05 10 13 IN 'I1'
R2 03 06 08 11 DOT OC 'O'
T0 14 14 14 14 PWR 'VCC'
B0 7 7 7 7 PWR 'GND'
CONVERT '74LS00'
Rys.5 Fragmenty definicji bramki 7400 i 7409.
--- * --- * ---
'ELIT'
REFERENCE 'C'
{X Size =} 2 {Y Size =} 2 {Parts per Package =}
T1 SHORT PAS '1'
B1 SHORT PAS '2'
{ 0} ..........#..........
{ 1} ..........#....#.....
{ 2} ..........#....#.....
{ 3} ..........#..#####...
{ 4} ..........#....#.....
{ 5) ..........#....#.....
{ 6} ..........#..........
{ 7} ...###############...
{ 8} ...#.............#...
{ 9} ...###############...
{ 10} .....................
{ 11} ...###############...
{ 12} ...###############...
{ 13} ...###############...
{ 14} ..........#..........
{ 15} ..........#..........
{ 16} ..........#..........
{ 17} ..........#..........
{ 18} ..........#..........
{ 19} ..........#..........
{ 20} ..........#..........
CONVERT
T1 SHORT PAS '1'
B1 SHORT PAS '2'
{ 0} ..........#..........
{ 1} ..........#..........
{ 2} ..........#......#...
{ 3} ..........#......#...
{ 4} ..........#....#####.
{ 5) ..........#......#...
{ 6} ..........#......#...
{ 7} ..........#..........
{ 8} ..#.......#.......#..
{ 9} ..#..###########..#..
{ 10} ..#...............#..
{ 11} ..#################..
{ 12} ..........#..........
{ 13} ..........#..........
{ 14} ..........#..........
{ 15} ..........#..........
{ 16} ..........#..........
{ 17} ..........#..........
{ 18} ..........#..........
{ 19} ..........#..........
{ 20} ..........#..........
Rys.4 Definicja kondensatora elektrolitycznego.
{De-Compiled Library}
PREFIX
END
'MA'
{X Size =} 1 {Y Size =} 1 {Parts per Package =} 0
T1 PWR ''
{ 0} ...........
{ 1} ...........
{ 2} ...........
{ 3} ...........
{ 4} ..#####....
{ 5} .......#...
{ 6} ..######...
{ 7} .#.....#...
{ 8} ..######...
{ 9} ......#....
{ 10} .......#...
'MC'
{X Size =} 1 {Y Size =} 1 {Partsper Package =} 0
T1 PWR ''
{ 0} ...........
{ 1} ...........
{ 2} ......#....
{ 3} .....#.....
{ 4} ..######...
{ 5} .#......#..
{ 6} .#.........
{ 7} .#......#..
{ 8} ..######...
{ 9} ...........
{ 10} ...........
Rys.6 Biblioteka polskich liter.
Przejdźmy teraz do omówienia sposobu definiowania elementów bibliotecznych. Na początek proponujemy zapoznanie się z Rys.3, przedstawiającym zaprojektowany przez nas "super scalak", któremu nadaliśmy oznaczenie 88486. Po prawej stronie definicji tekstowej zamieściliśmy symbol graficzny "super scalak-a". Staraliśmy się maksymalnie zróżnicować rodzaje wyprowadzeń tego układu (np. IN,OUT), ich usytuowanie, nazwy i numeracje, a także sposób rysowania wyprowadzeń (np.SHORT,DOT). Jednostką używaną przy określaniu gabarytów obiektu jest 10 punktów (pikseli) obrazu. Ta sama dotyczy lokalizacji wyprowadzeń na obrysie obiektu, a litera (L, R, T lub B) oznacza odpowiedni blok obrysu. Dla obiektu przyjmowany jest obrys prostokątny, chyba że (jak w następnym przykładzie) definicja zawiera tzw. mapę bitową, która pozwala określić kształt definiowanego symbolu z rozdzielczością jednego piksela.
Jak zapewne uważny Czytelnik zauważył, w przypadku umieszczania na schemacie niektórych podzespołów w dyrektywie PLACE pojawia się opcja CONVERT. Jej istnienie oznacza, że w definicji podzespołu występują dwie mapy bitowe. Przykład tak zdefiniowanego elementu przedstawia Rys. 4. Jest to kondensator elektrolityczny, który przedstawiliśmy w formie zgodnej i niezgodnej z Polską Normą. Liczne przykłady możliwości zastosowania alternatywnej mapy bitowej znajdujemy w bibliotece TTL.LIB, np. bramkę NAND można przedstawić jako bramkę OR z zanegowanymi wejściami.
Twórcy pakietu OrCAD zadbali o wygodę użytkownika tworzącego bibliotekę podzespołów. Jeżeli różne podzespoły biblioteczne mają te same symbole graficzne, to wystarczy zdefiniować dla nich jedną wspólną mapę bitową. Widać to wyraźnie na Rys. 5, który przedstawia fragmenty definicji bramki 7400, pochodzące z biblioteki TTL.LIB. Fragmenty te uzupełniliśmy naszym komentarzem wyjaśniającym rolę poszczególnych fragmentów definicji, natomiast wszystkie komentarze podane w języku angielskim zostały umieszczone w tekście automatycznie, podczas dekompilacji biblioteki.
Końcowy fragment rysunku przedstawia definicję bramki 7409 opartą na mapie bitowej bramki 7400, lecz ze zmienionymi rodzajami wyprowadzeń. Podobnie, zmieniając numerację wyprowadzeń, można uzyskać np. definicję bramki 7401.
Przy okazji omawiania bibliotek chcemy przedstawić jedną z możliwości zastosowania polskich liter w opisach schematów. Nietrudno się w tym momencie domyślić, że chodzi o bibliotekę podzespołów będących... polskimi literami. Rys. 6, przedstawia początkowy fragment takiej biblioteki zbudowanej przez nas, a wykorzystanej po raz pierwszy podczas rysowania schematów do artykułu "Atari ST i monitory" ("Komputer" 12/87).
Marek Matuszczak, Mariusz Dec, "Komputer " Kwiecień 1988r.