复数乘法器设计(VHDL)
--************************************************************
-- widthDAT 数据的位宽 ; widthRF 为旋转因子的位宽
-- 实现了一个复数和旋转因子的相乘操作 yi+yq*j=(xi+xq*j)*(cos-sin*j)
--************************************************************
-- 修改ccmul,使与旋转因子相乘后数据的位数不发生变化 2007.11.24
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_signed.all;
library lpm;
use lpm.lpm_components.all;
use work.mypackage.all;
-- This entity has an attentuation of 1 bits.
-- This entity has a delay of 2 clock cycles.
entity ccmul is
generic(widthDAT:NATURAL:=16; widthRF :NATURAL:=16);
port(
clk :in std_logic;
enable :in std_logic;
cos ,sin :in std_logic_vector(widthRF-1 downto 0);
X :in std_logic_vector(2*widthDAT-1 downto 0); -- 输入复数
Y ut std_logic_vector(2*widthDAT-1 downto 0));
end ccmul;
architecture rtl of ccmul is
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余3页未读,立即下载