ein-flanken-getriggertes D-Flip-Flop (7474)

Dieser Bereich dient dem Austausch über geplante oder bereits realisierte Projekte - von Anwender zu Anwender.
Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von Microprocessor » Montag 20. April 2009, 20:32

Hallo Abacom,

nachdem die Frontplatten-Problematik inzwischen wohl gelöst ist und wieder Kapazitäten für andere Probleme
zu Verfügung stehen sollten, möchte ich noch einmal auf das in DPLE 4.0 fehlende ein-flanken-Flip-Flop
zurückkommen (s.a. viewtopic.php?f=21&t=829&hilit=microprocessor)

Zwar gab es in der Version 3.0 schon kein ein-flanken-getriggertes D-Flip-Flop (7474), doch ließ es sich
durch Beschaltung eines ein-flanken-getriggerten RS-Flip-Flops mit zwei Gattern über Umwege realisieren,
das auch noch flott geladen und simuliert wurde.

In der Version 4.0 ist das nicht mehr möglich, da es nur noch zwei-flanken-getriggerte Flip-Flops
(Master-Slave) gibt. Man ist daher auf die komplette Realisierung des Flip-Flops durch Verwendung von
6 Gattern oder den Einsatz einer DLL angewiesen.

Ein RS-Flip-Flop aus der Bauteil-Biblithek (leider Master-Slave und somit für meine Schaltung nicht zu
gebrauchen) wird im Leerlauf (ohne weitere Beschaltung) mit flotten 3925 KKHz simuliert, ein Gatter-
basierendes 7474 als Makro jedoch nur mit 712 KHz und eine DLL mit 7474 - Funktion sogar nur mit 555 KHz.


Das hat zur Folge, daß meine Schaltung mit nicht zu verwendenden Standard-RS-Flip-Flop (nur als Referenz)
für den

Simulationsstart 2 Minuten 15" und das Programm beenden 1 Minute 05"

aber mit 7474 aus Gattern für den

Simulationsstart 4 Minuten 13" und das Programm beenden 2 Minuten 20" benötigt.

Mit der 7474-DLL habe ich es gar nicht erst versucht (bei lineare Hochrechnung vermutlich 6 Minuten für die
Simulation und 3-4 Minuten für das Beenden).


Nach dem Motto: "Das Original aus der Bibliothek ist immer schneller simuliert als eine Nachkonstruktion"
wäre ich (und vielleicht auch andere Anwender) dankbar, wenn es demnächst ein Update mit einem ein-flanken-
getriggerten D-Flip-Flop gäbe. Es handelt sich immerhin um ein Standard-Bauteil, der Programmieraufwand
ist gering und die kürzeren Ladezeiten wäre es wert.

Viele Grüße

microprocessor

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von compander » Dienstag 21. April 2009, 01:21

Hallo Microprocessor. Hallo Abacom.

Das Thema, einen in der Bibliothek nicht vorhandenen Baustein nachzubilden, hat mich schon immer interessiert. Dabei ist völlig klar, dass soetwas immer deutlich langsamer ist, als ein "direkt programmiertes Bauteil".
Dennoch habe ich heute den Versuch gewagt, die Funktion des "7474" mit 6 Gattern nachzubilden.
Ergebnis: ohne das man an das Ding irgend etwas anschließt, liegt bei mir die Sim-Geschwindigkeit bei ca. 520 KHz. Also ähnlich wie beim "Microprocessor".
(rede von: Projektdatei (also kein Makro), Sim-Speed "Fast". Und ich muss zugeben, dass mein Rechner mit 1.3 GHz-Takt nicht gerade der schnellste ist)

@Microprocessor:
leider verstehe ich deine Angaben nicht (ich meine diejenigen, die in "Minuten" angegeben sind).
Ich würde mich freuen, wenn Du dies näher beschreiben könntest. Damit ich das verstehen kann. Sorry. Manchmal stehe ich "auf dem Schlauch".

Herzlichen Gruß vom C :shock: mpander.

Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von Microprocessor » Dienstag 21. April 2009, 06:44

Hallo Compander,

meine Projektdatei ist über 1 MB groß, beinhaltet 134 zum Teil komplexe Makros (darunter auch -zig-fach das
7474) und 154 Gatter. Durch den Umfang des Projekts ergeben sich beim Simulationsstart (grüner Pfeil) und
beim Beenden von DPLE ("Beenden mit bzw. ohne Speichern") die oben angegebenen Zeiten. Bei kleineren
Projekten fallen dem Anwender die Verarbeitungszeiten gar nicht auf, ich aber fühle mich in Zeiten versetzt, in
denen man beim PC - Booten und anschliessendem Laden eines Lotus-Spreadsheets einen deutlichen
Alterungsfortschritt empfunden hat.

Ich denke, jeder Entwickler kann sich vorstellen wie lästig es ist, nach einer Modifikation oder Änderung an der
Schaltung länger als notwendig auf den Testlauf zu warten, besonders in der Kenntnis, daß es auch schneller
ginge.

Der Simulationstart würde deutlich schneller erfolgen, gäbe es ein 7474 in der Standard-Bauteile-Bibliothek. Bei
jeder zusätzlichen Verwendung des Ersatz-7474s erhöht sich die Ladezeit und vermindert sich die Simulations-
frequenz.

Das Beenden des Gesamtprogramms dauert unabhängig, ob man speichert oder nicht, gleich lange, erhöht sich
aber ebenso beträchtlich (s.o.) bei größeren Schaltungen und somit auch bei der mehrfachen Verwendung von
"handgestrickten" 7474s. Das deutet darauf hin (sofern kein Programmierfehler vorliegt), daß das Entladen von
Komponenten und das "Bereinigen" von Windows deutlich länger dauern als der eigentliche Speichervorgang der
Projekt-Datei.

Der erhöhte Zeitaufwand beim Beenden des Programms ist aber nicht so entscheidend, da man den pro Sitzung
nur einmal ausführt, den Simulationsstart aber 10 bis 100 mal und das zieht sich.


Viele Grüße

microprocessor

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von compander » Dienstag 21. April 2009, 18:49

Hallo Microprocessor.

Danke für die nähere Beschreibung. Nun verstehe ich dies besser.
Defakto gibt es "lange" Zeiten bei Starten und Beenden der Anwendung.

Ich kenne diesen Effekt. Bei komplexen Applikationen kam es bei mir vor, dass sich in der Logik Fehler eingeschlichen haben. Das führte dann zu dem Effekt, dass sich die Anwendung nur mühsam Starten und Beenden ließ.
Den/die Fehler konnte ich zunächst gar nicht beheben. Einer meiner Söhne hat sich das Projekt dann näher angesehen, und die Fehler bemerkt.
Was ich damit sagen will: ein "Aussenstehender" bemerkt so etwas viel schneller. Sonst nix!

Als weitere möglich Ursache kommt wohl die Komplexität (z.B. die immense Anzahl von Gattern) des Blockschaltbildes in Frage. Z.B.:
- mir ist nicht bekannt, in welcher Reihenfolge "Bauelemente" der Schaltung abgearbeitet werden
- glaube behaupten zu können, dass selbst die Reihenfolge, in der man die Bauelemente in die Schaltung einfügt, eine wichtige Rolle spielt.
Dazu kann ich jedoch nichts Verbindliches sagen.
Abacom ganz bestimmt.

Herzlichen Gruß vom C :shock: mpander.

Mike D
Beiträge: 528
Registriert: Dienstag 14. Oktober 2008, 14:48
Wohnort: Elbe- Weser-Dreieck

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von Mike D » Dienstag 21. April 2009, 21:38

compander hat geschrieben:- glaube behaupten zu können, dass selbst die Reihenfolge, in der man die Bauelemente in die Schaltung einfügt, eine wichtige Rolle spielt.
Genau so ist es, man kann mit "nach hinten/vorne setzen" aber die Reihenfolge beeinflussen.

Mike

KAKTUS
Beiträge: 651
Registriert: Samstag 18. Oktober 2008, 21:12

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von KAKTUS » Mittwoch 22. April 2009, 12:17

@ Microprocessor

welches Betriebssystem verwendest du?

siehe viewtopic.php?f=21&t=1011&p=1987#p1987
stachlige Grüße, Kaktus

Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von Microprocessor » Mittwoch 22. April 2009, 18:36

Hi Kaktus,

ich arbeite mit Windows SP auf einer 3GHz Single-Core-Maschine, das Beispiel-Projekt 25 wird in
ca. 2 Sekunden geladen, soweit also alles in Ordnung.

Nochmal:
Die Erhöhung der Zeit für den Simulationsstart ergibt sich durch die Verwendung von Makros als Ersatz
für ein nicht in der Bauteile-Bibliothek vorhandenes Standard - 7474 und die ursprüngliche Frage an
Abacom war, ob sie demnächst in einem Update die Bibliothek um diesen Baustein erweitern oder nicht.

Gruß

microprocessor

Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von Microprocessor » Mittwoch 29. April 2009, 13:27

Haaaaaallo!

Abacoooom!


Darf ich aus der ausbleibenden Reaktion schließen, daß es in absehbarer Zeit kein
ein-flanken-getriggertes Flip-Flop in der Bauteilbibliothek geben wird??

Oder niemals mehr?

Da die Frage für mein weiteres Vorgehen an einem Projekt von strategischer Bedeutung ist, wäre
es äußerst hilfreich, Gewissheit zu haben, selbst wenn meine Anfrage negativ beschieden werden sollte.


Viele Grüße

microprocessor

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von abacom » Montag 4. Mai 2009, 09:03

Bitte haben Sie Verständnis, wenn es manchmal etwas dauert. So manchen Beitrag muss man inhaltlich erst einmal verstehen und das ist angesichts der Vielfalt der Beiträge nicht immer ganz einfach. Wenn ich dann die exakte Funktionsweise eines 7474 nicht sofort parat habe, möge man mir dieses ebenfalls verzeihen. Hilfreich wären Fall-Beispiele (für die fehlende Funktion) oder auch z.B. das Hochladen des besagten Makros. Das macht auch das 'Mitlesen' für andere leichter.
ABACOM support

Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von Microprocessor » Montag 4. Mai 2009, 13:58

Hallo Abacom,

ich wollte bestimmt nicht drängeln und ich habe volles Verständnis, daß Tätigkeiten wie Entwicklung
und Vertrieb und lästige Nebentätigkeiten wie Bank, Steuerberater, Rechtsanwalt usw. Vorrang vor
einem kostenfreien Support über das Forum haben. Da die Antworten durch Abacom i.d.R. zeithah
erfolgen, war das Ausbleiben einer Reaktion auf alle Beiträge der letzen 14 Tage eben ungewöhnlich.


Als Anhang habe ich die angeforderten Daten des 7474 beigefügt. Mein Ersatz-Makro ist gemäß dem
dort aufgeführten Schaltbild realisiert, verlangsamt aber, wie gesagt ,die Schaltungsvorbereitung beim
Simulationsstart erheblich (s.o.).

Darüberhinaus liegt ein quick 'n dirty - Code für eine C-DLL bei. Die 7474-Funktion lässt sich wahrscheinlich
noch eleganter und knackiger realisieren, aber sie funktioniert, allerdings noch langsamer als o.a. Makro.

Man erkennt aber, daß der Umfang des Codes (sicherlich auch in Delphi) gering ist und die Einbindung
der Funktion in die integrierte Bauteilebibliothek von ProfiLab evtl. unter Verwendung des leicht modifizierten
Codes für das RS-FF aus der Version 3.0 kein großes Problem darstellen sollte.

Und wenn das Bauteil auch noch folgende Pin-Belegung hätte

Pin
1 PRE°
2 CLK
3 D
4 CLR °
5 No Connection
6 Q
7 Q°
8 No Connection

(° steht für active low bzw. invertiert)

würdet ihr mich richtig glücklich machen.


Viele Grüße

microprocessor
=============================================================
Baustein 7474 siehe:

http://focus.ti.com/lit/ds/symlink/sn74ls74a.pdf
=============================================================

C- DLL (Einrücken der Zeilen wird aus Source-File leider nicht übernommen):

//Function declarations
#include "dllbeg.h"
#include "dllend.h"
#include "7474var.h"
#include "7474input.h"
#include "7474output.h"
#include "7474start.h"
#include "7474end.h"
//*********************************************************************************************************************************
//Aufruf von PROFILAB, hier steht die eigentliche Funktion der DLL
//*********************************************************************************************************************************
DLLEXPORT void _stdcall CCalculate(double *PInput, double *POutput, double *PUser)
{
if (PInput[PRE] < 2.5) // wenn PRESET - Eingang (active-low) = low
{
POutput[Q] = 5; // setze Flip-Flop-Ausgang Q auf high und
POutput[QNOT] = 0; // setze negierten Ausgang auf low
}



if (PInput[CLR] < 2.5) // wenn CLEAR - Eingang (active-low) = low
{
POutput[Q] = 0; // setze Flip-Flop-Ausgang Q auf low und
POutput[QNOT] = 5; // setze negierten Ausgang auf high
}



if (PInput[CLK] > 2.5) // wenn Takt-Eingang auf high
{
if (PUser[CLK_OLD] < 2.5) // mit ansteigender Flanke
{
if (PInput[D] > 2.5) // und Dateneingang ist high, dann
{
POutput[Q] = 5; // setze Flip-Flop-Ausgang Q auf high und
POutput[QNOT] = 0; // setze negierten Ausgang auf low
}

else // wenn Dateneingang = low, dann

{
POutput[Q] = 0; // setze Flip-Flop-Ausgang Q auf low und
POutput[QNOT] = 5; // setze negierten Ausgang auf high
}
}
}

PUser[CLK_OLD] = PInput[CLK]; // Flanken-Check



}
Zuletzt geändert von Microprocessor am Montag 4. Mai 2009, 14:24, insgesamt 3-mal geändert.

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von compander » Montag 4. Mai 2009, 18:43

Hallo "microprocessor". Hallo Freunde.

Leider hast Du bisher weder dein Makro zum 7474, noch dein Projekt, zur weiteren Betrachtung vorgestellt.
Ich habe mein Makro heute nach deinem Vorschlag zur Pinbelegung ein wenig überarbeitet. Es ist im Anhang.

Die Diskussion über Sinn und Unsinn von Makros ist hiermit eröffnet.

Ich jedenfalls bin in den meisten Fällen durchaus für Makros. Es gibt jedoch Grenzen.
Da ist dann ein "richtiges" Bauteil klar im Vorteil.

Bem.: ohne das man an das Ding irgend etwas anschliesst, beträgt die Sim-"Geschwindigkeit" bei SLOW ca. 990 Hz, und bei FAST ca. 485 KHz. Gilt natürlich nur für meinen Rechner! Und wenn er nicht weitere rechenintensive Programme ausführen muss.
Der "Start der Anwendung/Simulationsstart" ist bei mir so rasch, dass ich die Zeit nicht vernünftig messen kann.

Herzlichen Gruß vom C :shock: mpander.
7474.mak
(2.36 KiB) 531-mal heruntergeladen

Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von Microprocessor » Montag 4. Mai 2009, 21:56

Hallo Leute, hallo Compander


ich weiß zwar nicht, was meine Schaltung bzw. der interne Aufbau des 7474 - Makros mit meiner
ursprünglichen Fragestellung zu tun hat, bei der mir ausschließlich Abacom weiterhelfen könnte,
wenn sie die 7474-Funktion im Source-Code der Bauteile-Bibliothek implementieren, sodaß sich
vor allem die Schaltungsvorbereitungszeit der Simulation verkürzt. Trotzdem vielen Dank für
Eure Mitarbeit.

Da ich aber auf Grund der bisherigen Antworten den Eindruck habe, daß das Problem nicht richtig
erkannt wird, bin ich bereit, die Schaltung Interessierten Anwendern zu Verfügung zustellen.
Eigentlich wollte ich sie erst präsentieren, wenn die dazu gehörende Dokumentation fertiggestellt ist.
Wer die Schaltung ausprobieren möchte, gebe ihr zum Laden auf einer 3GHz-Maschine ca. 1 Minute
Zeit und für den Simulationsstart gut 4 Minuten. Man beachte dabei die Dauer für das Berechnen der
7474s, eines nun wirklich nicht komplexen Bauteils.

Hat der Simulator die Schaltung durchgerechnet und gestartet, sind für den Start des Prozessors
folgende Schalter zu betätigen (Frontplatte im linken unteren Bereich):

1. µCODE RAM : OUT° - Schalter auf OFF
2. CMD.DEC : OUT° - Schalter auf OFF
3. RESET° : Schalter einmal auf OFF und dann wieder auf ON
4. mit dem CLOCK - Schalter (ON/OFF im Wechsel) im Einzelschrittmodus das Programm manuell
abarbeiten oder
durch Umlegen des Clock-Mode-Schalters auf "auto°" das Programm alleine abarbeiten
lassen. Wenn man in diesem Modus die Frontplatte wegklickt, sieht man die Bits im
Prozessor flitzen wenn die Leitungspegelanzeige in ProfiLab aktiviert ist.

Bei der Schaltung handelt es sich um einen handelsüblichen Mikroprozessors vom Typ 65C02 inkl.
Wait-State-Generator, Mikro-Code-Teacher und erweitertem Befehlssatz, der ausschließlich mit
Gattern und Standard-ICs (alle als Makros) realisiert wurde, d.h. man kann jeden einzelnen
Schritt eines Assemblerbefehls bzw. des ablaufenden Programm bis auf die unterste Bitebene
verfolgen.
Auch die 7474s sind zwangsweise als Makros realisiert (weil es in 4.0 keine ein-flanken-(D-)-FFs
gibt) und genau diese Makros verdoppeln durch ihre mehrfache Verwendung die Startdauer der
Simulationszeit gegenüber einem Flip-Flop aus der in ProfiLab integrierten Bauteile-Bibliothek.
Deshalb würde ich gerne, zumindest in der Testphase mit fertigen und damit bei der Simulation
schnell geladenen FlipFlops arbeiten.

Ich bitte folgendes zu beachten:

Zunächst ein großes Lob und vielen Dank an Abacom, deren Digital-ProfiLab eine Schaltung diesen
Umfangs ermöglicht hat und sie auch noch korrekt simuliert !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Es handelt sich um eine rein "akademische" Schaltung, mit der ich mir die Frage beantworten wollte,
ob es möglich ist, als Laie und einzelner Mensch eine inzwischen unser Leben (mit)beherrschende
Technologie nachzuvollziehen!

Mir ist klar, daß man den Befehls-Decoder im kommerziellen Bereich so nicht bauen würde. Er sollte
aber, wie der Rest der Schaltung, einfach sein und aus möglichts wenigen, nachvollziehbaren Einzel-
komponeneten bestehen!

Einige wenige Befehle sind noch nicht implementiert!

Die Befehle sind noch nicht alle getestet!

Die Schaltung läuft nur auf ProfiLab 4.0!

Die Schaltung unterliegt dem Copyright. Weder die Schaltung, Funktionsgruppen wie der Adressgenerator,
die Accu/ALU/Shift-Unit oder der Befehlsdekoder noch der Mikrocode dürfen kommerziell verwendet werden.


Viele Grüße
microprocessor

P.S.
Der Filetransfer ist nur als ZIP möglich, da das Forum nur Dateien bis 256KB zuläßt, die
Projektdatei aber 1,1MB groß ist.
Dateianhänge
65C02TEACH.zip
(105.33 KiB) 523-mal heruntergeladen

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von compander » Dienstag 5. Mai 2009, 19:41

Hallo Microprocessor.

Das Starten der Anwendung geschieht so, wie von dir beschrieben. Zeitraubend.
Warum das so ist ---> ich weiss es im Moment noch nicht.
Ich kann mir jedoch nicht vorstellen, dass es nur an den 7474-Makros liegt!

Es wird ein wenig dauern, bis ich die Schaltung wirklich verstanden habe.
Es wäre hilfreich gewesen, wenn Du im BSB für die jeweiligen Gruppen mit Text eine Funktionsbeschreibung realisiert hättest.

Beim ersten Durchsehen sind mir einige Sachverhalte aufgefallen.
1. öffnet man die Makros "74374" (also z.B. die MCR 44 ... 53) so sieht man, dass der Pin 9 (7D) in der "Luft" hängt. Das ist natürlich gar nicht gut.
2. das bei dem Makro "74374" desen Ausgänge direkt mit den Eingängen (des Makros) über Brücken (vor dem RAM) verbunden sind, kann ich leider nicht nachvollziehen. Ich bitte um eine Erklärung. M.E. zieht so etwas sehr fatale Auswirkungen innerhalb eines PLE-Projektes nach sich. Und hat vermutlich viel damit zu tun, dass die Anwendung so "zeitraubend" startet.........
3. öffnet man hier jeweils auch noch das Makro "7474", so stellt man fest, dass die Makroausgänge "Q" und "Q Invers" offensichtlich vertauscht sind. Was natürlich für die nachfolgende Schaltungsteile zu "verkehrten" Funktionen führt. Und sich fatal auswirkt. Zumal dies vielfach geschieht.
4. desweiteren ist mir aufgefallen, dass Du an Makro-Pins, die keine wirksame Eingänge oder Ausgänge darstellen, das Bauelement "Masse" anschliesst. Dies ist natürlich überflüssig. Am besten wäre es, diese Pins gäbe es erst gar nicht. Macht die Sache einfacher.........

Von daher ist es mir schwergefallen, in dem von mir vorgestellten 7474-Makro die Pins 5 und 8 (nc) einzuzeichnen. Sind sie doch überflüssig. Ich habe es nur gemacht, weil Du es so haben wolltest.
(Bem.: hier ist der Pin6 "Q", und Pin7 "Q°" = Q Invers. Du wolltest diese Reihenfolge so haben.
Nochmals: in deinem BSB sind diese Anschlüsse/Ausgänge vertauscht)

Soviel für heute.

Gruß vom C :shock: mpander.

Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von Microprocessor » Dienstag 5. Mai 2009, 23:16

Hallo Compander,

bitte vertiefe Dich zu diesem Zeitpunkt nicht in die Schaltung. Ich habe mit ihr keine Probleme,
sie funktioniert einwandfrei. Ich habe sie nur vorab veröffentlicht, um die Ladezeit zu dokumentieren.
Eigentlich möchte ich deshalb gar nicht weiter über die Funktion der Schaltung diskutieren, weil ich
fürchte, daß wir uns dadurch immer weiter vom Thema entfernen, aber wegen Deiner Mühe, will ich
doch ganz kurz auf Deine Hinweise eingehen.

Ersetzt man die 7474-Makros durch das Makro RSFFals7474.MAK (s.u.) wird die Schaltungssimulation fast
doppelt so schnell gestartet. Das funktioniert aber nur unter ProfiLab 3.0 richtig, weil das RS-FF dort (irrtümlich)
ein ein-flanken-FF war. In 4.0 kann man RSFFals7474.MAK zum Test einsetzen, um den verkürzten Ladeeffekt
zu erkennen, die Schaltung funktioniert dann aber nicht mehr korrekt, weil es sich beim RS-FF in ProfiLab4.0
eben um ein zwei-flanken-FF (Master-Slave) handelt. Die Startzeit hängt also definitiv vom 7474-Makro ab!!


Eine reine ein-flanken-D-Flip-Flop-Funktion aus der Bauteile-Bibliothek (und das kann nur ABACOM realisieren)
wäre garantiert noch schneller beim Simulationstart durchgerechnet.


zu 1.
Pin 9 im 74374 hängt noch aus einer Testphase in der Luft und liegt im Normalfall natürlich am
dazugehörenden Gattereingang. Dieser Schaltungsbereich wird aber mit der von mir oben angegebenen
Schalterstellung während der Simulation nicht aktiviert und hat somit keine Einfluß auf den Demo-Betrieb.
Dennoch Lob: sehr aufmerksam.


zu 2.
Der Datenfluss zwischen RAM bzw. 74374 wird für die unterschiedlichen Betriebsmodi "Normalbetrieb/
Lernen/Kopieren" (Details haben nichts mit dem ursprünglichen Problem zu tun) über geschaltete
Bustreiber sauber getrennt und gelenkt und funktioniert einwandfrei. und hat keinen Einfluß auf den
zeitraubenden Start (s.o.) !!!


zu 3.
Das 7474-Makro funktioniert so wie es das Datenblatt vorschreibt und wie ich es auch erwarte, die
Schaltung auch, ich weiß nicht was da vertauscht sein soll.

DAS EINZIGE WAS STÖRT, IST DIE LANGE STARTZEIT WENN MAN DAS MAKRO STATT EINES
BISHER NICHT VORHANDENEN D-FLIP-FLOPs DER BAUTEILE-BIBLIOTHEK VERWENDET.
(und wenn ich mich nochmal wiederhole: das kann nur ABACOM realisieren)

zu 4.
Um die Eingang-Pins auf der linken Seite und die Ausgang-Pins auf der rechten Seite muss
man wohl zwei Dummy-Pins mit in das Makro nehmen. Ob man die Dummies beschaltet oder
nicht, ist doch wohl nur Geschmackssache. Ich mag halb keine keine rot-leuchtenden (high)
No-Connect-Pins während der Simulation

Gruß

microprocessor
Dateianhänge
RSFFals7474.prj
(1.58 KiB) 474-mal heruntergeladen

Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von Microprocessor » Montag 25. Mai 2009, 06:31

Hallo Abacom,

ich möchte noch einmal den Versuch wagen, Sie zu einer Aussage bezüglich der Zukunft von ein-flanken-
getriggerten Flip-Flops in der Bauteile-Bibliothek zu bewegen.

Natürlich steht es Ihnen als Software-Entwickler frei, die Bauteile nach Ihrem Gusto zu gestalten bzw.
auf die Möglichkeit der (langsam geladenen und simulierten) Makros zu verweisen, doch bin ich der Meinung,
dass die elementaren Komponenten der Digitaltechnik möglichst realitätsnah in der Bibliothek vorhanden
sein sollten.

Das im Original-Paket mitgelieferte CMOS-Makro ausdrücklich als CD4013 bezeichnete Bauteil basiert seit
der PLE-Version 4.0 ebenfalls auf dem zwei-flanken-getriggerten R/S - Flip/Flop und verhält sich somit
zwangsläufig nicht entsprechend der Spezifikation im Datenblatt (Eingangswert wird mit steigender Flanke
übernommen und an den Ausgang weitergegeben).

Die Bibliotheks-Bauteile für Register liegen übrigens seit Version 4.0 auch nur noch als zwei-Flanken-
Komponenten vor und entsprechen damit nicht mehr dem Verhalten von Standard-Registern wie 74174, 74273
oder 74374.


Fragen:

War es wirklich so geplant, dass es ab der Version 4.0 keine in der Bauteile-Bibliothek integrierte
ein-flankengetriggerte Flip/Flops bzw. Register mehr gibt?

Ist bei der Umstellung von 3.0 auf 4.0 irgend etwas übersehen worden?

Wird es in Zukunft (Update oder Version 5.0) diese Bauteile wieder geben?

Habe ich etwas übersehen?


Viele Grüße

microprocessor

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von abacom » Freitag 29. Mai 2009, 09:56

War es wirklich so geplant, dass es ab der Version 4.0 keine in der Bauteile-Bibliothek integrierte
ein-flankengetriggerte Flip/Flops bzw. Register mehr gibt?
Ja.
Ist bei der Umstellung von 3.0 auf 4.0 irgend etwas übersehen worden?
Nein.
Wird es in Zukunft (Update oder Version 5.0) diese Bauteile wieder geben?
Nein.
Habe ich etwas übersehen?
Anbei eine recht "kompakter" Vorschlag, für ein D-FF mit der gewünschten Funktion...
Dateianhänge
Einflanken_DFF.prj
(2 KiB) 519-mal heruntergeladen
ABACOM support

Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von Microprocessor » Montag 1. Juni 2009, 12:58

Schade,

daß Basis-Elemente, zumal mit nur ein paar Zeilen Codezu realisieren (s.o.), nicht mehr implementiert bzw.
berücksichtigt werden. Der Schwerpunkt der Produktentwicklung verschiebt sich anscheinend vom Ditalem
immer mehr zum Analogem, der Stringsverarbeitung und WEB-Aplikationen.


Danke

für den knackigen, aus Bibliotheksbauteilen realisierten und damit schnell geladenen und simulierten, analogen
Lösungsansatz. Eine Eimerkettenschaltung als D-Flip-Flop: not bad !!!


Bitte:

wenn mir jetzt noch ein Analog-Freak die Schaltung um einen asynchronen Set- und Reset - Eingang erweitert,
wäre mein Problem "Schnelles 7474" (wenn dann auch nur als Hybridschaltung) zumindest für Testzwecke
gelöst.


Gruß
microprocessor

funkybaer
Beiträge: 440
Registriert: Mittwoch 22. Oktober 2008, 08:51
Wohnort: Kitzingen

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von funkybaer » Dienstag 2. Juni 2009, 11:14

Hallo

Mal sehen ob meine kenntnisse noch reichen und es so stimmt

Gruss gerhard
Dateianhänge
7474_a.zip
(1.27 KiB) 476-mal heruntergeladen

Mike D
Beiträge: 528
Registriert: Dienstag 14. Oktober 2008, 14:48
Wohnort: Elbe- Weser-Dreieck

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von Mike D » Dienstag 2. Juni 2009, 12:09

Gedacht hatte ich das auch so, es reagiert aber falsch auf PRE und CLR wenn CLK low ist.
Laut Datenblatt reagiert es auch auf die falsche Flanke von CLK.

Mike

KAKTUS
Beiträge: 651
Registriert: Samstag 18. Oktober 2008, 21:12

Re: ein-flanken-getriggertes D-Flip-Flop (7474)

Beitrag von KAKTUS » Dienstag 2. Juni 2009, 18:52

Auch wenn sich Mikroprozessor ein richtiges Bauteil in PL wünscht, so habe ich mich auch nochmal mit dem Thema beschäftigt, man lernt ja immer wieder dazu.

Habe einen halben 7474 mal nachgebaut laut Datenblatt, verhält sich eigentlich wie Wahrheitstabelle und die Ausführungsgeschwindigkeit ist mit einem halben 7474 noch bei 660kHz.

@Mikroprozessor
Mich würde interessieren ob das Verhalten stimmt und was das Makro in deiner Schaltung macht.

Ich bin kein Programmierer, aber ist der Unterschied wirklich so groß, ob ich ein Ganzes aus vielen kleinen zusammenbaue oder ein Ganzes neu programmiere?
Dateianhänge
7474.zip
(22.68 KiB) 484-mal heruntergeladen
stachlige Grüße, Kaktus

Antworten

Zurück zu „PROFILAB Kundenprojekte und Aufgabenstellungen“