Projekt Koder HDB-3. Wykonali: Agnieszka Sikorska, Łukasz Kokosza EiTI Politechnika Warszawska Warszawa Projekt UCYF Koder HDB-3

Podobne dokumenty
Kody transmisyjne. Systemy PCM Sieci ISDN Sieci SDH Systemy dostępowe Transmisja w torach przewodowych i światłowodowych

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH

AHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN

Układy asynchroniczne

Układy asynchroniczne

SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1. Układy kombinacyjne i sekwencyjne - przypomnienie

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

Ćwiczenie 29 Temat: Układy koderów i dekoderów. Cel ćwiczenia

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Badanie właściwości skramblera samosynchronizującego

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

UKŁADY CYFROWE. Układ kombinacyjny

Podstawy Automatyki. Człowiek- najlepsza inwestycja. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Synteza strukturalna automatów Moore'a i Mealy

Detekcja i korekcja błędów w transmisji cyfrowej

DOKUMENTACJA PROJEKTU

Ćw. 7: Układy sekwencyjne

Tranzystor JFET i MOSFET zas. działania

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

Architektura systemów komputerowych Laboratorium 10 Symulator SMS32 Urządzenia wejścia i wyjścia

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Cyfrowe Elementy Automatyki. Bramki logiczne, przerzutniki, liczniki, sterowanie wyświetlaczem

Podstawy Automatyki. Wykład 15 - Projektowanie układów asynchronicznych o programach liniowych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Modulatory PWM CELE ĆWICZEŃ PODSTAWY TEORETYCZNE

dwójkę liczącą Licznikiem Podział liczników:

Automat skończony FSM Finite State Machine

Podstawy Techniki Cyfrowej Teoria automatów

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2012 METODY KODOWANIA SYGNAŁÓW SIECI

Detekcja i korekcja błędów w transmisji cyfrowej

Projektowanie Systemów Wbudowanych

Statyczne badanie przerzutników - ćwiczenie 3

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

interfejs szeregowy wyświetlaczy do systemów PLC

Algorytm. a programowanie -

INSTRUKCJA OBSŁUGI KROSOWNICY WIDEO KV-12/4

Z twierdzenia Nyquista wynika konieczność kodowania bitów za pomocą sygnałów w celu przesłania większej liczby bitów w jednostce czasu.

Podstawowe układy cyfrowe

Systemy Czasu Rzeczywistego FPGA

Opis układów wykorzystanych w aplikacji

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

SML3 październik

Temat 7. Dekodery, enkodery

UKŁADY MIKROPROGRAMOWALNE

Kody splotowe (konwolucyjne)

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

Terminal WSP dla sygnalizatorów wibracyjnych

Technika cyfrowa projekt: Sumator 4 bitowy równoległy

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Automaty stanów

Laboratorium przedmiotu Technika Cyfrowa

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu

Statyczne i dynamiczne badanie przerzutników - ćwiczenie 2

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

zmiana stanu pamięci następuje bezpośrednio (w dowolnej chwili czasu) pod wpływem zmiany stanu wejść,

Immobilizer samochodowy otwierający dostęp poprzez kod czteroznakowy.

Liczniki, rejestry lab. 07 Układy sekwencyjne cz. 1

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Przerzutniki. Układy logiczne sekwencyjne odpowiedź zależy od stanu układu przed pobudzeniem

Errata do książki Multisim. Technika cyfrowa w przykładach.

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

POLITECHNIKA SZCZECIŃSKA WYDZIAŁ ELEKTRYCZNY

Sterownik kompaktowy Theben PHARAO II

CHARAKTERYSTYKI BRAMEK CYFROWYCH TTL

Temat ćwiczenia: Przekaźniki półprzewodnikowe

Cel. Poznanie zasady działania i budowy liczników zliczających ustaloną liczbę impulsów. Poznanie kodów BCD, 8421 i Rys. 9.1.

TRANZYSTORY BIPOLARNE

Podstawy techniki cyfrowej. Układy asynchroniczne Opracował: R.Walkowiak Styczeń 2014

Teoria przetwarzania A/C i C/A.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp:

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

Zapoznanie się z podstawowymi strukturami liczników asynchronicznych szeregowych modulo N, zliczających w przód i w tył oraz zasadą ich działania.

PODSTAWY TELEKOMUNIKACJI Egzamin I (za każde polecenie - 6 punktów)

Tab. 1 Tab. 2 t t+1 Q 2 Q 1 Q 0 Q 2 Q 1 Q 0

Programowanie mikrokontrolerów 2.0

LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY. Rev.1.1

WYKŁAD 8 Przerzutniki. Przerzutniki są inną niż bramki klasą urządzeń elektroniki cyfrowej. Są najprostszymi układami pamięciowymi.

ZAKŁAD SYSTEMÓW ELEKTRONICZNYCH I TELEKOMUNIKACYJNYCH Laboratorium Podstaw Telekomunikacji WPŁYW SZUMÓW NA TRANSMISJĘ CYFROWĄ

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

EUROELEKTRA Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej Rok szkolny 2012/2013 Zadania dla grupy elektronicznej na zawody III stopnia

UKŁAD SCALONY. Cyfrowe układy można podzielić ze względu na różne kryteria, na przykład sposób przetwarzania informacji, technologię wykonania.

Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

1 Badanie aplikacji timera 555

Ćwiczenie MMLogic 002 Układy sekwencyjne cz. 2

Sławomir Kulesza. Projektowanie automatów synchronicznych

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Ćwicz. 4 Elementy wykonawcze EWA/PP

Cyfrowe układy scalone c.d. funkcje

PRZERZUTNIKI: 1. Należą do grupy bloków sekwencyjnych, 2. podstawowe układy pamiętające

Transkrypt:

Projekt Koder HDB-3 Wykonali: EiTI Politechnika Warszawska Warszawa 2005-1

1.Wstęp teoretyczny W wielokrotnych systemach o modulacji impulsowo-kodowej PCM sygnały cyfrowe są przed wysłaniem ich w linię przekształcane na sygnały trójwartościowe (bipolarne o stanach znamiennych B+, 0, B-) o strukturze zapewniającej najlepsze własności transmisyjne przesyłanego sygnału oraz umożliwiającej właściwą współpracę urządzeń nadawczych i odbiorczych (synchronizacja urządzeń i regeneracja sygnałów). Powszechnie stosowane są dwa kody; AMI i HDB3 (High Density Bipolar). W kodzie AMI każde zero sygnału bipolarnego pozostaje nie zamienione, jedynkom zaś tego sygnału zostają przyporządkowane na zmianę impulsy B+ lub B-. W kodzie HDB-3 jedynkom sygnału binarnego przyporządkowane są na zmianę impulsy B+ i B- sygnału bipolarnego, jeżeli między dwoma jedynkami występuje mniej niż cztery zera. W przeciwnym wypadku każda sekwencja czterech kolejnych zer jest zastępowana ciągiem sygnałów bipolarnych o postaci 000V lub B00V, gdzie poszczególne symbole oznaczają: 0-brak impulsu, B-impuls o polaryzacji przeciwnej do polaryzacji poprzedniego impulsu. V-zakłócenie, czyli impuls o tej samej polaryzacji, co poprzedni impuls B, dodany tak, by każdy impuls V miał polaryzacje przeciwną niż poprzedni. Na rys.1 przedstawiono przykładowe kodowanie sygnału binarnego do kodu AMI oraz HDB-3. - 2

2. Pomysł Zgodnie z powyższym opisem koder HDB-3, jest cyfrowym układem synchronicznym, o jednym wejściu binarnym, i dwóch wyjściach B i następujących zależnościach między sygnałami wejściowymi i wyjściowymi: 1. na każdy sygnał 0 w sekwencji zer na wejściu o długości nie większej niż 3 układ odpowiada sygnałem 0, 2. na każdy sygnał 1 układ odpowiada sygnałem B+(B-), jeżeli poprzednim sygnałem wyjściowym (pomijając sygnały 0) był sygnał B-(B+), 3. na każdą sekwencje 0000 na wejściu układ odpowiada: - sekwencją 000B+(000B-) w przypadku, gdy odpowiedzią na impuls poprzedzający bezpośrednio sekwencję 0000 był impuls B+(B-), a sygnał B-(B+) był odpowiedzią na ostatnie zero poprzedniej sekwencji 0000; - sekwencją B+00B+(B-00B-) w przypadku, gdy odpowiedzią na impuls poprzedzający bezpośrednio sekwencję 0000 był impuls B-(B+), a sygnał B-(B+) był odpowiedzią na ostatnie zero poprzedniej sekwencji 0000; Z powyższych reguł działania układu wynika że sensowne jest podzielenie kodera kodu HDB-3 na dwa podukłady: np. B1 i B2 połączone ze sobą w następujący sposób: We B1 Y0 Y1 B2 Z0 Z1-3

Gdzie zadaniem bloku B1 jest opóźnienie sygnału wejściowego o 4 takty zegara oraz zastąpienie w każdej sekwencji4 zer ostatniego zera jedynką. Blok B2 zajmuje się już odpowiednim kodowaniem do HDB-3. Blok B1 ma dwa wyjścia Y0 i Y1. Zależności pomiędzy sygnałami na jego wejściu i wyjściach są następujące: - ciąg sygnałów na wyjściu Y0 powstaje w wyniku opóźnienia o 4 takty zegarowe ciągu sygnałów wejściowych, w którym każda sekwencja 0000 została zastąpiona sekwencją 0001 - na wyjściu Y1 pojawia się 1 tylko w odpowiedzi na ostatnie zero sekwencji 4 zer na wejściu, w pozostałych przypadkach jest 0. Układ B2 produkuje sygnał wyjściowy według sygnałów wyjściowych z B1. 3. Realizacja Koder został przede wszystkim wykonany z elementów opisanych w poprzednim punkcie, dodany został moduł mający na celu spowolnienie zegara, moduły obsługujące wyświetlacz 7segm. Moduły 7segm(7segm) są dwa i zostały one zmodyfikowane do potrzeb projektu. Dokładny opis w dalszej części dokumentacji. Na początku opis ogólnej idei wprowadzania danych i ich reprezentacji. Jak wiem z opisu wcześniej układ ma za zadanie kodowanie sygnału składającego się z zer i jedynek na sygnał trójwartościowy. Zatem na wejście musimy podawać sygnał, odbywa się to za pomocą odpowiedniego przycisku na płytce. Drugi przycisk służy do włączania i resetowania układu. Dane zakodowane pojawiają się na siedmiosegmentowych wyświetlaczach płytki w odpowiedni opisany poniżej sposób reprezentacji. - 4

Podsumowujące do wprowadzania danych używamy przycisku z płytki i efekty obserwujemy na wyświetlaczach. Takie rozwiązanie daję możliwość spokojnego i szczegółowego obserwowania działania układu, ma też na celu ukazanie, że układ działa poprawnie. Dlatego też, aby móc wprowadzać dane i obserwować wyniki musieliśmy spowolnić zegar płytki (podpunkt Dzielnik) do wartości która to umożliwi. Głównym zadaniem było stworzenie kodera HDB-3, u nas jest to układ dwóch automatów(automat1 i automat2), reszta elementów jest stworzona tylko w celu ukazania, że koder działa, czyli obserwacji jego pracy dla różnych danych wejściowych. Poniżej znajduje się rysunek płytki oraz schemat naszego układu: 7SEGM 7SEGM2 PRACA ZEGARA PRZYCISK1 PRZYCISK2-5

Układ kodera HDB-3-6

Teraz zostanie zamieszczony szczegółowy opis poszczególnych elementów. Przycisk1. Lewy przycisk na płytce służy do resetownia pracy układu tzn., jeśli nie jest wciśnięty to układ pracuje. Natomiast, jeśli go wciśniemy następuje zresetowanie układu (automatów). w momencie gdy przycisk jest wciśnięty układ nie pracuję tak długo dopóki nie puścimy przycisku. Przycisk2. Prawy przycisk na płytce służy do wprowadzania danych, tzn. jeśli nie jest wciśnięty to na wejście podawana jest jedynka, analogicznie jest zostanie wciśnięty w odpowiednim momencie zostanie podane na wejście zero. Zatem przytrzymanie odpowiednio długo wciśniętego przycisku spowoduje podanie na wejście układu odpowiedniej ilości zer. W celu poprawnego wprowadzania danych układ sygnalizuje działanie zegara kropką na wyświetlaczu 7segm(rysunek płytki). Układ przyjmuje zero, jeśli przycisk2 był wciśnięty w momencie zapalania kropki na 7segm. Podsumowując, aby wprowadzić cztery zera należy przytrzymać przycisk2 przez 4 okresy działania zegara, czyli 4 mrugnięcia kropki. Dlatego należało spowolnić zegara, aby móc w kontrolowany sposób wprowadzać dane oraz w wygodny sposób je obserwować Dzielnik. (plik dzielnik.tdf) - 7

Jego zadaniem jest spowolnienie zegara płytki odpowiednią ilość razy. Jest to niezbędne przy wybranej metodzie wprowadzania danych (podpunkt Przyciski1 i Przycisk2). Kod: parameters (width=5);--, time=15); subdesign dzielnik (clk :input; clk_out :output; ) variable q[width-1..0] :dff; begin q[].clk=clk; q[]=q[]+1; clk_out=q[width-1]; %if (q[]==time) then q[]=0; else q[]=q[]+1; end if; if q[]==0 then clk_out=vcc; end if;% end; Część kodu jest wyłączona z kompilacji a to ze wzgledu na możliwość korzystania z dwóch wersji dzielnika: -pierwsza włączona w kodzie powyżej powoduje odliczanie do wartości 2^(width-1). Dzielnik w takim układzie spowalnia zegar 2^(width-1) -wersja wyłączona powoduje spowolnienie zegara time razy Obydwie wersje działają i mogą być wykorzystane. Automat1. (plik automat1.tdf) - 8

Zadanie tego automatu jest takie samo jak zadanie podukładu B1 z części teoretycznej. Kod: TITLE "Kodowanie HDB-3 - podukład B1"; SUBDESIGN AUTOMAT1 ( zegar1, wejscie, ena : INPUT; Y[1..0] : OUTPUT; ) VARIABLE q: MACHINE WITH STATES (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15); BEGIN q.clk = zegar1; q.ena = ena; q.reset =!ena; TABLE q, wejscie => q, Y[1], Y[0]; S0, 0 => S2, 0, 0; S0, 1 => S3, 0, 0; S1, 0 => S2, 0, 0; S1, 1 => S3, 0, 0; S2, 0 => S4, 0, 0; S2, 1 => S5, 0, 0; S3, 0 => S6, 0, 0; S3, 1 => S7, 0, 0; S4, 0 => S8, 0, 1; S4, 1 => S9, 0, 1; S5, 0 => S10, 0, 1; S5, 1 => S11, 0, 1; S6, 0 => S12, 0, 1; S6, 1 => S13, 0, 1; S7, 0 => S14, 0, 1; S7, 1 => S15, 0, 1; S8, 0 => S0, 1, 0; S8, 1 => S1, 0, 0; S9, 0 => S2, 0, 0; S9, 1 => S3, 0, 0; - 9

S10, 0 => S4, 0, 0; S10, 1 => S5, 0, 0; S11, 0 => S6, 0, 0; S11, 1 => S7, 0, 0; S12, 0 => S8, 0, 1; S12, 1 => S9, 0, 1; S13, 0 => S10, 0, 1; S13, 1 => S11, 0, 1; S14, 0 => S12, 0, 1; S14, 1 => S13, 0, 1; S15, 0 => S14, 0, 1; S15, 1 => S15, 0, 1; END TABLE; END; Działanie automatu przedstawia też graf stanów zamieszczony poniżej, jednak ze względu na dość skomplikowany wygląd schematu, nie umieściliśmy wartości, przy których to zachodzi. Wartości te można odczytać z kodu powyżej, to samo dotyczy wartości na wyjściu automatu. Graf stanów automatu1: - 10

0 1 0/1 2 3 4 5 6 7 8 9 10 11 12 13 14 15-11

Automat2. (plik automat2.tdf) Zadanie automatu2 jest takie samo jak zadanie podukładu B2 we wstępie teoretycznym, czyli krótko mówiąc automat ten wykorzystując sygnał otrzymany z automatu1 dokonuje ostatecznego kodowania do kodu HDB-3. Kod: TITLE "Kodowanie HDB-3 - podukład B2"; SUBDESIGN AUTOMAT2 ( zegar2, Y[1..0], ena: INPUT; Z[1..0] : OUTPUT; ) VARIABLE q2: MACHINE WITH STATES (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18); BEGIN q2.clk = zegar2; q2.ena= ena; q2.reset =!ena; TABLE q2, Y[1], Y[0] => q2, Z[1], Z[0]; S1, 0, 0 => S10, 0, 0; S1, 0, 1 => S9, 0, 1; S1, 1, 0 => S2, 0, 1; S2, 0, 0 => S3, 0, 0; S3, 0, 0 => S4, 0, 0; S4, 0, 1 => S5, 0, 1; S5, 0, 0 => S16, 0, 0; S5, 0, 1 => S15, 1, 0; S5, 1, 0 => S6, 1, 0; S6, 0, 0 => S7, 0, 0; S7, 0, 0 => S8, 0, 0; S8, 0, 1 => S1, 1, 0; S9, 0, 0 => S13, 0, 0; S9, 0, 1 => S14, 1, 0; S9, 1, 0 => S11, 0, 0; S10, 0, 0 => S10, 0, 0; S10, 0, 1 => S9, 0, 1; - 12

S11, 0, 0 => S3, 0, 0; S12, 0, 0 => S16, 0, 0; S12, 0, 1 => S15, 1, 0; S12, 1, 0 => S6, 1, 0; S13, 0, 0 => S13, 0, 0; S13, 0, 1 => S14, 1, 0; S14, 0, 0 => S10, 0, 0; S14, 0, 1 => S9, 0, 1; S14, 1, 0 => S2, 0, 1; S15, 0, 0 => S18, 0, 0; S15, 0, 1 => S12, 0, 1; S15, 1, 0 => S17, 0, 0; S16, 0, 0 => S16, 0, 0; S16, 0, 1 => S15, 1, 0; S17, 0, 0 => S7, 0, 0; S18, 0, 0 => S18, 0, 0; S18, 0, 1 => S12, 0, 1; END TABLE; END; Działanie tego automatu przedstawia także graf stanów poniżej. - 13

01/B- 1 10/B+ 2 0 0 01/B+ 10/B- 3 4 5 6 0 7 0 8 01/B+ 0 01/B- 0 0 9 1 01/B- 11 15 1 01/B+ 17 10/B+ 01/B+ 01/B+ 13 14 01/B- 01/B- 0 0 0 18 01/B- 01/B+ 10/B- 12 10 0 0 16 0 0-14

7SEGM. (plik 7segm.tdf) Zadaniem tego elementu jest prezentacja wyników kodowania układu na pierwszym wyświetlaczu siedmiosegmentowym w następujący sposób: - jeśli na wyjściu jest B+ to zapalona jest dioda a - jeśli na wyjściu jest 0 to zapalona jest dioda g, - jeśli na wyjściu jest B- to zapalona jest dioda d. Kod: SUBDESIGN 7segm ( i[1..0] : INPUT; a,b,c,d,e,f,g : OUTPUT; ) BEGIN TABLE i[1..0] => a, b, c, d, e, f, g; H"0" => 1, 1, 1, 1, 1, 1, 0; H"1" => 0, 1, 1, 1, 1, 1, 1; H"2" => 1, 1, 1, 0, 1, 1, 1; END TABLE; END; 7SEGM2. (plik 7segm2.tdf) - 15

Zadaniem tego elementu jest prezentacja wyników kodowania układu na drugim wyświetlaczu siedmiosegmentowym w następujący sposób: - jeśli na wyjściu jest B+ to zapalona są diody b,c - jeśli na wyjściu jest 0 to zapalona są diody a,b,c,d,e,f, - jeśli na wyjściu jest B- to zapalone są diody b,c,g. SUBDESIGN 7segm2 ( i[1..0] : INPUT; a,b,c,d,e,f,g : OUTPUT; ) BEGIN TABLE i[1..0] => a, b, c, d, e, f, g; H"0" => 0, 0, 0, 0, 0, 0, 1; H"1" => 1, 0, 0, 1, 1, 1, 1; H"2" => 1, 0, 0, 1, 1, 1, 0; END TABLE; END; HDB3. (plik hdb3.tdf) W ty pliku połączone są ze sobą wszystkie dotychczas wymienione elementy. Układ ten dokonuje odpowiedzialny jest za wprowadzanie danych, kodowanie ich oraz reprezentacje wyników na wyświetlaczach płytki. Na wejściu mamy: wej przycisk2 zegar zegar płytki ena - przycisk1-16

Na wyjściu: a,b,c,d,e,f,g,dot 1 wyświetlacz siedmiosegmentowy a2,b2,c2,d2,e2,f2,g2,dot2 2 wyświetlacz siedmiosegmentowy Kod: include "automat1"; include "automat2"; include "dzielnik"; include "7segm"; include "7segm2"; subdesign hdb3 (wej,zegar,ena :input; a,b,c,d,e,f,g,dot,a2,b2,c2,d2,e2,f2,g2,dot2 :output; ) variable aut1 aut2 dziel wysw wysw2 :automat1; :automat2; :dzielnik with (width=25);--, time=8017500); :7segm; :7segm2; begin - 17

dziel.clk=zegar; (aut2.zegar2, aut1.zegar1)=dziel.clk_out; (aut1,aut2).ena = ena; aut1.wejscie=wej; aut2.y[]=aut1.y[]; wysw.i[1..0]=aut2.z[]; wysw2.i[1..0]=aut2.z[]; dot =!dziel.clk_out; dot2 = VCC; a=wysw.a; b=wysw.b; c=wysw.c; d=wysw.d; e=wysw.e; f=wysw.f; g=wysw.g; a2=wysw2.a; b2=wysw2.b; c2=wysw2.c; d2=wysw2.d; e2=wysw2.e; f2=wysw2.f; g2=wysw2.g; end; 4. Podsumowanie Układ przez nas stworzony w prosty sposób ukazuje kodowanie HDB-3. Układ działa w pełni poprawnie, co potwierdzają testy w Max+plus II, oraz testy przeprowadzone na płytce laboratoryjnej. W skład projektu wchodzą - pliki źródłowe stworzone w MAX+plusII - dokumentacja w postaci.doc (Microsoft Word XP) - dokumentacja w postaci.pdf - strona internetowa opisująca projekt www.monotonia.net/ucyf - 18