Mariopi napisał: Z tego co widać Autorowi zupełnie nie chodzi o to o czym my piszemy (szczególnie po ostatnich objaśnieniach).
Ja rozumię założenia do projektu w sposób następujący:
1. Na wejścia licznika C+ i C- mają być podane impulsy prostokątne (nieważne czy fala ciągła z generatora, czy impulsatora ręcznego).
2. Licznik ma wystartować od cyfry 4 i po pierwszym takcie impulsu zegarowego zacząć zliczać w przód (dodawać) czyli 5, 6 itd.
3. Po osiągnięciu stanu 7 ma automatycznie zacząć odejmować od aktualnego stanu czyli od 7 następny takt zegara to stan 6, 5 itd. - a nie przejść od razu w stan 4.
4. Po dojściu do stanu 4 znowu automatycznie zacząć dodawać i tak w koło wojtek ...
Ja nie jestem przekonany czy Autorowi koniecznie zależy na tym by układ startował od 4 i liczył koniecznie do gory czy tez moze byc to dowolna liczba z przedzialu [4-7] i kierunek zliczania dowolny.
W koncu jezeli ten uklad ma pracowac cyklicznie to jaka to roznica od czego zaczął ?
Natomiast faktycznie na samym poczatku sie nieco pospieszylem bo niezbyt uwaznie przyjzalem sie tej sekwencji o ktora chodzi w zadaniu.
Troche nad tym myslalem i wydaje mi sie ze wymyslilem nie chwalac sie dosyc oszczedne i w miare niezawodne rozwiazanie.
Mariopi napisał:
Faktycznie przypomina to swego rodzaju wahadło elektroniczne i taki układ na LED-ach kiedyś robiłem. Jednak tutaj sprawa jest moim zdaniem bardziej wyrafinowana - bo licznik musi się trzymać ściśle narzuconych kryteriów , czyli w tym przypadku są to cyfry 4 i 7 i tylko pomiędzy nimi oscylować w górę i na dół.
Zastosowanie przerzutnika D jest w tym wypadku koniecznością - gdyż faktycznie będzie on pamiętał kierunek zliczania i sterował (kierował) impulsy zegarowe na odpowiednie wejście licznika.
Ale przecież pozostaje w tym liczniku niewykorzystany przerzutnik od bitu D, po co wiec stosować dodatkowy układ scalony skoro mozna sie bez niego rownie dobrze obyć ??
Mam wrażenie Kolego ze nie bardzo zrozumiales ten moj opis - moze to moja wina ze niezbyt czytelnie wyłuszczyłem rozwiazanie ?
Zauwaz ze stosujac przerzutnik D musialbys i tak na jego wejscie zegarowe podawac szpilki z bitu C licznika. Nie zyskalbys wiec nic ponadto co ja zaproponowalem czyli wykorzystanie przejsciowych stanow 8 (0) oraz 3 do generowania presetu licznika.
Natomiast jezeli wymogiem byloby by te krotkotrwale stany nie mogły sie pojawic i przerzutnik D mial juz zmieniac kierunek zliczania gdy licznik osiagnie stan 7 to wtedy mamy inna pare kaloszy

i uklad znacznie bardziej sie komplikuje.
Ja po prostu zalozylem ze to co jest niedopowiedziane w tym zadaniu mozemy sobie tak dopasowac jak nam wygodniej byle by uklad maksymalnie uproscic.
Ale jezeli nalozymy sobie jakies dodatkowe obostrzenia to oczywiscie te najprostsze rozwiazania odpadna. Tylko czy jest przy tym ukladzie upierac sie przy tym by unikac krotkotrwalych stanow 0 i 3 ??
Moim zdaniem to nie ma sensu ponieważ tylko komplikuje układ w sytuacji gdy jest on taktowany jakąś niższą czestotliwoscią.
Jeżeli natomiast miałby on pracować z częstotliwością bliską jego możliwości to do tego typu zastosowań to i tak już to jest przestarzały układ.
Więc jako sztuka dla sztuki by pognębić studentów i dać im powód do główkowania to oczywiście można też takie zadania wymyślać.
Ale praktycznego sensu to mieć większego nie będzie bo szybkie automaty synchroniczne można dzisiaj tanio wykonywać na tanich układach programowalnych.
Mariopi napisał:
Nietety sam przerzutnik D nie wystarczy, bo musi być jeszcze układ strobujący np. w postaci 2 bramek NAND, który będzie odpowiednio przepuszczał takty zegara odpowiednio na raz wejście C+ raz na wejście C- w zależności od stanu wyjść przerzutnika.
Tak jeszcze moje pytanie - na czym ma polegać podtrzymanie stanu licznika ? czyżby to taka funkcja Hold jak w miernikach cyfrowych ? do tego używało się pamięci zatrzaskowej (tzw. latch) - np. 7475 (4 bitowy latch).
Oczywiście ze jeszcze potrzebne sa bramki do przepuszczania sygnalu zegarowego.
Ale do tego wystarczą trzy bramki nand w tym jedna pracujaca jako inwerter. A czwarta bramke takze w roli inwertera mozna wykorzystac do generowania stanow na wejsciach zapisu dla bitow B oraz D.
Zapis asynchroniczny dziala dokladnie na zasadzie zatrzasku -dopoki sygnal zapisu jest aktywny czyli 0 to wszystko z wejscia przechodzi na wyjscie a jak sie zmieni na 1 to nastepuje zatrzasniecie tego co było ostatnio.