Jak vytvořit vyhledávací tabulku pro sin (4 (pi) x) ve VHDL?

R

rajeswari01

Guest
ahoj, jak vytvořit LOOKUPTABLE za hřích (4 (pi) x) a cos (20 (pi) x) ve VHDL, x rozsah je -4: 1 / 32: 4 ... tj. 256 hodnot .. Každý, kdo mi pomohl ...
 
MATLAB je většinou používán v takových případech ..... vám napsat jednoduchý MATLAB kód, jak dostat tyto sin a cos hodnot pak v Xilinx (doufám, že používáte Xilinx) instantiate LUT nebo blokových RAM k uložení těchto hodnot.
 
Jedním z možných způsobů je výpočet tabulky ve VHDL v době kompilace, jak je znázorněno na následujícím příkladu. (Je to 0 .. pi sine stůl, není řešení vašeho problému).
Code:
 TYP SINTAB je pole (0 až ROMSIZE-1) O STD_LOGIC_VECTOR (NNCO-2 downto 0); SIGNAL SINROM: SINTAB; BEGIN GENROM: ZA idx v rozsahu 0 až ROMSIZE-1 x tvořit konstantu: REAL: = sin (v reálném (idx) * MATH_PI / reálný (ROMSIZE)), stálé xn: unsigned (NNCO-2 downto 0): = CONV_UNSIGNED (INTEGER (x * reálné (ROMMAX)), NNCO-1); BEGIN SINROM (idx)
 
Proč bychom neměli udělat podobný nápad MKO, ale to nastavení uvnitř funkce, tak můžete přiřadit konstantní namísto signálu. Také, podívejte se do pevného bodu balíčků, takže si dont mít na paměti, kde se frakční kousky jsou při ukládání hodnot v nepodepsaný.
 
ale nastavení uvnitř funkce, tak můžete přiřadit konstantní namísto signálu
Funkce je možná pružnější způsob, a nespoléhá se na zřídka používané VHDL pojmy, které jsou většinou ignorovány text knihy. Rozdíl mezi signálem a konstantní nezáleží na skutečné LUT realizaci. Můj příklad se obvykle způsobí ROM závěru, kdy podporovány příslušnými hardware, a ne výslovně zakázáno kompilátor nastavení a LUT v logice buňkách jinak. Totéž lze očekávat u funkcí napájení konstantní hodnoty. Nemusíte nutně potřebovat plnou pevným bodem balíčku, ale měli byste pochopit, jak sine rozmezí -1,0 .. + 1.0 mohou být reprezentovány celými čísly. Je to hlavně otázka vašeho celkového designu, jaké hodnoty v tabulce se používají pro.
 
Ahoj, Díky za všechny ....[ COLOR = "Silver"] [SIZE = 1 ]---------- Odeslat zní v 12:18 ---------- Předchozí příspěvek byl v 12:09 ----------[/SIZE] [/COLOR] ve skutečnosti, je rovnice f (x) = 21,5 + x sin (4πx) + x cos (20πx). x rozmezí -4 až +4, najít maximální hodnota této rovnice ... maximální hodnota je 28,25 ... se psát VHDL kód pro tuto rovnici ... je to posssible ukázat 28,25 do výstupu (Xilinx)?
 
sorry .. Jak 28,25 zastoupeny v binární? jakou metodu použít?
 
Můžete použít cokoliv reprezentace chcete - obvykle lidé držet s plovoucí nebo pevný bod. Dalo by se použít k vytvoření rovnice podívat do tabulky v VHDL docela snadno, ale musíte se rozhodnout, jestli chcete, pevný bod, nebo s plovoucí desetinnou čárkou pro výstup. Vstup (X) bude muset být pevný bod.
 
Můžete použít cokoliv reprezentace chcete - obvykle lidé držet s plovoucí nebo pevný bod. Dalo by se použít k vytvoření rovnice podívat do tabulky v VHDL docela snadno, ale musíte se rozhodnout, jestli chcete, pevný bod, nebo s plovoucí desetinnou čárkou pro výstup. Vstup (X) bude muset být pevný bod.
je možné dělat v plovoucí desetinnou čárkou pro vstup a výstup?
 
Výstup ano. Vstup - nemůžete udělat maximální přesnosti (32 bit) s plovoucí desetinnou čárkou, jak by to vyžadovalo 4GB vzhled tabulky. Můžete snížit exponent a mantisa šířku něco rozumnější snížit podívat do tabulky velikostí (celkem max. 20 bitů na velké drahá zařízení FPGA). Ale obecně, ne. Jeho snadnější držet s pevným bodem.
 
V theroetically, pro vstup X = -3,6563 coresponding na výstup y je 28,25 .. Jak se ukažte tento výstup v Xilinx FPGA a KIT?

<span style="color: grey;"><span style="font-size: 10px">---------- Odeslat zní v 12:38 ---------- Předchozí příspěvek byl v 12:29 ----------</span></span>
je to možné ve VHDL?
 
Zdá se mi, že 8-Bit pevný bod reprezentace je již navrhuje výkon text, např. 3,5 pro x a 6,2 pro y. Cílem je zřejmě ukázat princip metody, ne pro dosažení vysoké přesnosti.
 
obě hodnoty lze snadno (nebo velmi closly) je zastoupena v 8 bitů pevného bodu.
 
ok .. pro x = -1 a 1 .. hodnotu sin (4 (pi) x) '0 '... Sinn (pi) je '0'. pro všechny hodnoty x .. hříchu hodnotu '0 '.. jak potom postupovat?
 
Pevný bod tabulky pro sin (4 pi x) s 8 bit pevný bod podepsal hodnoty, bude vypadat takto
Code:
 xi x sin (x 4pi) sin_4pix_i -128 -4,000 0 0 -127 -3,969 0,098 13 ... -112 -3,500 1,000 127 (nasycených) ... -1 -0,031 -0,098 -13 0 0,000 0,000 0 ... +127 +3.969 -0.098 -13
Pokud není využitím VHDL k jejímu výpočtu, jak již bylo naznačeno, použijte šíření list kalkulačka.
 
Měřítka pro x je již navrženo v původní místo. Y škálování je zřejmý hřích () rozsah.
 
Zde je, jak jsem to pomocí Pythonu vytvářet tabulky s použitím inicializované Xilinx RAM64X1S držet hodnot. Je v Verilog, ale přeměňovat to na VHDL by mělo být snadné. [Url = http://excamera.com/sphinx/fpga-RAM64X1Ssin.html] RAM64X1S jako sinusoida ROM [/url]
 
Díky .. Jak převést -3,9688 do 8-bitové binární číslo?
 

Welcome to EDABoard.com

Sponsor

Back
Top