Guten Abend, ich habe die Aufgabe, einen DDS-Sinus-Generator zu programmieren und dazu die RT-Ebene größtenteils fertig. Allerdings komme ich bei der algorithmischen Ebene, die auch verlangt ist, nicht voran. In Skripten meiner Uni und online habe ich bisher nur Allgemeinplätze dazu gefunden und kann mir einfach nicht plausibel machen, was am Code/an der Vorgehensweise der Unterschied zur RT-Ebene ist. Etwas zu programmieren, was nicht synthetisiert werden kann, ist für mich kontraintuitiv. Ich denke, mein Problem liegt nur bei der Form, d.h. formellen Kriterien des Professors. Könntet ihr mir beim Ansatz helfen? Was gehört in die algorithmische Ebene, was keinesfalls? Könnt ihr mir Beispiele geben? Was muss ich konkret beim Sinus beachten? Kann ich einfach den sin aus der math_real nehmen und simulieren?
Zayna Maseem schrieb: > Etwas zu programmieren, > was nicht synthetisiert werden kann, ist für mich kontraintuitiv. Die Nutzung einer algorithmischen Ebene impliziert nicht, daß das Ergebnis der Beschreibung, wenn nicht sogar die Beschreibung selbst, nicht direkt oder indirekt in irgendeiner Form synthetisierbar wäre. Es handelt sich lediglich um eine andere Beschreibungsform, desselben Sachverhalts mit (hoffentlich) dem gleichen Informationsgehalt. Zur algorithmischen Ebene gehören für mich die mathematischen, booleschen und sequenziellen Beschreibungsformen. Dein Prof wird gfs eine abweichende Haltung haben. Du weisst ja: 3 Digital-Theoretiker: 5 Meinungen! In Deinem Fall könnte die DDS so aussehen: Y(PHASE) = INT (AMPLITUDENAUFLOESUNG x SINUS(INT (2 x PI x INT ((PHASENAUFLOESUNG x PHASENVEKTOR + 0,5) / PHASENAUFLOESUNG + 0,5) / TABELLENLAENGE + (0,5 / TABELLENLAENGE))) + 0,5) / AMPLITUDENAUFLOESUNG und dies für alle Phasen für die gilt : 0<= Phase <= 2PI. Das sollte es eigentlich gewesen sein. FSMs haben wir keine und eine pipeline würde ich das nicht nennen. Wenn Du protzen möchtest, vewendest Du für die Darstellung den Allquantor. Achtung: keine Gewähr auf Formeln nach Mittenacht! Zu Sinn des für einige oft sonderbaren Offsets bei der Phase (0,5 / TABELLENLAENGE) siehe Digitale Sinusfunktion Die RT-Ebene ist dann der Punkt, wo man beginnt, die Phase in 4 Teile zu zerlegen und die Quartile zu spiegeln, Vektoren zu verwenden, statt Integer etc. Und vor allem splittet sich an dieser Stelle die Formel derart auf, dass der äussere Teil als Tabelle abgelegt wird (oder eben auch nicht). Aber die RTE hast Du ja schon. Du kannst Dir jetzt mal den Spass machen, o.g. Formel für die Punkte t und t+1 zu formulieren, um dann den Rest, der im zweitinnersten INT-Konstrukt weggerundet wird, dazu zu verwenden, die Punkte zu interpolieren. Der Einfachheit halber solltest Du dann meinen Spezialoffset weglassen.
Zayna Maseem schrieb: > Was muss ich konkret beim Sinus beachten? Kann ich einfach den sin aus > der math_real nehmen und simulieren? Wie gesagt: du kannst ihn sogar zur Synthese verwenden. Nur sollte der resultierende wert dann kein float mehr sein, sondern sich "einfach" als Bitmuster darstellen lassen. Die von Jürgen angesprochene Sinusberechnung habe ich dort implementiert: http://www.lothar-miller.de/s9y/categories/31-DDFS Interessant ist für dich der Abschnitt:
1 | use ieee.math_real.all; |
2 | :
|
3 | type Rom64x8 is array (0 to 63) of signed (7 downto 0); |
4 | -- Sinus von 0° bis 90° (0 bis PI/2)
|
5 | signal Sinus_Rom : Rom64x8; |
6 | :
|
7 | table: for i in 0 to 63 generate |
8 | Sinus_Rom(i) <= to_signed(integer( sin(2.0*MATH_PI*(real(i)+0.5)/256.0) *127.5),8); |
9 | end generate; |
Juergen S. schrieb: > Y(PHASE) = INT (AMPLITUDENAUFLOESUNG x SINUS(INT (2 x PI x INT > ((PHASENAUFLOESUNG x PHASENVEKTOR + 0,5) / PHASENAUFLOESUNG + 0,5) / > TABELLENLAENGE + (0,5 / TABELLENLAENGE))) + 0,5) / AMPLITUDENAUFLOESUNG Warum bildest Du den INT vor dem Sinus? Lothar macht es richtig, erst real und dann runden, oder was soll das?
Zayna Maseem schrieb: > Was gehört in die algorithmische > Ebene, was keinesfalls? Könnt ihr mir Beispiele geben? Hörts sich sehr theoretisch an, was sagt denn Dein Prof? Meines Wissens gibt es keine Norm, was da rein gehört.
Ralf schrieb: > Hörts sich sehr theoretisch an, was sagt denn Dein Prof? Das würde mich auch interessieren.
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.