Skocz do zawartości

Rozwój działu PLD


zaquadnik

Pomocna odpowiedź

Jako, że w dziale PLD jest zastój postanowiłem zrobić mały kurs VHDL. Język ten jest najbardziej popularny w Europie, stąd taki wybór. W tym języku można tworzyć sprzęt nie tylko w oparciu o układy FPGA, które są dość złożone i drogie, ale także tanie układy CPLD. Wprowadziłem nieco was w tajniki tych układów za pomocą wcześniejszego artykułu, zatem nie będę tego powtarzał. Kurs chciałbym zacząć od podstaw elektroniki cyfrowej, umieszczę tylko to, co uważam za niezbędne, reszty zapewne nauczycie się na studiach. Późnym wieczorem postaram się zamieścić pierwszy wykład "Algebra Boole'a", gdyż leży ona u podstaw całej elektroniki cyfrowej. Następnie co nieco o funktorach logicznych i przerzutnikach. W trzecim wykładzie zrobię wprowadzenie do VHDLa, ale nie tak, jak robi się to na uczelniach, ale od razu w praktyce. To tyle w ramach zapowiedzi. Na zachętę zamieszczam kod VHDL interfejsu UART. Nie martwcie się, jeśli będzie dla was zbyt skomplikowany, wszystko po kolei 😉

UART.RAR

Link do komentarza
Share on other sites

Nie chcę zanudzać was za bardzo teorią i matematyką, więc przekażę tylko niezbędne podstawy. Czym więc jest ta tajemnicza algebra Boole'a ? Tak, jak algebra klasyczna, jest to pewien zbiór reguł do wykonywania obliczeń na wartościach logicznych. Argumenty w algebrze Boole'a mogą przyjmować tylko dwie wartości prawda i fałsz lub prościej, 0 i 1.

Zdefiniowane są 3 podstawowe działania dwuargumentowe i jedno jednoargumentowe. Poniżej zostały one wypisane wraz z tabelą prawdy dla każdego z nich:

a) suma logiczna (lub OR) : a + b

a b a+b

0 0 0

0 1 1

1 0 1

1 1 1

b) iloczyn logiczny (lub AND) : a * b

a b a*b

0 0 0

0 1 0

1 0 0

1 1 1

c) negacja (lub NOT) : ~a lub -a

a -a

0 1

1 0

d) istnieje jeszcze alternatywa wyłączająca (XOR) : a xor b

a b a xor b

0 0 0

0 1 1

1 0 1

1 1 0

Powyższe działania podlegają pewnym podstawowym regułom:

a + a = a

a * a = a

a * 1 = a

a + 1 = 1

a * 0 = 0

a + 0 = a

-0 = 1

-1 = 0

a xor 1 = -a

a xor 0 = a

a xor a = 0

I nieco bardziej rozbudowane reguły:

1. Prawa De Morgana:

a) -(a+b) = (-a) * (-b)

b) -(a*b) = (-a) + (-b)

2. Podwójna negacja:

-(-a) = a

3. Łączność:

a) a+(b+c) = (a+b)+c

b) a*(b*c) = (a*b)*c

4. Przemienność:

a) a+b = b+a

b) a*b = b*a

5. Absorpcja:

a) a+(a*b) = a

b) a*(a+b) = a

6. Rozdzielność:

a) a+(b*c) = (a+b)*(a+c)

b) a*(b+c) = (a*b)+(a*c)

7. Pochłanianie:

a) a+(-a) = 1

b) a*(-a) = 0

(użyte zostały symbole działań arytmetycznych, należy jednak pamiętać, że mowa o działaniach logicznych)

To tyle o podstawach. Po co jest algebra Boole'a ? Zademonstruję na przykładzie. Załóżmy, że mamy do zaprojektowania sumator jednobitowy z przeniesieniem. Dlaczego tylko jednobitowy ? Bo sumator n-bitowy da się zbudować z n sumatorów jednobitowych. Takie budowanie z klocków 😉

Sumator jednobitowy ma dwa wejścia a i b oraz dwa wyjścia s i c (suma i przeniesienie). Zaczynamy od rozpisania tabeli prawdy dla sumatora:

a b | s c

0 0 | 0 0

0 1 | 1 0

1 0 | 1 0

1 1 | 0 1

Z tej tabeli możemy łatwo określić z jakich funkcji logicznych wejść a i b zbudowane są wyjścia s i c. Z tabeli prawdy możemy wywnioskować, że c = a * b oraz s = a xor b 🙂

Co dalej ? Widzimy, że sumator ten możemy zbudować z dwóch bramek logicznych, bramki AND i bramki XOR. Ale o tym w następnej części.

Gwoli ścisłości należy dodać, że istnieje coś takiego jak tablice Carnaugh'a. Służą one do minimalizacji funkcji logicznych przy bardziej skomplikowanych układach. Jako, że do projektowania w VHDL nie są potrzebne, nie będę ich omawiał. Możecie sobie poszukać w sieci, jeśli bardzo chcecie. Będą was tym męczyć na studiach 😉

W kolejnej części omówię fizyczne "klocki" z jakich zbudowane są układy cyfrowe.

  • Lubię! 2
Link do komentarza
Share on other sites

Jak obiecałem, tak czynię =] Dzisiejszy wykład poświęcony zostanie podstawowym elementom elektroniki cyfrowej, czyli bramkom logicznym i przerzutnikom. Postaram się omówić temat nieco szerzej niż jest to potrzebne do FPGA, bo a nuż się przyda =]

Zacznijmy od bramek logicznych.

1. Bufor - nie realizuje on żadnej funkcji logicznej, a jedynie powtarza sygnał otrzymany na wejściu. Stosowany właściwie tylko uzyskania odpowiedniej wydajności prądowej fizycznego wyjścia z układu (czyli popularnie zwanej nóżki).

Symbol:

BUF.gif

2. Bramka NOT - jest to po prostu bramka realizująca funkcję negacji.

Symbol:

NOT.gif

3. Bramka AND - jest to bramka realizująca funkcję iloczynu logicznego.

Symbol:

AND.gif

4. Bramka NAND - realizuje funkcję zanegowanego iloczynu logicznego. Taki sam efekt, jeśli chodzi o działanie logiczne układu, osiągnęlibyśmy podłączając na wyjścię bramki AND bramkę NOT.

Symbol:

NAND.gif

5. Bramka OR - realizuje funkcję sumy logicznej.

Symbol:

OR.gif

6. Bramka NOR - realizuje funkcję zanegowanej sumy logicznej.

Symbol:

NOR.gif

7. Bramka XOR - realizuje funkcję alternatywy wyłączającej.

Symbol:

XOR.gif

8. Bramka NXOR - realizuje funkcję zanegowanej alternatywy wyłączającej.

Symbol:

NXOR.gif

Z bramek budujemy układy cyfrowe KOMBINACYJNE, czyli takie, których stan na wyjściu zależy tylko i wyłącznie od stanu na wejściach układu. Innymi słowy, układy kombinacyjne nie posiadają elementów pamiętających.

//dalsza część - wieczorem

Link do komentarza
Share on other sites

Innymi słowy, układy kombinacyjne nie posiadają elementów pamiętających.

A flip-flopy na bramkach? Pewnie masz rację, ale czy flipflop to nie układ pamiętający?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Innymi słowy, układy kombinacyjne nie posiadają elementów pamiętających.

A flip-flopy na bramkach? Pewnie masz rację, ale czy flipflop to nie układ pamiętający?

Pewnie nie nazywa się to już układem kombinacyjnym :]

Link do komentarza
Share on other sites

Jeśli chodzi o flip-flopy, po naszemu przerzutniki, to jest inna bajka. Są one tworzone i projektowane jako układy asynchroniczne, gdzie sygnał zegara jest tylko kolejnym wejściem. Układy asynchroniczne rządzą się swoimi prawami, do czego dojdziemy.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.