CPLD po co jest sygnał CLK?

Pytanie jak w tamacie po co w CPLD jest wejście zegarowe? Czy to wejście można traktować jak normalne wejście? Czy też jest jakieś bardziej specyficzne (podejrzewam że bardziej specyficzne).

Drugie pytanie wiążace się chyba z poprzednim. Czy jeśli sobie zrobie logikę CPLD i będą tam różne bramki łączone kaskadowo np. w jednym miejscu od pinu wejściowego do wyjściowego będą 4 kaskady (sygnał będzie przechodził przez 4 bramki). A na innym pinie sygnał będzie przechodził tylko przez np. 2 kaskady (czyli teoretycznie powinno to dać dwa razy mniejsze opóźnienie pomiędzy podaniem sygnału, a uzyskaniem wyniku na wyjściu). A przy przejściu przez 4 bramki to może już dać 40ns. To czy da się zadbać o to jakoś aby sygnały na wyjśicu pojawiały się w jednym i tym samy czasie? Wiadomo że z jakimś tam opóźnieniem ale chodzi mi o to aby to opóźnienie było stałe dla wszystkich pinów. Podejrzewam że sie da i służy do tego właśnie ten sygnał CLK. Ale czy to się robi automatycznie? Czy też trzeba odpowiednio zaprojektować logikę?

Reply to
Kurciok
Loading thread data ...

tak, jest doprowadzone do kazdej komorki CPLD CPLD z zalozenia jest synchroniczne proba realizaji ukladow asynchronicznych czesto konczy sie klopotami.

trzeba zaprojektowac jako uklad synchroniczny nie dosc ze bedzie dzialal duzo szybciej to i lepiej, bo bedziesz w stanie wprowadzic buforowanie, i co prawda opoznienia beda wieksze, ale max F ukladu, a co za tym idzie szybkosc przetwarzania danych, bedzie sporo wieksza

Reply to
Greg(G.Kasprowicz

Czy taki układ synchroniczny ma działać w taki sposób że każda operacja na CPLD ma się wykonywać np. przez 3 takty zegara?

Czyli coś takiego że np. pierwszy takt powoduje wpisanie danych do przerzutnika. Drugi takt to odczekanie aż stany na bramkach odpowiednio się ustawią, a trzeci to podanie danych na przerzutnik wyjściowy? Czy też może w CPLD da sie to jakoś łatwiej zrobić?

Reply to
Kurciok

Z reguły w makroceli masz przerzutnik i w ten sposób sygnał z układu kombinacyjnego (zespołu bramek) wychodzi na zewnątrz tylko na jakimś zboczu sygnału zegarowego... tak w uproszczeniu :)... . Swoją drogą polecam poczytać cokolwiek z teorii techniki cyfrowej, czym się różni układ kombinacyjny od sekwencyjnego itp... . Bo widzę, że z wiedzą u Ciebie kurcho... zaś z drugiej strony zadajesz pytania ogólne, jakby bardziej teoretyczne, a nie w stylu "jak na układzie xxx zrobić urządzonko, które będzie działać tak tak i tak"... i nie ukrywam, że dosyć mnie to dziwi ;p;p...

Pozdrawiam Konop

Reply to
Konop

No ale ten sygnał zegarowy jest współny dla wszystkich makrocel. Jak masz jedną makrocele połączoną z drugą kaskadowo (w jakiś tam sposób) (bo chyba one mogą się tak łączyć i nie masz za dużego wpływu na to jak się połączą) i oba przerzutniki makrocel wyzwalane są w tym samym czasie (tym samym zegarem). To co to daje? Jak nie wiesz jak połączyły się makrocele to chyba to nic nie daje. Pozatym jak rysujesz sobie schemat wewnętrzny CPLD to jak robisz przerzutnik to on ma swoje wejście CLK do którego możesz podpiąć co ci się tylko podoba (np. wyjście z jednej z bramek). Także ten przerzutnik będzie miał zegar więc po co mu drugi ten z makroceli w której się znajduje?

Nie wiem jak działa CPLD bo nigdy nie programowałem takich układów.

Przeglądałem dokumentacje i analizowałem parę schematów zrobionych na CPLD i nie rozumie po co to wejście CLK jest i co ono daje. Jak na schemacie CPLD do przerzutników i tak doprowadza się sygnał np. pochodzący z jednej z bramek lub z jakiegoś pinu. Jak zabiorę się za programowanie tych układow to pewnie sam się zorientuje po co ono jest ale że mnie to teraz zaciekawiło to się pytam.

Reply to
Kurciok

zajrzyj do jakiegokolwiek podrecznika o ukladach synchrnicznych laczenie zegara nastepnego przerzutnika z wyjsciem poprzedniego albo co gorsza ukladu kombinacyjnego po prostu nie zadziala ze wzgledu na szpilki nawet symulator (w Alterze) pokaze ze to kiepski pomysl

jak kazdy inny uklad SYNCHRONICZNY zapomnij na zawsze przy CPLD czy FPGA o ukladach asynchronicznych, bo wpedzisz sie w klopoty

jeszcze raz - poczytaj o ukladach synchronicznych ,gzdie wszystkei CLK wszystkich przerzutnikow laczy sie razem

Reply to
Greg(G.Kasprowicz

A to dziwne bo w tutorialach do CPLD atmela aż pełno takich połączeń (także zadziałać chyba zadziała). Ale rzeczywiście z tego co pamiętam to chyba tak nie powinno się robić na większą skalę.

Już sobie chyba przypominam o co chodzi.

Reply to
Kurciok

Kurciok napisał(a):

(...)

Ja ostatnio przez to przechodziłem: w układzie fizycznym na wyjściach pojawiały się szpilki, w symulatorze było wszystko ślicznie. Pomogło dodanie sygnału zegarowego.

Reply to
Maksymilian Dutka

robiles symulacje czasową czy funkcjonalna?

Reply to
Greg(G.Kasprowicz

Greg(G.Kasprowicz) napisał(a):

Już dokładnie nie pamiętam ale chyba funkcjonalną. Czasowa z jakiegoś powodu się "wywalała".

Acha i zajętość makrocel zmniejszyła się o jakieś 40% po dodaniu sygnału zegarowego.

Reply to
Maksymilian Dutka

no to nie dziw sie ze wszystk obylo ladnie :)

tez nic dziwnego, CPLD sa optymalizowane w koncu dla ukladow synchroncznych

Reply to
Greg(G.Kasprowicz

No ok wszystko pięknie tylko właśnie się zastanawiam jak zrobić prosty licznik (np. dwójkę liczącą) w którym wszystkie wejścia przerzutników CLK są zwarte razem i podłączony jest do nich sygnał CLK. Niestety w mojej kisążce "Układy cyfrowe" Wojciech Głocki nie ma takiego przykładu, a jest za to przykład w którym kolejny pin Q przerzutnika jest podłączony do wejścia CLK następnego przerzutnika. Nie za bardzo mam pomysł jak zrealizować taki układ w którym wszystkie wejścia CLK przerzutników są podpięte do jednego sygnały zegarowego. Może jakś podpowiedź? Lub wskazanie literatury. Narazie wydaje mi się że to jest nimożliwe :) ale pewnie się myle.

Reply to
Kurciok

ask google: synchronous counter

Reply to
Greg(G.Kasprowicz

Kurciok napisał(a):

(...)

Za głęboko wchodzisz w strukturę, to ma za Ciebie załatwić oprogramowanie. Wystarczy dać mu do zrozumienia iż ma się to dziać synchronicznie: niema być możliwości zmian wejść w sposób asynchroniczny.

Reply to
Maksymilian Dutka

Ejze. To sie nazywa licznik synchroniczny i na pewno jest w porzadnej ksiazce omowione. A jak nie ma to ja wyrzuc :-)

a z tym zegarem to nie tylko o szpilki chodzi, ale jak juz zrozumiesz jak dziala taki licznik, to wyobraz sobie ze od wspolnego wejscia do poszczegolnych przerzutnikow czas propagacji jest rozny i moze nawet dluzszy niz propagacja stanu przerzutnika. Stad wydzielone sygnaly CLK wraz z siecia rozprowadzajaca w kosci.

Nawiasem mowiac - taki licznik jak twoj [asynchroniczny] konfigurowany na dzielenie przez 10000 [jak sie taki stan pojawia to reset] w technologii CMOS 40xx, na przebiegu 1MHz, zliczal ponoc w praktyce do 10000+kilka, w zaleznosci od napiecia. Po prostu zanim sie wlasciwy stan na wyjsciach dalszych przerzutnikow pojawil i przez bramke zresetowal, to mijalo kilka us. A w sumie to propagacja jest raptem o 4 przerzutniki, bo dalsze to juz maja wlasciwy stan wczesniej.

J.

Reply to
J.F.

W tej :) której tytuł podałem jest jedynie podany numer scalaka licznika synchronicznego (po prostu narysowany scalak bez schematu wewnętrznego). W książce jest jedynie schemat wewnętrzny licznika asynchronicznego zbudowany jest on z przerzutników synchronicznych (i jest w rozdziale o przerzutnikach synchronicznych) jako przykład użycia przerzutników synchronicznych i to mnie trochę zmyliło :). Bo na początku myślałem że to jest licznik synchroniczny. Ale oczywiście nie jest. I tutaj pytanie możecie polecić jakaś ksiażkę w której są podane przykłady najważniejszych układów (takich jak liczniki zliczające do określonej wartości) tyle że synchronicznych?

Reply to
Kurciok

Reply to
Greg(G.Kasprowicz

Wiem wiem już znalazłem. Ale chciałbym mieć jeszcze jakąś książkę w której mam wszystkie najważniejsze układy ładnie i porządnie zrobione.

Reply to
Kurciok

Jeszcze jedno pytanie. Jak zrobić multiplexer? Chodzi mi o to jak to ma ogólnie wyglądać. Chciałbym aby do CPLD był podłączony uC i przesyłał mu dane 8 bitów (w dwóch porcjach) a następnie aby dane te pojawiły się na 16 wyjściach CPLD. Taka operacja musi już chyba zająć conajmniej 2 takty zegara?

Reply to
Kurciok

akurat multiplekser to mozesz zrobic asynchroniczny:)

Reply to
Greg(G.Kasprowicz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.