SN74LS193 Verständnisfrage

OP #4138844
Lesenswert?

Hallo,

ich möchte einen SN74LS193 in VHDL beschreiben. Dazu habe ich mir ein 
PDF mit Schaltplan gesucht und auch hier angehängt.
Im nächsten Schritt habe ich die Verbindungen eingefärbt.
Dann habe ich den einzelnen Verbindungen Namen gegeben und diese in VHDL 
beschrieben und so weiter ... aber, es funktioniert nicht wie es soll, 
ich vermute ich verstehe den Schaltplan nicht, also ein Paar Symbole 
daraus.

1. Das Dreieck ist ein "Treiber"?
2. Das Dreieck mit dem Kringel auf der rechten Seite ist quasi ein 
"NOT"?
3. Ist das Dreieck mit dem Kringel auf der linken Seite auch ein "NOT"?
4. Die RS-FFs haben am R und Clock Eingang auch einen Kringel - ein 
"NOT"?

Ja also ich habe das erstmal alles also jeden Kringel als "NOT" 
behandelt.

Wenn man dann die Eingänge
DOWN auf High
CLEAR auf Low
LOAD auf High
legt, dann sind aber z. B. am 1. FF (oben) der R und der S Eingang 
konstant beide auf Low. Das ändert also nie seinen Zustand.

Und dann sind das da ja laut Zeichnung RS-FFs, also die toggeln nicht 
wenn R und S beide High sind.

Findet Ihr Fehler?

Vielen Dank!
Angehängte Dateien:
Gast #4138902
Lesenswert?

Gustl Buheitel schrieb:
> 1. Das Dreieck ist ein "Treiber"?
Wenn es einzeln ist, ja.
Im Kästchen ist es der Takteingang.

> 2. Das Dreieck mit dem Kringel auf der rechten Seite ist quasi ein
> "NOT"?
Kringel invertiert, ja.

> 3. Ist das Dreieck mit dem Kringel auf der linken Seite auch ein "NOT"?
Ja. Einmal bezieht sich das auf den Eingang und einmal auf den Ausgang.

> 4. Die RS-FFs haben am R und Clock Eingang auch einen Kringel - ein
> "NOT"?
Die reagieren auf die fallende Taktflanke.

Jens
Gast #4138911
Lesenswert?

OK Danke! Jetzt verstehe ich es aber auch nicht besser. In dem einzelnen 
Bild hab ich die Signale für das obere FF eingezeichnet. Also alle die 
statisch sind. Und wenn man da jetzt an der Clock wackelt ändert sich 
trotzdem nichts weil R und S beide auf 0 festsitzen. Wo ist mein 
Denkfehler?
#4138956
Lesenswert?

Um einen Ladevorgang durchzuführen, muss Set gesetzt sein, dann ein 
Clockimpuls mit beiden Flanken durchgeführt werden und fertig.

Set ist dann High, wennData oinput High ist, das ist nicht 
eingezeichnet. Setze Dieses und Up auf 1 und down auf 0.

Load setze bitte auf Low.

Eigentlich solltle das dann funktionieren.

Robert
Gast #4138975
Lesenswert?

Data 0 ist egal weil bei dem AND alle 1 sein müssten, Load aber eine 0 
vorgibt.

Ich möchte den IC erstmal so beschreiben, dass er nach oben zählt wenn 
man Up wackelt. So wie im Datenblatt auf Seite 6. Da sind Clear auf Low, 
Load auf High und Down auf High. Die Dateneingänge werden nicht beachtet 
weil ich nichts laden möchte.

Mein Problem ist, dass wenn ich diese 3 Eingänge auf die Werte setze die 
sie in dem Signalverlauf auf Seite 6 haben, R und S beide auf 0 sind. 
Also auch wenn dann Up wackelt passiert nichts.
Gast #4139041
Lesenswert?

Ich würde das gerne an der Zeichnung und dem Signalverlauf auf Seite 6 
des Datenblattes diskutieren. Da sieht man schön welche Level die 
Signale haben und dann kann man das in der Schaltung auch durchgehen.

Wie ich das sehe sollte es doch genügen Down, Clear, Load auf ein festes 
Level zu legen wie eben da auch auf Seite 6 und dann an Up zu wackeln 
damit der hochzählt.

Was ich gemacht habe ist genau die Level aus dem Diagramm auf Seite 6 an 
die 3 statischen Eingänge eingezeichnet und dann gebückt was an R und S 
des oberen FFs anliegt. Wo habe ich da den Fehler?

Was ich aber auch nicht verstehe ist, dass da auf Seite 6 wenn der 
hochzählt das niederwertigste Bit, also QA auch wackelt. Wie kann das 
sein bei einem RS-FF das nicht auf 0 zurückgesetzt wird?
(An den R Eingang gehen nämlich nur Signale die beim hochzählen im 
Diagramm statisch sind.)
Mit einem JK-FF sähe das schon anders aus.
OP #4139194
Lesenswert?

Was ich machen möchte ist den IC so beschreiben dass ich den 
Signalverlauf aus dem Datenblatt (Anhang) nachbilden kann.

Zuerst möchte ich da das einfache Hochzählen testen bzw. verstehen.

Also da wo unten in dem Diagramm "Count Up" steht. Da sind die 
Dateneingänge egal und CLR ist 0, NOT LOAD ist 1, DOWN ist 1 und an UP 
wird gewackelt.

Genau das habe ich im Schaltplan eingezeichnet und komme zu dem 
Ergebnis, dass am oberen FF R und S konstant (weil nur von statischen 
Signalen abhängig) auf 0 liegen.
Selbst wenn die beide auf 1 lägen würde ich den Signalverlauf nicht 
verstehen weil ein RS-FF nicht toggelt sondern den Zustand behält. Das 
wird nie zurückgesetzt und somit dürfte das niederwertigste Bit nicht 
mit dem halben Takt wackeln.
Wo ist mein Denkfehler? Habe ich in die Zeichnung falsche Level 
eingezeichnet (die 1 und 0)?

Danke!
Angehängte Dateien:
OP #4139225
Lesenswert?

OK, das ist ja schön, aber wieso ist es auf 1?

NOT LOAD ist auf 1, nach dem NOT (unten links) auf 0, geht also mit 0 
ins AND.

DATA INPUT A ist egal.

CLR ist 0, nach dem NOT ist es also 1 und geht mit 1 ins AND.

Am AND kommen also 0, 1 und egal an. Daraus macht das AND ein 0 und das 
NOT direkt dahinter eine 1.

Weil am S Eingang noch ein NOT ist, wird aus dieser 1 wieder eine 0.

Wo ist der Fehler genau?
Gast #4139249
Lesenswert?

>Wo ist der Fehler genau?

Die Frage ist entscheidend. Sieht nicht nach einem Denkfehler von dir 
aus.

Hab diverse Hersteller durchgesehen. Gab auch die Variante mit JK-FF, 
aber alle haben diese Negierung an S.

Ist seltsam, nimm die Negierung raus und schon funktioniert der Zähler 
wie er soll.

Nun stellt sich die Frage:
Was macht die Negierung und wo kommt ihre Berechtigung her? Die 
Innenschaltung des FF ist nicht dargestellt. Damit endet die von außen 
zuordbare Logik. Ich würd nicht so weit gehen wie du. Die 
Weiterverarbeitung des Siganl S im FF ist dir nicht bekannt. Also weißt 
du auch nicht, ob intern eine 0 oder 1 beim Takt am Eingang den Ausgang 
schaltet.

Außen am FF liegt eine 1 an. Und die würd ich als relevant ansehen.
Gast #4139290
Lesenswert?

OK das Datenblatt zweifele ich sehr an weil auch wenn da jetzt eine 1 am 
S anliegt, das RS-FF wird nie zurückgesetzt. Also sollte es konstant 
gesetzt bleiben.

Selbst wenn R jetzt statt 0 auch eine 1 wäre, also S und R eine 1 dann 
würde ein RS-FF nicht toggeln sondern den Zustand behalten?!

Daher vermute ich ein JK-FF und zwar ohne das NOT oben beim S und mit 
einem NOT unten am R also damit beide Eingänge auf 1 liegen und es mit 
dem halben Takt toggelt.

Ich finde aber kein 74LS193 Datenblatt in dem das so steht, sondern 
immer nur die unverständliche Variante.
#4139307
Lesenswert?

> Daher vermute ich ein JK-FF

Im Datenblatt ist ein T-Flipflop.
Wie das im 74LS193 realisiert ist spielt für die Simulation und die 
Synthese keine Rolle. Spätestens in der Synthese gibt es eh nur noch 
D-Flipflops plus Logikgatter.

Um das Bauteil in VHDL zu beschreiben muss man nur die Zeitdiagramme und 
Logiktabellen im Datenblatt anschauen.
Gast #4139351
Lesenswert?

Also ich sehe da kein T-FF. Die hier haben doch R, S und Clock.

Ja ich könnte Zeitdiagramm und Logiktabelle verwenden aber das wollte 
ich bewusst nicht. Ich wollte und will genau die Schaltung beschreiben 
und wenn ich das mache so wie sie gezeichnet ist dann macht sie nicht 
das was das Zeitdiagramm sagt.
#4139373
Lesenswert?

R und S sind asynchrone Eingänge.
Das T am Takteingang meint T-Flipflop. T=toggle

Die Implementierung in einem FPGA auf Gatterebene wäre "Wahnsinn", da 
die Flipflops durch "gating" der Takte gesteuert werden.

Am besten du nimmst den 74LS190/191 als Basis. Der lässt sich vernünftig 
in VHDL beschreiben und auch implementieren.
Gast #4139395
Lesenswert?

Ja also das FF reagiert auf die Taktflanke wie im Datenblatt 
beschrieben. Aber wenn es R und S hat dann toggelt es nicht sondern 
setzt, löscht oder behält den Wert zur Taktflanke entsprechend dem was 
an R und S anliegt.

Bei S = 0 und R = 0 behält es den Wert, bei S = 0 und R = 1 setzt es den 
Wert auf 0 und bei S = 1 und R = 0 setzt es den Wert auf 1.

Bei R = 1 und S = 1 würde ein JK-FF toggeln, aber ein RS-FF nicht.

Das lässt sich schon alles schön in VHDL beschreiben, ich wüsste nur 
gerne was da tatsächlich im 74LS193 drinnen ist, also ist das Datenblatt 
hier korrekt und es ist ein RS-FF mit Takteingang der flankengesteuert 
ist oder ist das Datenblatt falsch?

Wenn es was anderes ist dann würde ich mich sehr über ein korrektes 
Datenblatt freuen.
OP #4139412
Lesenswert?

Ok, ich finde nur Beschreibungen von T-FFs die einen "Toggle" Eingang 
haben aber keinen Set/Reset.
(Daher meine Vermutung mit dem JK-FF weil das auch toggelt, aber noch 
zwei Eingänge wie R und S hat.)

Wie verhält sich ein solches FF? Im Datenblatt zählt es synchron zur 
steigenden Flanke von UP.

Und wie sieht es mit den Logikleveln an R und S aus? Sind die von mir 
eingezeichneten 1 und 0 richtig?
OP #4139438
Lesenswert?

Ok das ist schonmal was! Wie verhalten sich R und S zum Takt? Also 
werden die nur zur Taktflanke "beachtet" oder immer, auch ohne Takt? 
Also ich meine selbst wenn der Takt anliegt und das eigentlich 
hochzählt, aber R aktiv ist bleibt es trotzdem auf 0 hängen?
Und wenn der Takt anliegt und das gerade seinen Wert von 1 auf 0 ändern 
sollte, aber S auf 0 liegt, wird es dann eine 1?

Und: Passen die von mir eingezeichneten Werte? Dann wäre S aktiv, weil 
es nach dem NOT am FF eine 0 im FF ist, oder bedeutet "low aktiv" schon 
dieses "NOT" am Eingang?

Was passiert wenn R und S aktiv sind? Gewinnt R?
#4139486
Lesenswert?

Mein dringender Rat, nimm den 191er.
Der 193er verwendet zwei asynchrone Clocks um das gleiche Flipflop zu 
schalten und dann werden diese Clocks auch noch mit Gattern "verundet". 
Das ist etwas was man in VHDL nie machen würde. Irgendwie finde ich es 
unsinnig zu versuchen das in VHDL zu implemnetieren was jeder 
vernünftigen Design-Praxis widerspricht.
OP #4139493
Lesenswert?

Ja richtig, aber ich habe zwei alte Platinen aus den 80ern die irgendwie 
8 und 11 Bit-Werte generieren die dann an DACs gehen. Und das Signal aus 
diesen DACs erzeugt dann auf einem Monitor ein Bild.

Meine Aufgabe ist es jetzt dieses Bild an den PC zu übertragen.
Dazu könnte ich direkt an die Eingänge der DACs gehen und das da 
abgreifen, aber ich könnte auch diese beiden Karte ersetzen wenn ich die 
alte TTL-Logik in den FPGA stopfe den ich sowieso verwender werde. Das 
sind nur ein paar ICs und bis auf den 74LS193 habe ich schon alle 
beschrieben. Einen Schaltplan hab ich anhand von Fotos auch schon 
erstellt.

Sollte das nicht klappen gehe ich an die DAC Eingänge.
#4139560
Lesenswert?

-gb- schrieb:
> ich wüsste nur
> gerne was da tatsächlich im 74LS193 drinnen ist, also ist das Datenblatt
> hier korrekt und es ist ein RS-FF mit Takteingang der flankengesteuert
> ist oder ist das Datenblatt falsch?

Das Datenblatt ist weder richtig noch falsch. Die Innenschaltung ist 
nicht exakt, sondern nur ein Prinzipschaltbild. Schau dir einfach mal 
das Datenblatt verschiedener '193 Derivate verschiedener Herstellern an. 
Manche zeigen die Innenschaltung mit D-FF, andere mit JK-FF. usw. usf.

Andererseits ist ein binärer 4-Bit Synchronzähler eine relativ einfache, 
reguläre Struktur. Die würde ich in VHDL einfach nach Lehrbuch 
hinschreiben. Was soll der Unsinn, das von einem IC abkupfern zu wollen?
OP #4139564
Lesenswert?

Gute Frage, in der Tat ein Zähler ist sehr einfach in VHDL, aber da ich 
eine alte Platine möglichst 1:1 nachbilden will und leider (noch) nicht 
verstehe was die ICs dort genau machen weiß ich nicht ob der Zähler 
wirklich nur als Zähler verwendet wird.

Also eine Ahnung wie man den sonst noch verwenden könnte, aber ich bin 
schon öfters über sehr trickreiche Schaltungen gestolpert die teilweise 
ICs nicht genau so verwendet haben wie es im Datenblatt stand.

Ich werde es jetzt als toggelndes FF mit S und R umsetzen.
OP #4139575
Lesenswert?

So, fertig, funktioniert :-D

Also auf Wunsch gibt es auch das VHDL, das ist aber eher chaotisch weil 
ich alle Drähte einzeln benannt und beschrieben habe um zu lange 
Logikzuweisungen zu vermeiden. Für mich ist das besser debugbar weil man 
dann im Simulator auch den Zustand der einzelnen Drähte sehen kann.

Edit:
Also von den beiden Platinen die ich nachbauen möchte habe ich noch 
nicht den vollständigen Schaltplan. Also weitestgehend ist der 
vollständig aber ein paar Vias liegen unter ICs, die habe ich noch nicht 
alle nachverfolgt.

Auch habe ich noch nicht überprüft ob nicht unter ICs Verbindungen sind 
die weder auf der Platinenrückseite noch auf der Vorderseite zu sehen 
sind weil sie nur Beinchen des jeweiligen ICs unter diesem verbinden. 
Dazu muss ich mal eine helle Taschenlampe bemühen und schräg unter den 
IC leuchten um das dann auf der Rückseite als Schatten zu erkennen (ist 
leicht durchsichtig die Platine).

Zusätzlich bekommen die Platinen einige Signale vom "Hauptgerät" zu dem 
ich keinen Schaltplan habe und das extrem unübersichtlich ist. Da werde 
ich mal einen Logic-Analyzer ranhängen. Der Plan ist jedenfalls diese 
Platinen durch eine eigene mit FPGA zu ersetzen und das dann an den PC 
zu schicken.

Es wird noch spannend ...
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren