Każdy układ scalony ma swój symbol wskazujący model, który opisuje jego funkcję logiczną. Na schemacie możesz umieścić nieograniczoną liczbę układów scalonych o tym samym symbolu. Programowanie układu o danym symbolu ma wpływ na wszystkie.
Edycja modelu polega na określeniu liczby wejść, wyjść, opisu ukazującego się w prawym dolnym rogu okna (gdy układ zostanie podświetlony) i tablicy prawdy.
W polach wejść i wejść wpisywane są litery (także dwuznaki alfanumeryczne) odpowiadające wyprowadzeniom układu rozdzielane przecinkiem (bez odstępu). Przy pomocy ukośnika można pokazać negację, np. wpisanie /Q skutkuje Q, zatem wpisanie A,B,/C,/D w pole wejść doda wejścia A, B, C i D do układu, z czego C i D będą odwracały stan logiczny.
W polu tablicy prawdy wpisywany jest kod programu w postaci wejście=wyjście. Układ wybiera z tablicy pierwszą kombinację stanów wejściowych i według niej ustawia swoje wyjścia. Kombinację tworzą wartości bitowe (0, 1), zbocza (+, -), stan dowolny (?) lub litery (A, B, itd.).
Przykładowe programy:
Wejścia: A,B,C
Wyjścia: X
Tablica prawdy:
111=0 ???=1
Stan na wyjściu jest niski wtedy, gdy stan na trzech wejściach jest wysoki. W przeciwnym razie jest wysoki.
Wejścia: A,B,C
Wyjścia: S,C
Tablica prawdy:
111=11 110=10 011=10 101=10 100=01 010=01 001=01 000=00
Wejścia: S,R
Wyjścia: Q,/Q
Tablica prawdy:
?? 00=10 10 ??=10 01 ??=01 ?? AB=ABKolejność znaków kombinacji (lewej strony równania) odpowiada S, R, Q oraz Q. Prawa strona równania wskazuje wynik, stan na wyjściach Q oraz Q.
Pierwsza linijka kodu ustawia wyjście Q, gdy na żadnym z wyjść nie pojawia się sygnał (to istotne w chwili odświeżania symulacji). Druga linijka tak samo ustawia wyjście Q, gdy na wejście S podano stan wysoki. Kolejna definicja zeruje wyjście Q, gdy na wejście R podano stan wysoki. Ostatnia linijka podtrzymuje stan na wyjściu układu bez względu na stan na jego wejściach. (Dwie pierwsze litery odpowiadają zaciskom wejściowym, a kolejne dwie — wyjściowym.) Odstępy nie wpływają na działanie układu, natomiast ułatwiają czytanie kodu.
Wejścia: D,Clk
Wyjścia: Q,/Q
Tablica prawdy:
?? 00=10 0+ ??=01 1+ ??=10 ?? AB=ABPierwsza linijka kodu ustawia wyjście Q, gdy na żadnym z wyjść nie pojawia się sygnał (to istotne w chwili odświeżania symulacji). Dwie następne definicje ustawiają stan na wyjściu Q taki, jak na wejściu D wtedy, gdy na wejściu zegarowym następuje zbocze narastające. Ostatnia linijka podtrzymuje stan na wyjściu układu bez względu na stan na jego wejściach.
Inputs: J,K,Clk
Outputs: Q,/Q
Definition:
??? 00=10 00- AB=AB 10- ??=10 01- ??=01 11- AB=BA ??? AB=ABPierwsza linijka kodu ustawia wyjście Q, gdy na żadnym z wyjść nie pojawia się sygnał (to istotne w chwili odświeżania symulacji). Cztery następne definicje realizują funkcję przerzutnika dla zbocza opadającego na wejściu zegarowym. Ostatnia linijka podtrzymuje stan na wyjściu układu w przeciwnym razie.
Inputs: A2,A1,A0,B2,B1,B0
Outputs: Eq,A>,A<
Definition:
ABC ABC=100 1?? 0??=010 A1? A0?=010 AB1 AB0=010 ??? ???=001Pierwsza linijka kodu sprawdza, czy wartości na wejściach są równe. Trzy następne definicje sprawdzają, czy wartość na wejściu A0–2 jest większa od B0–2. W przeciwnym razie wartość B0–2 musi być większa.