Not enough information. It looks like you think you’re writing software, which you’re not. You need to think about hardware. How are you implementing your multipliers? Are they synchronous?I am writing a vhdl code. Where I have to do multiplication of two std_logic_vectiors. Say a and b. Then I have to take "NOT" of it.
If I write a code like: not a*b; will it work?
----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 10:17:06 01/22/2019
-- Design Name:
-- Module Name: sincos_table - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity sincos_lut is
port
(
clk : in std_logic;
fselect : in std_logic_vector(15 downto 0);
sin_data_16 : out std_logic_vector(16 downto 0);
cos_data_16 : out std_logic_vector(16 downto 0)
);
end sincos_lut;
architecture Behaviour of sincos_lut is
type lut_array_type is array(2**9 downto 0) of
std_logic_vector(15 downto 0);
signal ccount : integer range 1 to 12500;
signal sin_data : std_logic_vector(15 downto 0);
signal cos_data : std_logic_vector(15 downto 0);
signal sin_32 : std_logic_vector(31 downto 0);
signal cos_32 : std_logic_vector(31 downto 0);
signal num : integer range 0 to 2050;
signal sintable : lut_array_type;
signal costable : lut_array_type;
constant yint : std_logic_vector(15 downto 0):="0000010100011001";
constant slope : std_logic_vector(15 downto 0):="0101010000101001";
begin
sintable(0)<="0000000000000000";
costable(0)<="1111111111111111";
sintable(1)<="0000000011001001";
costable(1)<="1111111111111111";
sintable(2)<="0000000110010010";
costable(2)<="1111111111111110";
sintable(3)<="0000001001011011";
costable(3)<="1111111111111101";
sintable(4)<="0000001100100100";
costable(4)<="1111111111111011";
sintable(5)<="0000001111101101";
costable(5)<="1111111111111000";
sintable(6)<="0000010010110110";
costable(6)<="1111111111110100";
sintable(7)<="0000010101111111";
costable(7)<="1111111111110000";
sintable(8)<="0000011001001000";
costable(8)<="1111111111101100";
sintable(9)<="0000011100010001";
costable(9)<="1111111111100111";
sintable(10)<="0000011111011010";
costable(10)<="1111111111100001";
sintable(11)<="0000100010100011";
costable(11)<="1111111111011010";
sintable(12)<="0000100101101100";
costable(12)<="1111111111010011";
sintable(13)<="0000101000110101";
costable(13)<="1111111111001011";
sintable(14)<="0000101011111110";
costable(14)<="1111111111000011";
sintable(15)<="0000101111000110";
costable(15)<="1111111110111010";
sintable(16)<="0000110010001111";
costable(16)<="1111111110110001";
sintable(17)<="0000110101011000";
costable(17)<="1111111110100110";
sintable(18)<="0000111000100001";
costable(18)<="1111111110011100";
sintable(19)<="0000111011101010";
costable(19)<="1111111110010000";
sintable(20)<="0000111110110010";
costable(20)<="1111111110000100";
sintable(21)<="0001000001111011";
costable(21)<="1111111101111000";
sintable(22)<="0001000101000100";
costable(22)<="1111111101101010";
sintable(23)<="0001001000001100";
costable(23)<="1111111101011100";
sintable(24)<="0001001011010101";
costable(24)<="1111111101001110";
sintable(25)<="0001001110011101";
costable(25)<="1111111100111111";
sintable(26)<="0001010001100110";
costable(26)<="1111111100101111";
sintable(27)<="0001010100101110";
costable(27)<="1111111100011111";
sintable(28)<="0001010111110110";
costable(28)<="1111111100001110";
sintable(29)<="0001011010111111";
costable(29)<="1111111011111100";
sintable(30)<="0001011110000111";
costable(30)<="1111111011101010";
sintable(31)<="0001100001001111";
costable(31)<="1111111011010111";
sintable(32)<="0001100100010111";
costable(32)<="1111111011000100";
sintable(33)<="0001100111011111";
costable(33)<="1111111010110000";
sintable(34)<="0001101010100111";
costable(34)<="1111111010011011";
sintable(35)<="0001101101101111";
costable(35)<="1111111010000110";
sintable(36)<="0001110000110111";
costable(36)<="1111111001110000";
sintable(37)<="0001110011111111";
costable(37)<="1111111001011010";
sintable(38)<="0001110111000111";
costable(38)<="1111111001000011";
sintable(39)<="0001111010001110";
costable(39)<="1111111000101011";
sintable(40)<="0001111101010110";
costable(40)<="1111111000010011";
sintable(41)<="0010000000011101";
costable(41)<="1111110111111010";
sintable(42)<="0010000011100101";
costable(42)<="1111110111100000";
sintable(43)<="0010000110101100";
costable(43)<="1111110111000110";
sintable(44)<="0010001001110011";
costable(44)<="1111110110101011";
sintable(45)<="0010001100111011";
costable(45)<="1111110110010000";
sintable(46)<="0010010000000010";
costable(46)<="1111110101110100";
sintable(47)<="0010010011001001";
costable(47)<="1111110101010111";
sintable(48)<="0010010110010000";
costable(48)<="1111110100111010";
sintable(49)<="0010011001010110";
costable(49)<="1111110100011100";
sintable(50)<="0010011100011101";
costable(50)<="1111110011111110";
sintable(51)<="0010011111100100";
costable(51)<="1111110011011111";
sintable(52)<="0010100010101010";
costable(52)<="1111110010111111";
sintable(53)<="0010100101110001";
costable(53)<="1111110010011111";
sintable(54)<="0010101000110111";
costable(54)<="1111110001111110";
sintable(55)<="0010101011111110";
costable(55)<="1111110001011101";
sintable(56)<="0010101111000100";
costable(56)<="1111110000111011";
sintable(57)<="0010110010001010";
costable(57)<="1111110000011000";
sintable(58)<="0010110101010000";
costable(58)<="1111101111110101";
sintable(59)<="0010111000010101";
costable(59)<="1111101111010001";
sintable(60)<="0010111011011011";
costable(60)<="1111101110101100";
sintable(61)<="0010111110100001";
costable(61)<="1111101110000111";
sintable(62)<="0011000001100110";
costable(62)<="1111101101100001";
sintable(63)<="0011000100101100";
costable(63)<="1111101100111011";
sintable(64)<="0011000111110001";
costable(64)<="1111101100010100";
sintable(65)<="0011001010110110";
costable(65)<="1111101011101101";
sintable(66)<="0011001101111011";
costable(66)<="1111101011000101";
sintable(67)<="0011010001000000";
costable(67)<="1111101010011100";
sintable(68)<="0011010100000101";
costable(68)<="1111101001110011";
sintable(69)<="0011010111001001";
costable(69)<="1111101001001001";
sintable(70)<="0011011010001110";
costable(70)<="1111101000011110";
sintable(71)<="0011011101010010";
costable(71)<="1111100111110011";
sintable(72)<="0011100000010111";
costable(72)<="1111100111000111";
sintable(73)<="0011100011011011";
costable(73)<="1111100110011011";
sintable(74)<="0011100110011111";
costable(74)<="1111100101101110";
sintable(75)<="0011101001100010";
costable(75)<="1111100101000000";
sintable(76)<="0011101100100110";
costable(76)<="1111100100010010";
sintable(77)<="0011101111101010";
costable(77)<="1111100011100011";
sintable(78)<="0011110010101101";
costable(78)<="1111100010110100";
sintable(79)<="0011110101110000";
costable(79)<="1111100010000100";
sintable(80)<="0011111000110011";
costable(80)<="1111100001010011";
sintable(81)<="0011111011110110";
costable(81)<="1111100000100010";
sintable(82)<="0011111110111001";
costable(82)<="1111011111110001";
sintable(83)<="0100000001111100";
costable(83)<="1111011110111110";
sintable(84)<="0100000100111110";
costable(84)<="1111011110001011";
sintable(85)<="0100001000000001";
costable(85)<="1111011101011000";
sintable(86)<="0100001011000011";
costable(86)<="1111011100100100";
sintable(87)<="0100001110000101";
costable(87)<="1111011011101111";
sintable(88)<="0100010001000111";
costable(88)<="1111011010111010";
sintable(89)<="0100010100001000";
costable(89)<="1111011010000100";
sintable(90)<="0100010111001010";
costable(90)<="1111011001001101";
sintable(91)<="0100011010001011";
costable(91)<="1111011000010110";
sintable(92)<="0100011101001101";
costable(92)<="1111010111011110";
sintable(93)<="0100100000001110";
costable(93)<="1111010110100110";
sintable(94)<="0100100011001110";
costable(94)<="1111010101101101";
sintable(95)<="0100100110001111";
costable(95)<="1111010100110100";
sintable(96)<="0100101001010000";
costable(96)<="1111010011111010";
sintable(97)<="0100101100010000";
costable(97)<="1111010010111111";
sintable(98)<="0100101111010000";
costable(98)<="1111010010000100";
sintable(99)<="0100110010010000";
costable(99)<="1111010001001000";
sintable(100)<="0100110101010000";
costable(100)<="1111010000001011";
sintable(101)<="0100111000001111";
costable(101)<="1111001111001110";
sintable(102)<="0100111011001111";
costable(102)<="1111001110010001";
sintable(103)<="0100111110001110";
costable(103)<="1111001101010011";
sintable(104)<="0101000001001101";
costable(104)<="1111001100010100";
sintable(105)<="0101000100001100";
costable(105)<="1111001011010100";
sintable(106)<="0101000111001010";
costable(106)<="1111001010010100";
sintable(107)<="0101001010001001";
costable(107)<="1111001001010100";
sintable(108)<="0101001101000111";
costable(108)<="1111001000010011";
sintable(109)<="0101010000000101";
costable(109)<="1111000111010001";
sintable(110)<="0101010011000011";
costable(110)<="1111000110001111";
sintable(111)<="0101010110000001";
costable(111)<="1111000101001100";
sintable(112)<="0101011000111110";
costable(112)<="1111000100001001";
sintable(113)<="0101011011111011";
costable(113)<="1111000011000101";
sintable(114)<="0101011110111000";
costable(114)<="1111000010000000";
sintable(115)<="0101100001110101";
costable(115)<="1111000000111011";
sintable(116)<="0101100100110001";
costable(116)<="1110111111110101";
sintable(117)<="0101100111101110";
costable(117)<="1110111110101111";
sintable(118)<="0101101010101010";
costable(118)<="1110111101101000";
sintable(119)<="0101101101100110";
costable(119)<="1110111100100000";
sintable(120)<="0101110000100010";
costable(120)<="1110111011011000";
sintable(121)<="0101110011011101";
costable(121)<="1110111010001111";
sintable(122)<="0101110110011000";
costable(122)<="1110111001000110";
sintable(123)<="0101111001010011";
costable(123)<="1110110111111100";
sintable(124)<="0101111100001110";
costable(124)<="1110110110110010";
sintable(125)<="0101111111001001";
costable(125)<="1110110101100111";
sintable(126)<="0110000010000011";
costable(126)<="1110110100011100";
sintable(127)<="0110000100111101";
costable(127)<="1110110011010000";
sintable(128)<="0110000111110111";
costable(128)<="1110110010000011";
sintable(129)<="0110001010110001";
costable(129)<="1110110000110110";
sintable(130)<="0110001101101010";
costable(130)<="1110101111101000";
sintable(131)<="0110010000100011";
costable(131)<="1110101110011001";
sintable(132)<="0110010011011100";
costable(132)<="1110101101001011";
sintable(133)<="0110010110010101";
costable(133)<="1110101011111011";
sintable(134)<="0110011001001101";
costable(134)<="1110101010101011";
sintable(135)<="0110011100000101";
costable(135)<="1110101001011010";
sintable(136)<="0110011110111101";
costable(136)<="1110101000001001";
sintable(137)<="0110100001110101";
costable(137)<="1110100110110111";
sintable(138)<="0110100100101101";
costable(138)<="1110100101100101";
sintable(139)<="0110100111100100";
costable(139)<="1110100100010010";
sintable(140)<="0110101010011011";
costable(140)<="1110100010111111";
sintable(141)<="0110101101010001";
costable(141)<="1110100001101011";
sintable(142)<="0110110000001000";
costable(142)<="1110100000010110";
sintable(143)<="0110110010111110";
costable(143)<="1110011111000001";
sintable(144)<="0110110101110100";
costable(144)<="1110011101101011";
sintable(145)<="0110111000101001";
costable(145)<="1110011100010101";
sintable(146)<="0110111011011111";
costable(146)<="1110011010111110";
sintable(147)<="0110111110010100";
costable(147)<="1110011001100111";
sintable(148)<="0111000001001001";
costable(148)<="1110011000001111";
sintable(149)<="0111000011111101";
costable(149)<="1110010110110111";
sintable(150)<="0111000110110001";
costable(150)<="1110010101011110";
sintable(151)<="0111001001100101";
costable(151)<="1110010100000100";
sintable(152)<="0111001100011001";
costable(152)<="1110010010101010";
sintable(153)<="0111001111001101";
costable(153)<="1110010001001111";
sintable(154)<="0111010010000000";
costable(154)<="1110001111110100";
sintable(155)<="0111010100110011";
costable(155)<="1110001110011000";
sintable(156)<="0111010111100101";
costable(156)<="1110001100111100";
sintable(157)<="0111011010011000";
costable(157)<="1110001011011111";
sintable(158)<="0111011101001010";
costable(158)<="1110001010000010";
sintable(159)<="0111011111111011";
costable(159)<="1110001000100100";
sintable(160)<="0111100010101101";
costable(160)<="1110000111000101";
sintable(161)<="0111100101011110";
costable(161)<="1110000101100110";
sintable(162)<="0111101000001111";
costable(162)<="1110000100000110";
sintable(163)<="0111101011000000";
costable(163)<="1110000010100110";
sintable(164)<="0111101101110000";
costable(164)<="1110000001000110";
sintable(165)<="0111110000100000";
costable(165)<="1101111111100100";
sintable(166)<="0111110011010000";
costable(166)<="1101111110000011";
sintable(167)<="0111110101111111";
costable(167)<="1101111100100000";
sintable(168)<="0111111000101110";
costable(168)<="1101111010111110";
sintable(169)<="0111111011011101";
costable(169)<="1101111001011010";
sintable(170)<="0111111110001011";
costable(170)<="1101110111110110";
sintable(171)<="1000000000111010";
costable(171)<="1101110110010010";
sintable(172)<="1000000011100111";
costable(172)<="1101110100101101";
sintable(173)<="1000000110010101";
costable(173)<="1101110011000111";
sintable(174)<="1000001001000010";
costable(174)<="1101110001100001";
sintable(175)<="1000001011101111";
costable(175)<="1101101111111011";
sintable(176)<="1000001110011100";
costable(176)<="1101101110010100";
sintable(177)<="1000010001001000";
costable(177)<="1101101100101100";
sintable(178)<="1000010011110100";
costable(178)<="1101101011000100";
sintable(179)<="1000010110100000";
costable(179)<="1101101001011011";
sintable(180)<="1000011001001011";
costable(180)<="1101100111110010";
sintable(181)<="1000011011110110";
costable(181)<="1101100110001000";
sintable(182)<="1000011110100001";
costable(182)<="1101100100011110";
sintable(183)<="1000100001001011";
costable(183)<="1101100010110011";
sintable(184)<="1000100011110101";
costable(184)<="1101100001001000";
sintable(185)<="1000100110011111";
costable(185)<="1101011111011100";
sintable(186)<="1000101001001000";
costable(186)<="1101011101110000";
sintable(187)<="1000101011110001";
costable(187)<="1101011100000011";
sintable(188)<="1000101110011010";
costable(188)<="1101011010010101";
sintable(189)<="1000110001000010";
costable(189)<="1101011000100111";
sintable(190)<="1000110011101010";
costable(190)<="1101010110111001";
sintable(191)<="1000110110010010";
costable(191)<="1101010101001010";
sintable(192)<="1000111000111001";
costable(192)<="1101010011011011";
sintable(193)<="1000111011100000";
costable(193)<="1101010001101011";
sintable(194)<="1000111110000111";
costable(194)<="1101001111111010";
sintable(195)<="1001000000101101";
costable(195)<="1101001110001001";
sintable(196)<="1001000011010011";
costable(196)<="1101001100011000";
sintable(197)<="1001000101111001";
costable(197)<="1101001010100110";
sintable(198)<="1001001000011110";
costable(198)<="1101001000110011";
sintable(199)<="1001001011000011";
costable(199)<="1101000111000000";
sintable(200)<="1001001101101000";
costable(200)<="1101000101001101";
sintable(201)<="1001010000001100";
costable(201)<="1101000011011001";
sintable(202)<="1001010010110000";
costable(202)<="1101000001100100";
sintable(203)<="1001010101010011";
costable(203)<="1100111111101111";
sintable(204)<="1001010111110110";
costable(204)<="1100111101111010";
sintable(205)<="1001011010011001";
costable(205)<="1100111100000100";
sintable(206)<="1001011100111100";
costable(206)<="1100111010001101";
sintable(207)<="1001011111011110";
costable(207)<="1100111000010110";
sintable(208)<="1001100001111111";
costable(208)<="1100110110011111";
sintable(209)<="1001100100100001";
costable(209)<="1100110100100110";
sintable(210)<="1001100111000010";
costable(210)<="1100110010101110";
sintable(211)<="1001101001100010";
costable(211)<="1100110000110101";
sintable(212)<="1001101100000010";
costable(212)<="1100101110111011";
sintable(213)<="1001101110100010";
costable(213)<="1100101101000001";
sintable(214)<="1001110001000010";
costable(214)<="1100101011000111";
sintable(215)<="1001110011100001";
costable(215)<="1100101001001100";
sintable(216)<="1001110101111111";
costable(216)<="1100100111010001";
sintable(217)<="1001111000011110";
costable(217)<="1100100101010101";
sintable(218)<="1001111010111100";
costable(218)<="1100100011011000";
sintable(219)<="1001111101011001";
costable(219)<="1100100001011011";
sintable(220)<="1001111111110110";
costable(220)<="1100011111011110";
sintable(221)<="1010000010010011";
costable(221)<="1100011101100000";
sintable(222)<="1010000100101111";
costable(222)<="1100011011100010";
sintable(223)<="1010000111001011";
costable(223)<="1100011001100011";
sintable(224)<="1010001001100111";
costable(224)<="1100010111100100";
sintable(225)<="1010001100000010";
costable(225)<="1100010101100100";
sintable(226)<="1010001110011101";
costable(226)<="1100010011100011";
sintable(227)<="1010010000111000";
costable(227)<="1100010001100011";
sintable(228)<="1010010011010010";
costable(228)<="1100001111100010";
sintable(229)<="1010010101101011";
costable(229)<="1100001101100000";
sintable(230)<="1010011000000101";
costable(230)<="1100001011011110";
sintable(231)<="1010011010011101";
costable(231)<="1100001001011011";
sintable(232)<="1010011100110110";
costable(232)<="1100000111011000";
sintable(233)<="1010011111001110";
costable(233)<="1100000101010100";
sintable(234)<="1010100001100110";
costable(234)<="1100000011010000";
sintable(235)<="1010100011111101";
costable(235)<="1100000001001100";
sintable(236)<="1010100110010100";
costable(236)<="1011111111000111";
sintable(237)<="1010101000101010";
costable(237)<="1011111101000001";
sintable(238)<="1010101011000000";
costable(238)<="1011111010111100";
sintable(239)<="1010101101010110";
costable(239)<="1011111000110101";
sintable(240)<="1010101111101011";
costable(240)<="1011110110101110";
sintable(241)<="1010110010000000";
costable(241)<="1011110100100111";
sintable(242)<="1010110100010100";
costable(242)<="1011110010100000";
sintable(243)<="1010110110101000";
costable(243)<="1011110000010111";
sintable(244)<="1010111000111011";
costable(244)<="1011101110001111";
sintable(245)<="1010111011001110";
costable(245)<="1011101100000110";
sintable(246)<="1010111101100001";
costable(246)<="1011101001111100";
sintable(247)<="1010111111110011";
costable(247)<="1011100111110010";
sintable(248)<="1011000010000101";
costable(248)<="1011100101101000";
sintable(249)<="1011000100010111";
costable(249)<="1011100011011101";
sintable(250)<="1011000110101000";
costable(250)<="1011100001010010";
sintable(251)<="1011001000111000";
costable(251)<="1011011111000110";
sintable(252)<="1011001011001000";
costable(252)<="1011011100111010";
sintable(253)<="1011001101011000";
costable(253)<="1011011010101101";
sintable(254)<="1011001111100111";
costable(254)<="1011011000100000";
sintable(255)<="1011010001110110";
costable(255)<="1011010110010010";
sintable(256)<="1011010100000100";
costable(256)<="1011010100000100";
sintable(257)<="1011010110010010";
costable(257)<="1011010001110110";
sintable(258)<="1011011000100000";
costable(258)<="1011001111100111";
sintable(259)<="1011011010101101";
costable(259)<="1011001101011000";
sintable(260)<="1011011100111010";
costable(260)<="1011001011001000";
sintable(261)<="1011011111000110";
costable(261)<="1011001000111000";
sintable(262)<="1011100001010010";
costable(262)<="1011000110101000";
sintable(263)<="1011100011011101";
costable(263)<="1011000100010111";
sintable(264)<="1011100101101000";
costable(264)<="1011000010000101";
sintable(265)<="1011100111110010";
costable(265)<="1010111111110011";
sintable(266)<="1011101001111100";
costable(266)<="1010111101100001";
sintable(267)<="1011101100000110";
costable(267)<="1010111011001110";
sintable(268)<="1011101110001111";
costable(268)<="1010111000111011";
sintable(269)<="1011110000010111";
costable(269)<="1010110110101000";
sintable(270)<="1011110010100000";
costable(270)<="1010110100010100";
sintable(271)<="1011110100100111";
costable(271)<="1010110010000000";
sintable(272)<="1011110110101110";
costable(272)<="1010101111101011";
sintable(273)<="1011111000110101";
costable(273)<="1010101101010110";
sintable(274)<="1011111010111100";
costable(274)<="1010101011000000";
sintable(275)<="1011111101000001";
costable(275)<="1010101000101010";
sintable(276)<="1011111111000111";
costable(276)<="1010100110010100";
sintable(277)<="1100000001001100";
costable(277)<="1010100011111101";
sintable(278)<="1100000011010000";
costable(278)<="1010100001100110";
sintable(279)<="1100000101010100";
costable(279)<="1010011111001110";
sintable(280)<="1100000111011000";
costable(280)<="1010011100110110";
sintable(281)<="1100001001011011";
costable(281)<="1010011010011101";
sintable(282)<="1100001011011110";
costable(282)<="1010011000000101";
sintable(283)<="1100001101100000";
costable(283)<="1010010101101011";
sintable(284)<="1100001111100010";
costable(284)<="1010010011010010";
sintable(285)<="1100010001100011";
costable(285)<="1010010000111000";
sintable(286)<="1100010011100011";
costable(286)<="1010001110011101";
sintable(287)<="1100010101100100";
costable(287)<="1010001100000010";
sintable(288)<="1100010111100100";
costable(288)<="1010001001100111";
sintable(289)<="1100011001100011";
costable(289)<="1010000111001011";
sintable(290)<="1100011011100010";
costable(290)<="1010000100101111";
sintable(291)<="1100011101100000";
costable(291)<="1010000010010011";
sintable(292)<="1100011111011110";
costable(292)<="1001111111110110";
sintable(293)<="1100100001011011";
costable(293)<="1001111101011001";
sintable(294)<="1100100011011000";
costable(294)<="1001111010111100";
sintable(295)<="1100100101010101";
costable(295)<="1001111000011110";
sintable(296)<="1100100111010001";
costable(296)<="1001110101111111";
sintable(297)<="1100101001001100";
costable(297)<="1001110011100001";
sintable(298)<="1100101011000111";
costable(298)<="1001110001000010";
sintable(299)<="1100101101000001";
costable(299)<="1001101110100010";
sintable(300)<="1100101110111011";
costable(300)<="1001101100000010";
sintable(301)<="1100110000110101";
costable(301)<="1001101001100010";
sintable(302)<="1100110010101110";
costable(302)<="1001100111000010";
sintable(303)<="1100110100100110";
costable(303)<="1001100100100001";
sintable(304)<="1100110110011111";
costable(304)<="1001100001111111";
sintable(305)<="1100111000010110";
costable(305)<="1001011111011110";
sintable(306)<="1100111010001101";
costable(306)<="1001011100111100";
sintable(307)<="1100111100000100";
costable(307)<="1001011010011001";
sintable(308)<="1100111101111010";
costable(308)<="1001010111110110";
sintable(309)<="1100111111101111";
costable(309)<="1001010101010011";
sintable(310)<="1101000001100100";
costable(310)<="1001010010110000";
sintable(311)<="1101000011011001";
costable(311)<="1001010000001100";
sintable(312)<="1101000101001101";
costable(312)<="1001001101101000";
sintable(313)<="1101000111000000";
costable(313)<="1001001011000011";
sintable(314)<="1101001000110011";
costable(314)<="1001001000011110";
sintable(315)<="1101001010100110";
costable(315)<="1001000101111001";
sintable(316)<="1101001100011000";
costable(316)<="1001000011010011";
sintable(317)<="1101001110001001";
costable(317)<="1001000000101101";
sintable(318)<="1101001111111010";
costable(318)<="1000111110000111";
sintable(319)<="1101010001101011";
costable(319)<="1000111011100000";
sintable(320)<="1101010011011011";
costable(320)<="1000111000111001";
sintable(321)<="1101010101001010";
costable(321)<="1000110110010010";
sintable(322)<="1101010110111001";
costable(322)<="1000110011101010";
sintable(323)<="1101011000100111";
costable(323)<="1000110001000010";
sintable(324)<="1101011010010101";
costable(324)<="1000101110011010";
sintable(325)<="1101011100000011";
costable(325)<="1000101011110001";
sintable(326)<="1101011101110000";
costable(326)<="1000101001001000";
sintable(327)<="1101011111011100";
costable(327)<="1000100110011111";
sintable(328)<="1101100001001000";
costable(328)<="1000100011110101";
sintable(329)<="1101100010110011";
costable(329)<="1000100001001011";
sintable(330)<="1101100100011110";
costable(330)<="1000011110100001";
sintable(331)<="1101100110001000";
costable(331)<="1000011011110110";
sintable(332)<="1101100111110010";
costable(332)<="1000011001001011";
sintable(333)<="1101101001011011";
costable(333)<="1000010110100000";
sintable(334)<="1101101011000100";
costable(334)<="1000010011110100";
sintable(335)<="1101101100101100";
costable(335)<="1000010001001000";
sintable(336)<="1101101110010100";
costable(336)<="1000001110011100";
sintable(337)<="1101101111111011";
costable(337)<="1000001011101111";
sintable(338)<="1101110001100001";
costable(338)<="1000001001000010";
sintable(339)<="1101110011000111";
costable(339)<="1000000110010101";
sintable(340)<="1101110100101101";
costable(340)<="1000000011100111";
sintable(341)<="1101110110010010";
costable(341)<="1000000000111010";
sintable(342)<="1101110111110110";
costable(342)<="0111111110001011";
sintable(343)<="1101111001011010";
costable(343)<="0111111011011101";
sintable(344)<="1101111010111110";
costable(344)<="0111111000101110";
sintable(345)<="1101111100100000";
costable(345)<="0111110101111111";
sintable(346)<="1101111110000011";
costable(346)<="0111110011010000";
sintable(347)<="1101111111100100";
costable(347)<="0111110000100000";
sintable(348)<="1110000001000110";
costable(348)<="0111101101110000";
sintable(349)<="1110000010100110";
costable(349)<="0111101011000000";
sintable(350)<="1110000100000110";
costable(350)<="0111101000001111";
sintable(351)<="1110000101100110";
costable(351)<="0111100101011110";
sintable(352)<="1110000111000101";
costable(352)<="0111100010101101";
sintable(353)<="1110001000100100";
costable(353)<="0111011111111011";
sintable(354)<="1110001010000010";
costable(354)<="0111011101001010";
sintable(355)<="1110001011011111";
costable(355)<="0111011010011000";
sintable(356)<="1110001100111100";
costable(356)<="0111010111100101";
sintable(357)<="1110001110011000";
costable(357)<="0111010100110011";
sintable(358)<="1110001111110100";
costable(358)<="0111010010000000";
sintable(359)<="1110010001001111";
costable(359)<="0111001111001101";
sintable(360)<="1110010010101010";
costable(360)<="0111001100011001";
sintable(361)<="1110010100000100";
costable(361)<="0111001001100101";
sintable(362)<="1110010101011110";
costable(362)<="0111000110110001";
sintable(363)<="1110010110110111";
costable(363)<="0111000011111101";
sintable(364)<="1110011000001111";
costable(364)<="0111000001001001";
sintable(365)<="1110011001100111";
costable(365)<="0110111110010100";
sintable(366)<="1110011010111110";
costable(366)<="0110111011011111";
sintable(367)<="1110011100010101";
costable(367)<="0110111000101001";
sintable(368)<="1110011101101011";
costable(368)<="0110110101110100";
sintable(369)<="1110011111000001";
costable(369)<="0110110010111110";
sintable(370)<="1110100000010110";
costable(370)<="0110110000001000";
sintable(371)<="1110100001101011";
costable(371)<="0110101101010001";
sintable(372)<="1110100010111111";
costable(372)<="0110101010011011";
sintable(373)<="1110100100010010";
costable(373)<="0110100111100100";
sintable(374)<="1110100101100101";
costable(374)<="0110100100101101";
sintable(375)<="1110100110110111";
costable(375)<="0110100001110101";
sintable(376)<="1110101000001001";
costable(376)<="0110011110111101";
sintable(377)<="1110101001011010";
costable(377)<="0110011100000101";
sintable(378)<="1110101010101011";
costable(378)<="0110011001001101";
sintable(379)<="1110101011111011";
costable(379)<="0110010110010101";
sintable(380)<="1110101101001011";
costable(380)<="0110010011011100";
sintable(381)<="1110101110011001";
costable(381)<="0110010000100011";
sintable(382)<="1110101111101000";
costable(382)<="0110001101101010";
sintable(383)<="1110110000110110";
costable(383)<="0110001010110001";
sintable(384)<="1110110010000011";
costable(384)<="0110000111110111";
sintable(385)<="1110110011010000";
costable(385)<="0110000100111101";
sintable(386)<="1110110100011100";
costable(386)<="0110000010000011";
sintable(387)<="1110110101100111";
costable(387)<="0101111111001001";
sintable(388)<="1110110110110010";
costable(388)<="0101111100001110";
sintable(389)<="1110110111111100";
costable(389)<="0101111001010011";
sintable(390)<="1110111001000110";
costable(390)<="0101110110011000";
sintable(391)<="1110111010001111";
costable(391)<="0101110011011101";
sintable(392)<="1110111011011000";
costable(392)<="0101110000100010";
sintable(393)<="1110111100100000";
costable(393)<="0101101101100110";
sintable(394)<="1110111101101000";
costable(394)<="0101101010101010";
sintable(395)<="1110111110101111";
costable(395)<="0101100111101110";
sintable(396)<="1110111111110101";
costable(396)<="0101100100110001";
sintable(397)<="1111000000111011";
costable(397)<="0101100001110101";
sintable(398)<="1111000010000000";
costable(398)<="0101011110111000";
sintable(399)<="1111000011000101";
costable(399)<="0101011011111011";
sintable(400)<="1111000100001001";
costable(400)<="0101011000111110";
sintable(401)<="1111000101001100";
costable(401)<="0101010110000001";
sintable(402)<="1111000110001111";
costable(402)<="0101010011000011";
sintable(403)<="1111000111010001";
costable(403)<="0101010000000101";
sintable(404)<="1111001000010011";
costable(404)<="0101001101000111";
sintable(405)<="1111001001010100";
costable(405)<="0101001010001001";
sintable(406)<="1111001010010100";
costable(406)<="0101000111001010";
sintable(407)<="1111001011010100";
costable(407)<="0101000100001100";
sintable(408)<="1111001100010100";
costable(408)<="0101000001001101";
sintable(409)<="1111001101010011";
costable(409)<="0100111110001110";
sintable(410)<="1111001110010001";
costable(410)<="0100111011001111";
sintable(411)<="1111001111001110";
costable(411)<="0100111000001111";
sintable(412)<="1111010000001011";
costable(412)<="0100110101010000";
sintable(413)<="1111010001001000";
costable(413)<="0100110010010000";
sintable(414)<="1111010010000100";
costable(414)<="0100101111010000";
sintable(415)<="1111010010111111";
costable(415)<="0100101100010000";
sintable(416)<="1111010011111010";
costable(416)<="0100101001010000";
sintable(417)<="1111010100110100";
costable(417)<="0100100110001111";
sintable(418)<="1111010101101101";
costable(418)<="0100100011001110";
sintable(419)<="1111010110100110";
costable(419)<="0100100000001110";
sintable(420)<="1111010111011110";
costable(420)<="0100011101001101";
sintable(421)<="1111011000010110";
costable(421)<="0100011010001011";
sintable(422)<="1111011001001101";
costable(422)<="0100010111001010";
sintable(423)<="1111011010000100";
costable(423)<="0100010100001000";
sintable(424)<="1111011010111010";
costable(424)<="0100010001000111";
sintable(425)<="1111011011101111";
costable(425)<="0100001110000101";
sintable(426)<="1111011100100100";
costable(426)<="0100001011000011";
sintable(427)<="1111011101011000";
costable(427)<="0100001000000001";
sintable(428)<="1111011110001011";
costable(428)<="0100000100111110";
sintable(429)<="1111011110111110";
costable(429)<="0100000001111100";
sintable(430)<="1111011111110001";
costable(430)<="0011111110111001";
sintable(431)<="1111100000100010";
costable(431)<="0011111011110110";
sintable(432)<="1111100001010011";
costable(432)<="0011111000110011";
sintable(433)<="1111100010000100";
costable(433)<="0011110101110000";
sintable(434)<="1111100010110100";
costable(434)<="0011110010101101";
sintable(435)<="1111100011100011";
costable(435)<="0011101111101010";
sintable(436)<="1111100100010010";
costable(436)<="0011101100100110";
sintable(437)<="1111100101000000";
costable(437)<="0011101001100010";
sintable(438)<="1111100101101110";
costable(438)<="0011100110011111";
sintable(439)<="1111100110011011";
costable(439)<="0011100011011011";
sintable(440)<="1111100111000111";
costable(440)<="0011100000010111";
sintable(441)<="1111100111110011";
costable(441)<="0011011101010010";
sintable(442)<="1111101000011110";
costable(442)<="0011011010001110";
sintable(443)<="1111101001001001";
costable(443)<="0011010111001001";
sintable(444)<="1111101001110011";
costable(444)<="0011010100000101";
sintable(445)<="1111101010011100";
costable(445)<="0011010001000000";
sintable(446)<="1111101011000101";
costable(446)<="0011001101111011";
sintable(447)<="1111101011101101";
costable(447)<="0011001010110110";
sintable(448)<="1111101100010100";
costable(448)<="0011000111110001";
sintable(449)<="1111101100111011";
costable(449)<="0011000100101100";
sintable(450)<="1111101101100001";
costable(450)<="0011000001100110";
sintable(451)<="1111101110000111";
costable(451)<="0010111110100001";
sintable(452)<="1111101110101100";
costable(452)<="0010111011011011";
sintable(453)<="1111101111010001";
costable(453)<="0010111000010101";
sintable(454)<="1111101111110101";
costable(454)<="0010110101010000";
sintable(455)<="1111110000011000";
costable(455)<="0010110010001010";
sintable(456)<="1111110000111011";
costable(456)<="0010101111000100";
sintable(457)<="1111110001011101";
costable(457)<="0010101011111110";
sintable(458)<="1111110001111110";
costable(458)<="0010101000110111";
sintable(459)<="1111110010011111";
costable(459)<="0010100101110001";
sintable(460)<="1111110010111111";
costable(460)<="0010100010101010";
sintable(461)<="1111110011011111";
costable(461)<="0010011111100100";
sintable(462)<="1111110011111110";
costable(462)<="0010011100011101";
sintable(463)<="1111110100011100";
costable(463)<="0010011001010110";
sintable(464)<="1111110100111010";
costable(464)<="0010010110010000";
sintable(465)<="1111110101010111";
costable(465)<="0010010011001001";
sintable(466)<="1111110101110100";
costable(466)<="0010010000000010";
sintable(467)<="1111110110010000";
costable(467)<="0010001100111011";
sintable(468)<="1111110110101011";
costable(468)<="0010001001110011";
sintable(469)<="1111110111000110";
costable(469)<="0010000110101100";
sintable(470)<="1111110111100000";
costable(470)<="0010000011100101";
sintable(471)<="1111110111111010";
costable(471)<="0010000000011101";
sintable(472)<="1111111000010011";
costable(472)<="0001111101010110";
sintable(473)<="1111111000101011";
costable(473)<="0001111010001110";
sintable(474)<="1111111001000011";
costable(474)<="0001110111000111";
sintable(475)<="1111111001011010";
costable(475)<="0001110011111111";
sintable(476)<="1111111001110000";
costable(476)<="0001110000110111";
sintable(477)<="1111111010000110";
costable(477)<="0001101101101111";
sintable(478)<="1111111010011011";
costable(478)<="0001101010100111";
sintable(479)<="1111111010110000";
costable(479)<="0001100111011111";
sintable(480)<="1111111011000100";
costable(480)<="0001100100010111";
sintable(481)<="1111111011010111";
costable(481)<="0001100001001111";
sintable(482)<="1111111011101010";
costable(482)<="0001011110000111";
sintable(483)<="1111111011111100";
costable(483)<="0001011010111111";
sintable(484)<="1111111100001110";
costable(484)<="0001010111110110";
sintable(485)<="1111111100011111";
costable(485)<="0001010100101110";
sintable(486)<="1111111100101111";
costable(486)<="0001010001100110";
sintable(487)<="1111111100111111";
costable(487)<="0001001110011101";
sintable(488)<="1111111101001110";
costable(488)<="0001001011010101";
sintable(489)<="1111111101011100";
costable(489)<="0001001000001100";
sintable(490)<="1111111101101010";
costable(490)<="0001000101000100";
sintable(491)<="1111111101111000";
costable(491)<="0001000001111011";
sintable(492)<="1111111110000100";
costable(492)<="0000111110110010";
sintable(493)<="1111111110010000";
costable(493)<="0000111011101010";
sintable(494)<="1111111110011100";
costable(494)<="0000111000100001";
sintable(495)<="1111111110100110";
costable(495)<="0000110101011000";
sintable(496)<="1111111110110001";
costable(496)<="0000110010001111";
sintable(497)<="1111111110111010";
costable(497)<="0000101111000110";
sintable(498)<="1111111111000011";
costable(498)<="0000101011111110";
sintable(499)<="1111111111001011";
costable(499)<="0000101000110101";
sintable(500)<="1111111111010011";
costable(500)<="0000100101101100";
sintable(501)<="1111111111011010";
costable(501)<="0000100010100011";
sintable(502)<="1111111111100001";
costable(502)<="0000011111011010";
sintable(503)<="1111111111100111";
costable(503)<="0000011100010001";
sintable(504)<="1111111111101100";
costable(504)<="0000011001001000";
sintable(505)<="1111111111110000";
costable(505)<="0000010101111111";
sintable(506)<="1111111111110100";
costable(506)<="0000010010110110";
sintable(507)<="1111111111111000";
costable(507)<="0000001111101101";
sintable(508)<="1111111111111011";
costable(508)<="0000001100100100";
sintable(509)<="1111111111111101";
costable(509)<="0000001001011011";
sintable(510)<="1111111111111110";
costable(510)<="0000000110010010";
sintable(511)<="1111111111111111";
costable(511)<="0000000011001001";
sintable(512)<="1111111111111111";
costable(512)<="0000000000000000";
process(clk,fselect)
variable prod_mx : std_logic_vector(31 downto 0);
variable prod_mx16 : std_logic_vector(15 downto 0);
variable mod_indx : std_logic_vector(15 downto 0);
begin
if clk='1' and clk'event then
ccount <= ccount + 1;
prod_mx := slope*fselect;
prod_mx16(15 downto 0) := prod_mx(27 downto 12);
mod_indx := yint + prod_mx16;
if (ccount = to_integer(unsigned(fselect))) then
ccount <= 1;
num <= num + 1;
if (num = 2048) then
num <= 0;
end if;
end if;
if (num <= 512) then
sin_32 <= mod_indx*sintable(num);
cos_32 <= mod_indx*costable(num);
sin_data_16(16) <= '1';
cos_data_16(16) <= '1';
else
if (num > 512) and (num <= 1024) then
sin_32 <= mod_indx*sintable(1024 - num);
cos_32 <= mod_indx*costable(1024 - num);
sin_data_16(16) <= '1';
cos_data_16(16) <= '1';
end if;
if (num >1024 ) and (num <= 1536) then
sin_32 <= not mod_indx*sintable(num - 1024);
cos_32 <= not mod_indx*costable(num - 1024);
sin_data_16(16) <= '0';
cos_data_16(16) <= '0';
end if;
if(num > 1536) then
sin_32 <= not mod_indx*sintable(2048 - num);
cos_32 <= not mod_indx*costable(2048 - num);
sin_data_16(16) <= '0';
cos_data_16(16) <= '0';
end if;
end if;
sin_data_16(15 downto 0) <= sin_32(31 downto 16);
sin_data_16(15 downto 0) <= sin_32(31 downto 16);
end if;
end process;
end Behaviour;
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?