Hallo zusammen,
Ich hab ein Xilinx Spartan 3A Board, ISE 10.1.03
Meine Frage sind:
1. Wie kann ich wissen, welche Version von VHDL ich benutze, ob VHDL 93
oder 2008..
2. Wie kann ich den Paket IEEE.Fixed_Pkg einbinden um zu benutzen?
3. Ich möchte eine Vektor-Drehung um 60° in VHDL implementieren. So ist
meine Vorstellung:
Input : a, b
mit -1 <= a,b <= 1
Bitbreite : 16-bit in fixed-point I2Q14; so dann liegen a und b:
-2 <= a,b < 2 - 2^(-14)
Output : x, y
Bitbreite : 16-bit in fixed-point I2Q14; so liegen dann x und y auch:
-2 <= x,y < 2 - 2^(-14)
====> Drehung um 60°:
x = 1/2*a - sqrt(3)/2*b;
y = sqrt(3)/2*a + 1/2*b;
Ich hab nur einen kleinen Vorschlag für die sqrt(3)-Division gekriegt,
somit braucht man keine Multiplikation und Division mehr.
sqrt(3)~ 1 + 1/2 + 1/4 - 1/64 - 1/512 - 1/2048
Meine Frage ist:
Wie kann ich dies realisieren, wenn ich a,b und x,y als Input,
Output-Port ansehe wie etwa:
1 | library IEEE;
|
2 | use IEEE.STD_LOGIC_1164.ALL;
|
3 | use IEEE.STD_LOGIC_ARITH.ALL;
|
4 | use IEEE.STD_LOGIC_UNSIGNED.ALL;
|
5 | ----------------------------------
|
6 | use IEEE.NUMERIC_STD.ALL;
|
7 |
|
8 | ---- Uncomment the following library declaration if instantiating
|
9 | ---- any Xilinx primitives in this code.
|
10 | --library UNISIM;
|
11 | --use UNISIM.VComponents.all;
|
12 |
|
13 | entity Drehung is
|
14 | port( a,b : in std_logic_vector (15 downto 0);
|
15 | x,y : out std_logic_vector (15 downto 0)
|
16 | );
|
17 | end Drehung;
|
vielen Dank für eure Tips:-)
Gruß