Multiplizieren mit einem einfachen einzelnen UND Gatter ! Simulation Tausend mal schneller als mit jedem Computer ! Zwei Digitale Eingangswerte mit nBit Breite werden mit einem Zufallsgenerator pro takt verglichen. Ist der Eingangswert größer oder gleich dem Zufallswert wird das Ausgangssignal 1 im anderem Fall 0. Dies entspricht dem digitalen Poti. Man kann sich das vorstellen wie bei der Pulsweitenmodulation (PWM) nur das die Einschaltzeiten zufällig verstreut liegen. (Ich sag mal dazu Bitstrom) Wenn man jetzt beide Ausgangs Bitströme mit UND verknüpft liegt am Ausgang vom UND Gatter der Bitstromwert der Multiplikation von den Digitalen Eingangsgrößen. Wird der Bitstrom wieder Integriert erhält man mit einer zeitkonstante den Wert. Das ganze habe ich für eine Simulation "gedämpfter Schwingung" in VHDL mit einem FPGA implementiert und es funktioniert! Viele Tausende solcher Multiplikationen und Integratoren würden für die Simulation oder Regelung auf einen FPGA oder ASICS passen wie bei den alte elektronische Analogrechnern. Pro Takt würde die gesamte Simulation neu berechnet werden und damit viel schneller als jeder Computer da ja alles zur gleichen Zeit berechnet wird! Mich würde interessieren ob es das schon gibt. Die Idee finde ich super, habe dies bezüglich noch nichts im Internet gefunden. Euro Meinung würde mich interessieren!
Schon die Integration macht jeden Zeitvorteil wieder kaputt.
Bin zwar kein Mathematiker! Aber Integration ist Basis der Simulation und wird mit Differential bzw. Integralgleichungen gelöst!
Hört sich für mich wie eine Art Zweikanal-Sigma-Delta-Wandler an.
Das Ganze als PDF etwas anschaulicher und ich hoffe auch etwas verständlicher. Ich hoffe das mit den Dateianhang klappt!
Ich habe immer noch nicht verstanden, was du sagen willst. Du erzeugst zwei Bitströme bei denen die Wahrscheinlichkeit für eine 1 gleich dem Wert eines Potis ist. Durch die AND-Verknüpfung erzeugst du einen Bitstrom bei dem nur eine 1 erscheint, wenn bei beiden Eingangsbitströmen auch eine 1 ist. Nach den Regeln der Stochastik ist da also die Wahrscheinlichkeit für eine 1 das Produkt aus den Wahrscheinlichkeiten für eine 1 aus den Bitströmen. Wenn du das über eine laaaaaaaaaaange Zeit mittelst,kommt das Produkt der beiden Eingangswerte heraus. O.K. Aber was soll das? Ist doch hochkompliziert. Wie erzeugst du so schnell zuverlässige Zufallszahlen? Und die Genauigkeit aufgrund statistischer Schwankungen steigt nur mit der Quadratwurzel der Ereignisse bzw. Integrationszeit. Für 10bit Genauigkeit müsstest du das Ganze also etwa 1 Million mal durchlaufen, fur 16bit 65 Millionen mal. Das Verfahren ist absolut unpraktisch und deshalb auch nie irgendwo eingesetzt.
Ja hallo erstmal, als ich erstmals gelesen habe, hatte ich gehofft, daß es eine neue, schöne Variante wäre einen Potiwert zu digitalisieren. Da es aber nur darum geht den "DIGITALEN" Wert von zwei Quellen zu erkennen, dafür nur ein UND-Gatter zu verwenden, was ich mir aber erkaufe mit viel drumrum Logik, erkenne ich den Sinn nicht. Daß das gehen wird sehe ich schon, aber wo ist der entscheidende Vorteil? Hättest Du das nicht mit einem Eval-Board mit FPGA, sondern von Hand aufgebaut, sähe die Sache anders aus. Falls ich was nicht erkannt/begriffen habe, kläre mich bitte auf. Gruß ts
Diese Vorgehensweise entspricht einer Reise von Frankfurt nach München mit Zwischenstopp in Las Vegas. Man kann, wenn man Gatter sparen will und viieeeeell Zeit hat, den Multipliaktionsalgorithmus als Rekursion formulieren und mit einem schnöden Addierer realsieren. Diesen wiederum kann man als Schieberegister bauen und ein-zwei wenigen Gattern am Ausgang. Man braucht halt viele kleine Speicher und Multiplexer. Diese Technik empfiehlt sich dann ,wenn unsere Bundesregierung irgendwann mal eine Steuer auf embedded multiplier erheben sollte, oder die GEZ Gebüren auf FPGAs erhebt. Was mich mal interessieren würde: Welches Board ist das bitte ?
Hallo, der Gedanken Ansatz ist vielleicht sehr abstrakt. Die Zwei Bitströme sind natürlich nur stellvertreten für eine viel komplexere Simulation. Stell dir vor die einzelnen Bits sind Elektronen und fließen durch diese Simulation. Alles müsste natürlich zwischen 1,0 und 1,0 normalisiert sein. Da ich in Wirklichkeit natürlich zwei Signalleitungen verwende, eine für den Bitstrom (Wert) und eine fürs Vorzeichen. Z.Z erzeuge ich die Zufallszahlen von einem ROM und schiebe sie seriell durch alle Poti und Integrierer. Vorstellbar wäre auch (Linear Feedback Shift Register, LFSR). Damit aber nicht der gleiche Wert nach 16 Takten am nächsten Poti oder Integrierer ist, das ganze auch noch von rückwärts in die Simulation und mit XOR verknüpft. Schau Dir doch mal die gedämpfte Schwingung an hier werden die oberen 8bit von 16Bit Integer verwendet für die Y-Achse 480Pixel (640x480 Pixel). Sicherlich die Genauigkeit ist Abhängig von dem Zeitfenster aber die Bits werden ja kontinuierlich durch die gesamte Simulation geschoben! Wie bei den alten Analogrechner. Java Source Code für Eclipse zum rumspielen (Bin kein Java Programmierer)
Hallo Jürgen, das Board ist von TERASIC T-Rex mit einen Altera Cyclone 1 EP1C6Q240CB hab ich mir im Frühjahr aus Taiwan schicken lassen.
Das Verfahren wurde so ähnlich für DA-Wandler vorgeschlagen. Ein Binärzähler, ein Prioritätsencoder und ein 1-aus-8 Multiplexer erzeugen ein pulsbreitenmoduliertes Signal, das das Produkt des Zählers mit dem DA-Wandler-Eingang bildet, sehr unübersichtlich. Auch hier muß am Ausgang gefiltert werden. Aus "Fairchild, The TTL Applications Handbook Aug. 1973"
ja, seufz, damals - so kurz nach dem Krieg - gab es halt keine seriellen high-speed DACs. Da musste gespart werden :-)
Um mehrere PWM-Ausgänge in ein FPGA zu bekommen, wäre das doch eine Alternative. Pro Ausgang wird nur ein n-zu-1 Multiplexer gebraucht. Die Schaltung eignet sich auch zur feinstufigen Frequenzteilung ähnlich einem DDS. Einfach das Ausgangssignal des Multiplexers mit dem Taktsignal verUNDen. Die Ausgangsfrequenz ist hier Taktfrequenz * (n/256), allerdings mit großem Jitter. Es gab die beiden Standard-TTL-Bausteine 7497 "*(n/64)" und 74167 "*(n/10)" und ein CD4xxx die so gearbeitet haben.
CMOS-Typen CD4089 "*(n/16)" und CD4527 "*(n/10)" http://www.alldatasheet.com/datasheet-pdf/pdf/22352/STMICROELECTRONICS/HCF4089B.html http://www.alldatasheet.com/datasheet-pdf/pdf/22366/STMICROELECTRONICS/HCF4527B.html
Warum aber einen Zufallsstrom von Bits ? Wenn du 16 Bit abtatstenn möchtest dann sollte mit deiner Methode mit einer Zahlenfolge wie 2^15,2^14,2^13...2^1,2^0 verglichen werden. Gruß Hagen
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.