Hallo, Ich habe eine Logik mit 13 Digitalen Inputs und einem Output die rein kombinatorisch ist. Hat jemand eine Idee wie ich das was ich bestimmt habe(Tabelle mit 2^13) Eintragen vereinfachen kann? Danke. Grüße Sebastian
Sebastian schrieb: > Hat jemand eine Idee wie ich das was ich bestimmt > habe(Tabelle mit 2^13) Eintragen vereinfachen kann? Was willst du damit machen? Hast du wirklich eine Tabelle mit 8912 Zeilen? Wenn ja: ich würde die in ein ROM packen und die Eingangleitungen als Adressen verwenden. Einfacher geht nicht... ;-)
Hallo, ich habe eine Blackbox mit 13 Eingängen und einem Ausgang, also hab ich die Stimuliert und eineTabelle generiert. Es ist eher reverse Engineering die ehemaligen Entwickler gibts nicht mehr. Hab mehrere Rund mit untersciedlicher Sortierung gemacht, ist kein Speicher drin. Grüße Sebastian
Warum willst du das vereinfachen? Minimierungsverfahren sind in jedem Synthesetool fehlerfrei vorhanden. Bei händischer Minimierung kannst du nicht davon ausgehen, dass es fehlerfrei wird. Initialisiere einen/mehrere BRAMs mit deiner Tabelle. Tom
Sebastian schrieb: > Hab mehrere Rund mit untersciedlicher Sortierung gemacht, ist kein > Speicher drin. Ich meine auch nicht, dass da ein Speicher drin wäre, sondern du könntest es am einfachsten mit einem Speicher umsetzen: die 13 Eingangsleitungen als Adressleitungen wählen ein Byte aus, wovon nur ein Bit als Ausgang verwendet wird... Das Stichwort dazu heißt LUT = Lookup-Tabelle.
Hallo, das sind vieleicht 20 UND und 5 ODER Gatter, mehr ist es nicht. Dafür 8k LUT ist massiver Overkill, ich möchte ja auch die Funktion verstehen, ein paar Dinge sind überliefert, aber eben nicht allen, und so hänge ich da mit einer "Obfuscated" Logik und Halbwissen. Deshalb auch "Reverse-Engineering", ich würde gern die Logikterme rausbekommen um mir mit dem Halbwissen den Rest zu erschießen. Nur weiß ich nicht wie ich das vereinfachen kann, KV kenne ich,... aber bei 13 Inputs ist das nicht mehr möglich. Grüße Sebastian
Das ist ganz einfach. Führe einfach einen Quine-McCluskey Algorithmus auf der Logiktabelle aus. Damit bekommst du eine Minimale DNF für deine Logikfunktion. Den QMC Algo gibts bestimmt auch als interaktives Applet irgendwo im Netz.
Sebastian schrieb: > aber bei 13 Inputs ist das nicht mehr möglich. Ohne wenigstend die Hälfte der Pins anhand der Funktion (Handbetrieb, Notstop, Dauerbetrieb, Pulsen...) wegreduzieren zu können, hast du keine Chance. > ich möchte ja auch die Funktion verstehen, Dazu muss man so viel wie möglich vom System wissen: woher kommen die Eingänge und was wird wie damit geschaltet. > Dafür 8k LUT ist massiver Overkill Ein kleines EPROM... > Ich habe eine Logik mit 13 Digitalen Inputs und einem Output Wie (welche Bausteine, Technologie) ist die aufgebaut?
Mir normalen Mitteln hast du da meines Erachtens keine Chance. Die Tatsache, dass die Funktion rein kombinatorisch ist, schränkt natürlich die Möglichkeiten ein. Aber selbst wenn du das alles zusammenfasst und mit KV vereinfachst, hast du vermutlich immer noch nicht den Sinn der Schaltung begriffen. Es könnten ja auch Verknüfpungen wie Ausgang = 1 wenn slice(3..0) größer als slice(7..4) darin verborgen sein. Diese kannst du dann zwar über die Vereinfachung zu einer DNF darstellen, aber der DNF siehst du dann die eigentliche Funktion (nämlichen den Vergleicher) auch nicht direkt an.
Hallo Klaus, Quine McClusky hab ich mir auch an sehen, hast Du das schon mal in Matlab,... programmiert oder kennst Du eine gute Anleitung? Vielen Dank Grüße Sebastian
Sebastian schrieb: > Quine McClusky hab ich mir auch an sehen, hast Du das schon mal in > Matlab,... programmiert oder kennst Du eine gute Anleitung? Du greifst offenbar nach jedem so dahingeworfenen Strohhalm. Die anderen Posts hast du auch gelesen? Wenn du unbedingt Kombinatorik sehen willst, dann hacke die Tabelle in ein Synthesetool und lass dir den RTL-Schaltplan anzeigen. Das sieht dann z.B. so aus wie im Beitrag "Re: Alternative Zählerbeschreibung"
Für dein Problem müsste eigentlich "Logic Friday" http://sontrak.com/ passen. Das Programm ist frei und kann Ausdrücke und Wahrheitstabellen mit 16 Inputs und Output minimieren und auf frei wählbare Logikgatter mappen. Die Wahrheitstabelle kannst du per CSV importieren.
Lothar Miller schrieb: > Du greifst offenbar nach jedem so dahingeworfenen Strohhalm. Die anderen > Posts hast du auch gelesen? Was ist daran ein Stohhalm? Mit der Methode bekommt man ein Ergebnis als minimale Schaltung aus UND und ODERs. Evtl. reicht das Sebastian ja schon. Und die funktionalität der Schaltung zu analysieren geht mit der minimierten Form ganz sicher auch schneller als mit einer 8192 Zeilen großen Tabelle! http://sontrak.com/ sieht doch ziemlich gut aus. Hab ich noch nicht ausprobiert. Aber von der Beschreibung her könnte das genau das richtige sein.
Klaus schrieb: > Und die funktionalität der Schaltung zu analysieren geht mit > der minimierten Form ganz sicher auch schneller als mit einer 8192 > Zeilen großen Tabelle! Die Funktionalität einer Schaltung ermittelt man am besten, wenn sie im Gerät eingebaut ist. Und wenn es nur darum geht, ein obsoletes Logikgrab abzulösen, dann ist die Funktion uninteressant und die EPROM Methode die einfachste. Da kann man auch ganz einfach die Funktion ändern, wenn das mal nötig wäre. Nicht umsonst sind FPGAs intern auch mit 4:1 oder 6:1 RAMs (aka. LUT) ausgestattet. > http://sontrak.com/ sieht doch ziemlich gut aus. Hab ich noch nicht > ausprobiert. Aber von der Beschreibung her könnte das genau das richtige > sein. Ich musste mir das Ding auch gleich bookmarken... ;-)
Hallo, eigentlich ist es C Code, aber derart geschrieben das ihn keiner versteht und Doku gibts nicht. Also war meine Idee den Logik Brute Force Weg zu gehen um Erkenntnisse zu gewinnen. Grüße Sebastian
C-Code? Was ist das denn schon wieder für eine Salamitaktik? Poste doch mal diesen ominösen Code...
Das klingt jetzt wirklich spannend. Ein paar so verworrene Zeilen C, die es wert sind, stimuliert zu werden, um dann anhand der paartausend Kombinationsmöglichkeiten die Funktion dieser Zeilen zu verstehen.. es bleibt spannend ;-)
Hallo, da ich Hw entwickelt hab sind mir Fpga's vertraut. C Code Posten geht nicht, würde auch nichts bringen, selbst mit System Verständnis bin ich gescheitert. Das haben Generationen an Entwicklern zusammengemurkst. Absoluter Pfusch. Ich werde versuchen am Wie QMC zu drauf anzuwenden bzw. das Tool. Grüße Sebastian.
Sebastian schrieb: > das sind vieleicht 20 UND und 5 ODER Gatter, mehr ist es nicht. Dafür 8k > LUT ist massiver Overkill, ich möchte ja auch die Funktion verstehen, > ein paar Dinge sind überliefert, aber eben nicht allen, und so hänge ich > da mit einer "Obfuscated" Logik und Halbwissen. Wer redet von LUT? BRAM!
Fetz schrieb: > Wer redet von LUT? > > BRAM! Ein BRAM ist funktionell nichts anderes als eine riesige LUT. Er schrieb nichts davon, die 8k aus den LUTs in den FPGA Logic Array Zellen zu bauen. Und auch ein BRAM wäre massiver overkill, wenn sich die Funktion tatsächlich vereinfachen ließe. Denn BRAM ist auf FPGAs je nach Anwendung häufig auch sehr knapp bemessen.
Klaus schrieb: > Ein BRAM ist funktionell nichts anderes als eine riesige LUT. Der Unterschied ist halt, dass ein BRAM (sogut wie keine) Logikresourcen braucht ...
Fetz schrieb: > Der Unterschied ist halt, dass ein BRAM (sogut wie keine) Logikresourcen > braucht ... Die umgangssprachliche "LUT" umfasst alles, was ein Nachschlagewerk in Tabellenform ist. Das geht dann in der (elektronischen!) Praxis von den kleinen 16x1 RAMs im FPGA (von denen kaum jemand etwas weiß) bis zu riesigen Transformationstabellen, die gern auch mal ein paar MB Platz einnehmen können. So wird ein uC Programmierer eine LUT immer in seinem RAM/ROM suchen. Und es ist die früher immer in Reichweite liegende Logarithmentafel genauso eine LUT wie eine Sinustabelle... http://de.wikipedia.org/wiki/Lookup-Tabelle Dass z.B. für die Realisierung einer DDFS in einem FPGA neben der "großen" Wellenform-LUT noch zig "winzige" LUTs für die Kombinatorik braucht, kümmert keinen. Wenn jemand sagt: für einen andere Wellenform musst du den Inhalt der LUT ändern, dann ist sofort klar, welche der 827 LUTs damit gemeint ist...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.