OpenCores
URL https://opencores.org/ocsvn/graphiti/graphiti/trunk

Subversion Repositories graphiti

[/] [graphiti/] [trunk/] [xilinx/] [dds_sinus.vhd] - Rev 8

Compare with Previous | Blame | View Log

-------------------------------------------------------------------------------
--	MiniGA
--  Author: Thomas Pototschnig (thomas.pototschnig@gmx.de)
--
--  License: Creative Commons Attribution-NonCommercial-ShareAlike 2.0 License
--           http://creativecommons.org/licenses/by-nc-sa/2.0/de/
--
--  If you want to use MiniGA for commercial purposes please contact the author
-------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
 
entity dds_sinus is
    Port ( clk : in std_logic;
           reset : in std_logic;
			  adr : in std_logic_vector (6 downto 0);
			  output1 : out std_logic_vector (15 downto 0));
end dds_sinus;
 
architecture Behavioral of dds_sinus is
 
begin
	process (adr)
	begin
		case adr is
			when "0000000" => output1 <= "0000000011001001"; -- 0.0061
			when "0000001" => output1 <= "0000001001011011"; -- 0.0184
			when "0000010" => output1 <= "0000001111101101"; -- 0.0307
			when "0000011" => output1 <= "0000010101111110"; -- 0.0430
			when "0000100" => output1 <= "0000011100010000"; -- 0.0552
			when "0000101" => output1 <= "0000100010100001"; -- 0.0675
			when "0000110" => output1 <= "0000101000110010"; -- 0.0798
			when "0000111" => output1 <= "0000101111000011"; -- 0.0920
			when "0001000" => output1 <= "0000110101010011"; -- 0.1043
			when "0001001" => output1 <= "0000111011100011"; -- 0.1166
			when "0001010" => output1 <= "0001000001110010"; -- 0.1289
			when "0001011" => output1 <= "0001001000000000"; -- 0.1411
			when "0001100" => output1 <= "0001001110001110"; -- 0.1534
			when "0001101" => output1 <= "0001010100011011"; -- 0.1657
			when "0001110" => output1 <= "0001011010100111"; -- 0.1779
			when "0001111" => output1 <= "0001100000110011"; -- 0.1902
			when "0010000" => output1 <= "0001100110111101"; -- 0.2025
			when "0010001" => output1 <= "0001101101000110"; -- 0.2148
			when "0010010" => output1 <= "0001110011001111"; -- 0.2270
			when "0010011" => output1 <= "0001111001010110"; -- 0.2393
			when "0010100" => output1 <= "0001111111011100"; -- 0.2516
			when "0010101" => output1 <= "0010000101100001"; -- 0.2638
			when "0010110" => output1 <= "0010001011100100"; -- 0.2761
			when "0010111" => output1 <= "0010010001100111"; -- 0.2884
			when "0011000" => output1 <= "0010010111100111"; -- 0.3007
			when "0011001" => output1 <= "0010011101100111"; -- 0.3129
			when "0011010" => output1 <= "0010100011100101"; -- 0.3252
			when "0011011" => output1 <= "0010101001100001"; -- 0.3375
			when "0011100" => output1 <= "0010101111011011"; -- 0.3497
			when "0011101" => output1 <= "0010110101010100"; -- 0.3620
			when "0011110" => output1 <= "0010111011001100"; -- 0.3743
			when "0011111" => output1 <= "0011000001000001"; -- 0.3866
			when "0100000" => output1 <= "0011000110110100"; -- 0.3988
			when "0100001" => output1 <= "0011001100100110"; -- 0.4111
			when "0100010" => output1 <= "0011010010010110"; -- 0.4234
			when "0100011" => output1 <= "0011011000000011"; -- 0.4357
			when "0100100" => output1 <= "0011011101101111"; -- 0.4479
			when "0100101" => output1 <= "0011100011011000"; -- 0.4602
			when "0100110" => output1 <= "0011101000111111"; -- 0.4725
			when "0100111" => output1 <= "0011101110100100"; -- 0.4847
			when "0101000" => output1 <= "0011110100000111"; -- 0.4970
			when "0101001" => output1 <= "0011111001100111"; -- 0.5093
			when "0101010" => output1 <= "0011111111000101"; -- 0.5216
			when "0101011" => output1 <= "0100000100100000"; -- 0.5338
			when "0101100" => output1 <= "0100001001111001"; -- 0.5461
			when "0101101" => output1 <= "0100001111010000"; -- 0.5584
			when "0101110" => output1 <= "0100010100100011"; -- 0.5706
			when "0101111" => output1 <= "0100011001110100"; -- 0.5829
			when "0110000" => output1 <= "0100011111000011"; -- 0.5952
			when "0110001" => output1 <= "0100100100001110"; -- 0.6075
			when "0110010" => output1 <= "0100101001010111"; -- 0.6197
			when "0110011" => output1 <= "0100101110011101"; -- 0.6320
			when "0110100" => output1 <= "0100110011100000"; -- 0.6443
			when "0110101" => output1 <= "0100111000100000"; -- 0.6565
			when "0110110" => output1 <= "0100111101011101"; -- 0.6688
			when "0110111" => output1 <= "0101000010010111"; -- 0.6811
			when "0111000" => output1 <= "0101000111001110"; -- 0.6934
			when "0111001" => output1 <= "0101001100000001"; -- 0.7056
			when "0111010" => output1 <= "0101010000110010"; -- 0.7179
			when "0111011" => output1 <= "0101010101011111"; -- 0.7302
			when "0111100" => output1 <= "0101011010001001"; -- 0.7424
			when "0111101" => output1 <= "0101011110110000"; -- 0.7547
			when "0111110" => output1 <= "0101100011010011"; -- 0.7670
			when "0111111" => output1 <= "0101100111110011"; -- 0.7793
			when "1000000" => output1 <= "0101101100001111"; -- 0.7915
			when "1000001" => output1 <= "0101110000101000"; -- 0.8038
			when "1000010" => output1 <= "0101110100111101"; -- 0.8161
			when "1000011" => output1 <= "0101111001001111"; -- 0.8283
			when "1000100" => output1 <= "0101111101011101"; -- 0.8406
			when "1000101" => output1 <= "0110000001100111"; -- 0.8529
			when "1000110" => output1 <= "0110000101101110"; -- 0.8652
			when "1000111" => output1 <= "0110001001110001"; -- 0.8774
			when "1001000" => output1 <= "0110001101110000"; -- 0.8897
			when "1001001" => output1 <= "0110010001101011"; -- 0.9020
			when "1001010" => output1 <= "0110010101100010"; -- 0.9143
			when "1001011" => output1 <= "0110011001010110"; -- 0.9265
			when "1001100" => output1 <= "0110011101000101"; -- 0.9388
			when "1001101" => output1 <= "0110100000110001"; -- 0.9511
			when "1001110" => output1 <= "0110100100011001"; -- 0.9633
			when "1001111" => output1 <= "0110100111111100"; -- 0.9756
			when "1010000" => output1 <= "0110101011011011"; -- 0.9879
			when "1010001" => output1 <= "0110101110110111"; -- 1.0002
			when "1010010" => output1 <= "0110110010001110"; -- 1.0124
			when "1010011" => output1 <= "0110110101100001"; -- 1.0247
			when "1010100" => output1 <= "0110111000110000"; -- 1.0370
			when "1010101" => output1 <= "0110111011111010"; -- 1.0492
			when "1010110" => output1 <= "0110111111000000"; -- 1.0615
			when "1010111" => output1 <= "0111000010000010"; -- 1.0738
			when "1011000" => output1 <= "0111000101000000"; -- 1.0861
			when "1011001" => output1 <= "0111000111111001"; -- 1.0983
			when "1011010" => output1 <= "0111001010101110"; -- 1.1106
			when "1011011" => output1 <= "0111001101011110"; -- 1.1229
			when "1011100" => output1 <= "0111010000001010"; -- 1.1351
			when "1011101" => output1 <= "0111010010110001"; -- 1.1474
			when "1011110" => output1 <= "0111010101010100"; -- 1.1597
			when "1011111" => output1 <= "0111010111110011"; -- 1.1720
			when "1100000" => output1 <= "0111011010001101"; -- 1.1842
			when "1100001" => output1 <= "0111011100100010"; -- 1.1965
			when "1100010" => output1 <= "0111011110110011"; -- 1.2088
			when "1100011" => output1 <= "0111100000111111"; -- 1.2210
			when "1100100" => output1 <= "0111100011000110"; -- 1.2333
			when "1100101" => output1 <= "0111100101001001"; -- 1.2456
			when "1100110" => output1 <= "0111100111000111"; -- 1.2579
			when "1100111" => output1 <= "0111101001000001"; -- 1.2701
			when "1101000" => output1 <= "0111101010110101"; -- 1.2824
			when "1101001" => output1 <= "0111101100100101"; -- 1.2947
			when "1101010" => output1 <= "0111101110010001"; -- 1.3070
			when "1101011" => output1 <= "0111101111110111"; -- 1.3192
			when "1101100" => output1 <= "0111110001011001"; -- 1.3315
			when "1101101" => output1 <= "0111110010110110"; -- 1.3438
			when "1101110" => output1 <= "0111110100001110"; -- 1.3560
			when "1101111" => output1 <= "0111110101100001"; -- 1.3683
			when "1110000" => output1 <= "0111110110110000"; -- 1.3806
			when "1110001" => output1 <= "0111110111111001"; -- 1.3929
			when "1110010" => output1 <= "0111111000111110"; -- 1.4051
			when "1110011" => output1 <= "0111111001111110"; -- 1.4174
			when "1110100" => output1 <= "0111111010111001"; -- 1.4297
			when "1110101" => output1 <= "0111111011101111"; -- 1.4419
			when "1110110" => output1 <= "0111111100100000"; -- 1.4542
			when "1110111" => output1 <= "0111111101001100"; -- 1.4665
			when "1111000" => output1 <= "0111111101110100"; -- 1.4788
			when "1111001" => output1 <= "0111111110010110"; -- 1.4910
			when "1111010" => output1 <= "0111111110110100"; -- 1.5033
			when "1111011" => output1 <= "0111111111001101"; -- 1.5156
			when "1111100" => output1 <= "0111111111100000"; -- 1.5278
			when "1111101" => output1 <= "0111111111101111"; -- 1.5401
			when "1111110" => output1 <= "0111111111111001"; -- 1.5524
			when "1111111" => output1 <= "0111111111111110"; -- 1.5647
      			when others => output1 <= (others => '0');
		end case;		
	end process;
end Behavioral;
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.