Wie erstelle ich Lookup-Tabelle für die Sünde (4 (pi) x) in VHDL?

R

rajeswari01

Guest
Hallo, wie schaffen-Look für die Sünde (4 (pi) x) und cos (20 (pi) x) in VHDL, ist der X-Bereich -4: 1 / 32: 4 ... Das bedeutet, 256 Werte .. mir jemand helfen ...
 
Meist MATLAB ist in solchen Fällen verwendet ..... Sie eine einfache MATLAB-Code, um diese Sünde & cos Werte erhalten dann in Xilinx (hoffe, Sie sind mit Xilinx) instanziieren LUT oder Block-RAM, um diese Werte speichern zu schreiben.
 
Ein möglicher Weg ist die Tabelle in VHDL bei der Kompilierung, wie in der unten gezeigten Beispiel berechnen. (Es ist ein 0 .. pi Sinus Tabelle, nicht die Lösung für Ihr Problem).
Code:
 TYPE SINTAB ist array (0 bis ROMSIZE-1) der std_logic_vector (NNCO-2 DOWNTO 0); SIGNAL SINROM: SINTAB; BEGIN GENROM: FÜR idx in 0 bis ROMSIZE-1 GENERATE CONSTANT x: REAL: = SIN (real (idx) * MATH_PI / real (ROMSIZE)); CONSTANT xn: UNSIGNED (NNCO-2 DOWNTO 0): = CONV_UNSIGNED (INTEGER (x * real (ROMMAX)), NNCO-1); BEGIN SINROM (idx)
 
Warum nicht ähnlich FVM Idee, aber das Setup in einer Funktion, da man eine konstante anstelle eines Signals zuweisen können. Außerdem haben Sie einen Blick in den Fixpunkt Pakete so müssen Sie nicht vergessen, wo halten sich die fraktionierte Bits, wenn Sie die Werte zu speichern in eine vorzeichenlose.
 
aber das Setup in einer Funktion, da man eine konstante anstatt ein Signal
Eine Funktion ist möglicherweise die flexibler zuweisen können, und nicht auf selten genutzte VHDL Konstrukte, die berufen sind meist durch ignoriert Text Bücher. Der Unterschied zwischen einem Signal und einem konstanten nicht für die tatsächliche Umsetzung LUT Angelegenheit. Mein Beispiel wird in der Regel verursachen ROM Folgerung, wenn sie von der jeweiligen Hardware unterstützt wird, und nicht explizit in den Compiler-Einstellungen verboten, und ein LUT in Logikzellen anders. Das gleiche kann für eine konstante Werte liefert Funktionen erwarten. Sie brauchen nicht unbedingt eine vollständige Fixpunkt Paket, aber Sie sollten verstehen, wie die Sinus-Bereich von -1,0 .. + 1,0 kann durch ganze Zahlen dargestellt werden. Es ist meist eine Frage der Ihre gesamte Design, was die Tabellenwerte für benutzt werden.
 
Hallo, Vielen Dank für alle ....[ COLOR = "Silver"] [SIZE = 1 ]---------- Post um 12:18 ---------- Previous post aufgenommen um 12:09 ----------[/SIZE] [/color] Eigentlich ist die Gleichung f (x) = 21,5 + x sin (4πx) + x cos (20πx). der x zwischen -4 bis +4, wo der maximale Wert dieser Gleichung ... Der maximale Wert ist 28,25 ... wird VHDL-Code für diese Gleichung schreiben ... ist es posssible auf 28,25 in einem Ausgang (Xilinx) zeigen?
 
sorry .. Wie 28,25 in binärer vertreten? welche Methode zu verwenden?
 
Sie können unabhängig Vertretung Sie wollen - in der Regel Menschen Stick mit schwimmenden oder festen Punkt. Sie könnten die Gleichung zur Erzeugung einer Tabelle mit Blick in VHDL ganz einfach, aber Sie müssen entscheiden, ob Sie Punkt-oder Gleitkomma für die Ausgabe wünschen fixiert. Der Eingang (X) müssen Fixpunkt werden.
 
Sie verwenden, was Sie wollen Darstellung kann - in der Regel Menschen Stick mit schwimmenden oder festen Punkt. Sie könnten die Gleichung zur Erzeugung einer Tabelle mit Blick in VHDL ganz einfach, aber Sie müssen entscheiden, ob Sie Punkt-oder Gleitkomma für die Ausgabe wünschen fixiert. Der Eingang (X) müssen Fixpunkt werden.
ist es möglich, in Gleitkomma für Ein-und Ausgang zu tun?
 
Ausgang ja. Input - du kannst das nicht voller Genauigkeit (32 Bit) Gleitkommazahlen als würde dies eine 4GB Nachschlagetabelle. Sie können Exponent und Mantisse Breite etwas mehr sinnvoll, die Nachschlagetabelle Größe (insgesamt maximal 20 Bits auf großen teuren FPGAs) zu reduzieren. Aber im Allgemeinen, nein. Sein leichter, mit festen Punkt-Stick.
 
In theroetically, für die Eingabe X = -3,6563 coresponding die Ausgabe y 28,25 .. Wie wird diese Ausgabe in Xilinx FPGA und KIT zeigen?

<span style="color: grey;"><span style="font-size: 10px">---------- Post hat um 12:38 ---------- zurück Nachricht wurde um 12:29 ----------</span></span>
ist es möglich in VHDL ist?
 
Es scheint mir, dass ein 8-Bit Festkomma Darstellung bereits durch die Ausübung Text vorgeschlagen, zB 3,5 für x und 6,2 für y. Das Ziel ist offenbar auf den Grundsatz Methode zeigen, nicht auf hohe Genauigkeit zu erreichen.
 
Beide Werte können leicht (oder sehr closly) in 8 Bit-Festkomma vertreten sein.
 
ok .. für x -1 und 1 .. der Wert der Sünde (4 (pi) x) ist '0 '... sinn (pi) ist '0'. für alle Wert von x .. Sünde Wert '0 '.. dann, wie vorgehen?
 
Ein Fixpunkt Tabelle für die Sünde (4 x pi) mit 8 Bit-Festkomma unterzeichnet Werte möchte diese
Code:
 xi x Sünde blicken (4Pi x) sin_4pix_i -128 -4,000 0 0 -127 -3,969 0,098 13 ... -112 -3,500 1,000 127 (gesättigt) ... -1 -0,031 -0,098 -13 0 0,000 0,000 0 ... 127 3,969 -0,098 -13
Wenn nicht nutzen VHDL zu berechnen, wie bereits angedeutet, Verwendung einer Tabellenkalkulation Rechner.
 
Die Skalierung für x ist bereits in der ursprünglichen Nachricht vorgeschlagen. Die y-Skalierung ist offensichtlich von der sin ()-Bereich.
 
Hier ist, wie ich es mit Python auf den Tisch zu erzeugen, mit Hilfe eines initialisiert Xilinx RAM64X1S, um die Werte zu halten. Es ist in Verilog, aber Umwandlung in VHDL sollte einfach sein. [Url = http://excamera.com/sphinx/fpga-RAM64X1Ssin.html] RAM64X1S als Sinus-ROM [/url]
 

Welcome to EDABoard.com

Sponsor

Back
Top