Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Order of Execution of taking "NOT" and multiplication

Status
Not open for further replies.

akh_power

Junior Member level 1
Joined
Jul 17, 2018
Messages
19
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
144
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?
 

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?
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?
 

This is the code.
Code:
----------------------------------------------------------------------------------
-- 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;
 

What does your simulation say?
VHDL is not software programming, it is hardware description.
Does your code match your expected circuit architecture? (ie. did you draw a diagram first?). If not, why not?
 

Taking the post literally, you are asking for VHDL operator precedence. The language reference manual can tell, chapter expressions, paragraph operators. Arithmetical NOT actually precedes multiply, you need parentheses. A lazy engineer might put the parentheses just in case, without reviewing the language spec…

The combination of numeric_std and outdated std_logic_unsigned libraries is asking for trouble. Why not using proper numeric types for arithmetic?
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top