Simpele digitale logica, maar werking niet helemaal duidelijk

Op 27 juli 2018 13:35:06 schreef gdb:
[...]Ha, ha, goede vraag: dat LEDje heeft geen functie

Inderdaad, compleet zinloos, ohm pi heeft het juiste antwoord en gaat door voor de koelkast. ;-)

De schakeling telt tot 7 en bij de roll-over naar 8 reset deze zich in pakweg een tiental nS omdat deze zijn "eigen state onder zijn voeten weg maait".

Doordat de reset maar 1 bit hoeft te resetten (Q3) hebt je puur geluk dat het uiteindelijk goed werkt.

Maar het kan ook fout gaan, stel: Je zou bijvoorbeeld twee bitjes willen combineren (AND gate) om bijvoorbeeld op 10 te resetten (0-9 tellen) dan gaat het waarschijnlijk mis: de reset puls begint alles te resetten en een grote kans is er dan dat er een bitje ietsje eerder 0 wordt (Q3 of Q1). De reset valt dan weg en het "ander" bitje staat nog op 1. Tsja en dan klagen dat het niet werkt of onregelmatig telt.
Even eentje om over na te denken.

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.

Op 27 juli 2018 20:57:22 schreef henri62:

Doordat de reset maar 1 bit hoeft te resetten (Q3) hebt je puur geluk dat het uiteindelijk goed werkt.

.

Zoiets werd vroeger een "race probleem "geheten. Maar in principe zijn de meeste tellers qua snelheid zo opgebouwd dat ze zichzelf kunnen resetten na het bereiken van een bepaalde waarde, das de basis van tellers. Je moet daarbij wel de vooropgestelde regels respecteren en zeker geen combinatorische met sequentiële logica gaan mixen, dat gaat fout of werkt per toeval.

ook eentje om over na te denken :-)

Op 27 juli 2018 23:22:50 schreef kris van damme:
[...]

Zoiets werd vroeger een "race probleem "geheten.

Dat heet nog steeds zo.

.. Je moet daarbij wel de vooropgestelde regels respecteren en zeker geen combinatorische met sequentiële logica gaan mixen, dat gaat fout of werkt per toeval.

ook eentje om over na te denken :-)

Dat is precies wat ik dus ook bedoel.

Dan krijg je van die vage opmerkingen: Het werkt toch? Ja: tot je het 10000 keer of meer gaat maken, en in eens werken er een hoop schakelingen niet meer. Goh, wat een toeval.

En dan komen we hier met een mooi topic wat heet "Ontwerp blunders", het staat er helemaal vol mee. In elk vakgebied heb je zo wel iets wat minder voor de hand ligt en problemen veroorzaakt.

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Arco

Special Member

Zoiets werd vroeger een "race probleem "geheten.

Als we vroeger race/lock problemen met software hadden, draaiden we altijd 'd(r)eadlock holiday' van 10cc... :)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Op 26 juli 2018 22:59:17 schreef Sine:
De 'horror' is 47u aan de uitgang van een mos IC. Nasty as hell. Als er nou een weerstand tussen uitgang en C-tje zat werd het al een heel ander verhaal.
Dit is gewoon ranzig.

De 47µ is niet helemaal elegant, (inderdaad, ranzig). De oplossing is simpel en door mij aangegeven, maar dat is ook de enige fout die ik zie. Niet echt een voorbeeld van 'alles is fout, hoe heeft dat het internet kunnen halen'

Op 27 juli 2018 23:22:50 schreef kris van damme:
[...]

Zoiets werd vroeger een "race probleem "geheten. Maar in principe zijn de meeste tellers qua snelheid zo opgebouwd dat ze zichzelf kunnen resetten na het bereiken van een bepaalde waarde, das de basis van tellers.

Ik zou daar niet zo vast op rekenen. Je moet hoe dan ook zorgen dat dit soort resetsignalen voldoende lang blijven staan, bijvoorbeeld mbv een monostabiele flipflop.

Je moet daarbij wel de vooropgestelde regels respecteren en zeker geen combinatorische met sequentiële logica gaan mixen, dat gaat fout of werkt per toeval.

Combinatorische logica (oa EN- en OF-poorten) kan prima samenwerken met sequentiële logica (flipflops). Als flipflop gebruikten we de JK-flipflop 4027. Geen race problemen. Dat bestond gewoon niet voor ons. Wel gebruikten alle FF's dezelfde clockpulsgenerator. Op de opgaande flank van de clockpuls wordt informatie van buitenaf (bijv vanaf andere 4027-flipflops en/of combinatorische logica) in de JK-flipflop ingelezen en verwerkt. Op de neergaande flank van de clockpuls werd deze verwerkte signalen op de uitgangen van de 4027 gezet. De clockpuls was voor alle 4027's bijv 10µS hoog en 90µS laag. Dat geeft genoeg tijd om raceproblemen, wat in het algemeen in een tijdsgebied van minder dan 1µS optreedt, te voorkomen.

Op 27 juli 2018 23:47:37 schreef Arco:
Als we vroeger race/lock problemen met software hadden, draaiden we altijd 'd(r)eadlock holiday' van 10cc... :)

Nooit (van) gehoord. ;-)

Op 28 juli 2018 19:28:52 schreef ohm pi:Combinatorische logica (oa EN- en OF-poorten) kan prima samenwerken met sequentiële logica (flipflops). Als flipflop gebruikten we de JK-flipflop 4027. Geen race problemen. Dat bestond gewoon niet voor ons. Wel gebruikten alle FF's dezelfde clockpulsgenerator. Op de opgaande flank van de clockpuls wordt informatie van buitenaf (bijv vanaf andere 4027-flipflops en/of combinatorische logica) in de JK-flipflop ingelezen en verwerkt. Op de neergaande flank van de clockpuls werd deze verwerkte signalen op de uitgangen van de 4027 gezet. De clockpuls was voor alle 4027's bijv 10µS hoog en 90µS laag. Dat geeft genoeg tijd om raceproblemen, wat in het algemeen in een tijdsgebied van minder dan 1µS optreedt, te voorkomen.

alles kan, maar je moet het goed bestuderen en niet zomaar even in et wild doen. in jouw voorbeeld werd de uitslag van de combinatorische logica door een volgende FF opnieuw in de pas gebracht.

Bij tellesr moet je heel goed opleten, datasheet uitspitten en eventueel de application note's.

In ieder geval werkt het circuitje van TS niet zoals voorzien..

Daarom heb je ook tellers met een synchrone reset.
Laatste stand decoderen (in bovenstaande geval dus Q2 & Q1 & Q0) en aan de reset knopen. Dan werkt het gegarandeerd.

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
fatbeard

Honourable Member

Garantie tot de hoek (van de werkbank welteverstaan)...

Wat van belang is dat de vereiste setup- en holdtijden gehaald worden, onder alle condities.
Ook een synchrone reset kan fout gaan als die condities niet gehaald worden door bijv. grote vertragingen en/of hoge parasitaire capaciteiten, of hoge kloksnelheden/ongunstige duty-cycles.

Mag ik U voorstellen: de wereldberoemde Arabier Bin d'Aire-Dunndad... ;)

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.

Op 30 juli 2018 23:56:10 schreef fatbeard:
Wat van belang is dat de vereiste setup- en holdtijden gehaald worden, onder alle condities.
Ook een synchrone reset kan fout gaan als die condities niet gehaald worden door bijv. grote vertragingen en/of hoge parasitaire capaciteiten, of hoge kloksnelheden/ongunstige duty-cycles.

Dat noemen ze binnen spec ontwerpen. Niks bijzonders aan, behalve dat een heleboel dat niet kunnen of niet weten hoe ze dat moeten doen. En dan begint het broddelwerk.

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.