dct8_medium.vhd

来自「算术处理器的VERILOG hdl的源代码」· VHDL 代码 · 共 2,683 行 · 第 1/5 页

VHD
2,683
字号
LIBRARY ieee ;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY ROM1C IS   PORT(       addr2      : IN     unsigned (1 DOWNTO 0) ;      compl      : IN     std_ulogic  ;      enable_rom : IN     std_ulogic  ;      coeff_out  : OUT    unsigned (11 downto 0)   );-- DeclarationsEND ROM1C ;---- ROM coefficients for calculating X00ARCHITECTURE behave_rom OF ROM1C IStype ROM_array is array (7 downto 0) of unsigned(11 downto 0);signal coeff: ROM_array;signal addr : integer range 0 to 7;--signal comptemp : unsigned(1 downto 0);BEGINcoeff(0) <= "010110101000";    --     Acoeff(1) <= "011101100100";    --     Bcoeff(2) <= "010110101000";    --     Acoeff(3) <= "001100010000";    --     C-- Complementary valuescoeff(4) <= "101001011000";    --     -Acoeff(5) <= "100010011100";    --     -Bcoeff(6) <= "101001011000";    --     -Acoeff(7) <= "110011110000";    --     -C--comptemp <= CONV_UNSIGNED(compl,2);--addr <= CONV_INTEGER(comptemp&addr2);addr <= CONV_INTEGER(compl&addr2);--with enable_rom select--	coeff_out <= "000000000000" when '0',--	             coeff(addr) when '1',--		     "000000000000" when others;	coeff_out <= coeff(addr) when enable_rom = '1' else "000000000000";	END behave_rom;----LIBRARY ieee ;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY ROMC_01 IS   PORT(       addr2      : IN     unsigned (1 downto 0) ;      compl      : IN     std_ulogic  ;      enable_rom : IN     std_ulogic  ;      coeff_out  : OUT    unsigned (11 DOWNTO 0)   );-- DeclarationsEND ROMC_01 ;----ARCHITECTURE beh OF ROMC_01 IStype ROM_array is array (7 downto 0) of unsigned(11 downto 0);signal coeff: ROM_array;signal addr : integer range 0 to 7;--signal comptemp : unsigned(1 downto 0);signal ap : unsigned(11 downto 0) := "010110101000";signal bp : unsigned(11 downto 0) := "011101100100";signal cp : unsigned(11 downto 0) := "001100010000";signal dp : unsigned(11 downto 0) := "011111011001";signal ep : unsigned(11 downto 0) := "011010100111";signal fp : unsigned(11 downto 0) := "010001110010";signal gp : unsigned(11 downto 0) := "000110010000";signal am : unsigned(11 downto 0) := "101001011000";signal bm : unsigned(11 downto 0) := "100010011100";signal cm : unsigned(11 downto 0) := "110011110000";signal dm : unsigned(11 downto 0) := "100000100111";-- signal em : unsigned(11 downto 0) := "100101011001"; -- NOT usedsignal fm : unsigned(11 downto 0) := "101110001110";signal gm : unsigned(11 downto 0) := "111001110000";BEGINcoeff(0) <= ap;    --     Acoeff(1) <= cp;    --     Ccoeff(2) <= am;    --     -Acoeff(3) <= bm;    --     -B-- Complementary valuescoeff(4) <= am;    --     -Acoeff(5) <= cm;    --     -Ccoeff(6) <= ap;    --     Acoeff(7) <= bp;    --     B--comptemp <= CONV_UNSIGNED(compl,2);--addr <= CONV_INTEGER(comptemp&addr2);addr <= CONV_INTEGER(compl&addr2);--with enable_rom select--	coeff_out <= "000000000000" when '0',--	             coeff(addr) when '1',--		     "000000000000" when others;	with enable_rom selectcoeff_out <= coeff(addr) when '1',			     "000000000000" when others;	END beh;----LIBRARY ieee ;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY ROMC_02 IS   PORT(       addr2      : IN     unsigned (1 DOWNTO 0) ;      compl      : IN     std_ulogic  ;      enable_rom : IN     std_ulogic  ;      coeff_out  : OUT    unsigned (11 DOWNTO 0)   );-- DeclarationsEND ROMC_02 ;----ARCHITECTURE beh OF ROMC_02 IStype ROM_array is array (7 downto 0) of unsigned(11 downto 0);signal coeff: ROM_array;signal addr : integer range 0 to 7;--signal comptemp : unsigned(1 downto 0);signal ap : unsigned(11 downto 0) := "010110101000";signal bp : unsigned(11 downto 0) := "011101100100";signal cp : unsigned(11 downto 0) := "001100010000";signal dp : unsigned(11 downto 0) := "011111011001";signal ep : unsigned(11 downto 0) := "011010100111";signal fp : unsigned(11 downto 0) := "010001110010";signal gp : unsigned(11 downto 0) := "000110010000";signal am : unsigned(11 downto 0) := "101001011000";signal bm : unsigned(11 downto 0) := "100010011100";signal cm : unsigned(11 downto 0) := "110011110000";signal dm : unsigned(11 downto 0) := "100000100111";-- signal em : unsigned(11 downto 0) := "100101011001"; -- NOT usedsignal fm : unsigned(11 downto 0) := "101110001110";signal gm : unsigned(11 downto 0) := "111001110000";BEGINcoeff(0) <= ap;    --     Acoeff(1) <= cm;    --     -Ccoeff(2) <= am;    --     -Acoeff(3) <= bp;    --     B-- Complementary valuescoeff(4) <= am;    --     -Acoeff(5) <= cp;    --     Ccoeff(6) <= ap;    --     Acoeff(7) <= bm;    --     -B--comptemp <= CONV_UNSIGNED(compl,2);--addr <= CONV_INTEGER(comptemp&addr2);addr <= CONV_INTEGER(compl&addr2);--with enable_rom select--	coeff_out <= "000000000000" when '0',--	             coeff(addr) when '1',--		     "000000000000" when others;	with enable_rom selectcoeff_out <= coeff(addr) when '1',			     "000000000000" when others;	END beh;----LIBRARY ieee ;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY ROMC_03 IS   PORT(       addr2      : IN     unsigned (1 DOWNTO 0) ;      compl      : IN     std_ulogic  ;      enable_rom : IN     std_ulogic  ;      coeff_out  : OUT    unsigned (11 DOWNTO 0)   );-- DeclarationsEND ROMC_03 ;----ARCHITECTURE beh OF ROMC_03 IStype ROM_array is array (7 downto 0) of unsigned(11 downto 0);signal coeff: ROM_array;signal addr : integer range 0 to 7;--signal comptemp : unsigned(1 downto 0);signal ap : unsigned(11 downto 0) := "010110101000";signal bp : unsigned(11 downto 0) := "011101100100";signal cp : unsigned(11 downto 0) := "001100010000";signal dp : unsigned(11 downto 0) := "011111011001";signal ep : unsigned(11 downto 0) := "011010100111";signal fp : unsigned(11 downto 0) := "010001110010";signal gp : unsigned(11 downto 0) := "000110010000";signal am : unsigned(11 downto 0) := "101001011000";signal bm : unsigned(11 downto 0) := "100010011100";signal cm : unsigned(11 downto 0) := "110011110000";signal dm : unsigned(11 downto 0) := "100000100111";-- signal em : unsigned(11 downto 0) := "100101011001"; -- NOT usedsignal fm : unsigned(11 downto 0) := "101110001110";signal gm : unsigned(11 downto 0) := "111001110000";BEGINcoeff(0) <= ap;    --     Acoeff(1) <= bm;    --     -Bcoeff(2) <= ap;    --     Acoeff(3) <= cm;    --     -C-- Complementary valuescoeff(4) <= am;    --     -Acoeff(5) <= bp;    --     Bcoeff(6) <= am;    --     -Acoeff(7) <= cp;    --     C--comptemp <= CONV_UNSIGNED(compl,2);--addr <= CONV_INTEGER(comptemp&addr2);addr <= CONV_INTEGER(compl&addr2);--with enable_rom select--	coeff_out <= "000000000000" when '0',--	             coeff(addr) when '1',--		     "000000000000" when others;	with enable_rom selectcoeff_out <= coeff(addr) when '1',			     "000000000000" when others;	END beh;----LIBRARY ieee ;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY ROMC_e0 IS   PORT(       addr2      : IN     unsigned (1 DOWNTO 0) ;      compl      : IN     std_ulogic  ;      enable_rom : IN     std_ulogic  ;      coeff_out  : OUT    unsigned (11 DOWNTO 0)   );-- DeclarationsEND ROMC_e0 ;----ARCHITECTURE beh OF ROMC_e0 IStype ROM_array is array (7 downto 0) of unsigned(11 downto 0);signal coeff: ROM_array;signal addr : integer range 0 to 7;--signal comptemp : unsigned(1 downto 0);signal ap : unsigned(11 downto 0) := "010110101000";signal bp : unsigned(11 downto 0) := "011101100100";signal cp : unsigned(11 downto 0) := "001100010000";signal dp : unsigned(11 downto 0) := "011111011001";signal ep : unsigned(11 downto 0) := "011010100111";signal fp : unsigned(11 downto 0) := "010001110010";signal gp : unsigned(11 downto 0) := "000110010000";signal am : unsigned(11 downto 0) := "101001011000";signal bm : unsigned(11 downto 0) := "100010011100";signal cm : unsigned(11 downto 0) := "110011110000";signal dm : unsigned(11 downto 0) := "100000100111";signal em : unsigned(11 downto 0) := "100101011001"; -- NOT usedsignal fm : unsigned(11 downto 0) := "101110001110";signal gm : unsigned(11 downto 0) := "111001110000";BEGINcoeff(0) <= dp;    --     Dcoeff(1) <= ep;    --     Ecoeff(2) <= fp;    --     Fcoeff(3) <= gp;    --     G-- Complementary valuescoeff(4) <= dm;    --     -Dcoeff(5) <= em;    --     -Ecoeff(6) <= fm;    --     -Fcoeff(7) <= gm;    --     -G--comptemp <= CONV_UNSIGNED(compl,2);--addr <= CONV_INTEGER(comptemp&addr2);addr <= CONV_INTEGER(compl&addr2);--with enable_rom select--	coeff_out <= "000000000000" when '0',--	             coeff(addr) when '1',--		     "000000000000" when others;	with enable_rom selectcoeff_out <= coeff(addr) when '1',			     "000000000000" when others;	END beh;----LIBRARY ieee ;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY ROMC_e1 IS   PORT(       addr2      : IN     unsigned (1 DOWNTO 0) ;      compl      : IN     std_ulogic  ;      enable_rom : IN     std_ulogic  ;      coeff_out  : OUT    unsigned (11 DOWNTO 0)   );-- DeclarationsEND ROMC_e1 ;----ARCHITECTURE beh OF ROMC_e1 IStype ROM_array is array (7 downto 0) of unsigned(11 downto 0);signal coeff: ROM_array;signal addr : integer range 0 to 7;--signal comptemp : unsigned(1 downto 0);signal ap : unsigned(11 downto 0) := "010110101000";signal bp : unsigned(11 downto 0) := "011101100100";signal cp : unsigned(11 downto 0) := "001100010000";signal dp : unsigned(11 downto 0) := "011111011001";signal ep : unsigned(11 downto 0) := "011010100111";signal fp : unsigned(11 downto 0) := "010001110010";signal gp : unsigned(11 downto 0) := "000110010000";signal am : unsigned(11 downto 0) := "101001011000";signal bm : unsigned(11 downto 0) := "100010011100";signal cm : unsigned(11 downto 0) := "110011110000";signal dm : unsigned(11 downto 0) := "100000100111";signal em : unsigned(11 downto 0) := "100101011001"; -- NOT usedsignal fm : unsigned(11 downto 0) := "101110001110";signal gm : unsigned(11 downto 0) := "111001110000";BEGINcoeff(0) <= ep;    --     Ecoeff(1) <= gm;    --     -Gcoeff(2) <= dm;    --     -Dcoeff(3) <= fm;    --     -F-- Complementary valuescoeff(4) <= em;    --     -Ecoeff(5) <= gp;    --     Gcoeff(6) <= dp;    --     Dcoeff(7) <= fp;    --     F--comptemp <= CONV_UNSIGNED(compl,2);--addr <= CONV_INTEGER(comptemp&addr2);addr <= CONV_INTEGER(compl&addr2);--with enable_rom select--	coeff_out <= "000000000000" when '0',--	             coeff(addr) when '1',--		     "000000000000" when others;	with enable_rom selectcoeff_out <= coeff(addr) when '1',			     "000000000000" when others;	END beh;----LIBRARY ieee ;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY ROMC_e2 IS   PORT(       addr2      : IN     unsigned (1 DOWNTO 0) ;      compl      : IN     std_ulogic  ;      enable_rom : IN     std_ulogic  ;      coeff_out  : OUT    unsigned (11 DOWNTO 0)   );-- DeclarationsEND ROMC_e2 ;----ARCHITECTURE beh OF ROMC_e2 IStype ROM_array is array (7 downto 0) of unsigned(11 downto 0);signal coeff: ROM_array;signal addr : integer range 0 to 7;--signal comptemp : unsigned(1 downto 0);signal ap : unsigned(11 downto 0) := "010110101000";signal bp : unsigned(11 downto 0) := "011101100100";signal cp : unsigned(11 downto 0) := "001100010000";signal dp : unsigned(11 downto 0) := "011111011001";signal ep : unsigned(11 downto 0) := "011010100111";signal fp : unsigned(11 downto 0) := "010001110010";signal gp : unsigned(11 downto 0) := "000110010000";signal am : unsigned(11 downto 0) := "101001011000";signal bm : unsigned(11 downto 0) := "100010011100";signal cm : unsigned(11 downto 0) := "110011110000";signal dm : unsigned(11 downto 0) := "100000100111";signal em : unsigned(11 downto 0) := "100101011001"; -- NOT usedsignal fm : unsigned(11 downto 0) := "101110001110";signal gm : unsigned(11 downto 0) := "111001110000";BEGINcoeff(0) <= fp;    --     Fcoeff(1) <= dm;    --     -Dcoeff(2) <= gp;    --     Gcoeff(3) <= ep;    --     E-- Complementary valuescoeff(4) <= fm;    --     -Fcoeff(5) <= dp;    --     Dcoeff(6) <= gm;    --     -Gcoeff(7) <= em;    --     -E--comptemp <= CONV_UNSIGNED(compl,2);--addr <= CONV_INTEGER(comptemp&addr2);addr <= CONV_INTEGER(compl&addr2);--with enable_rom select--	coeff_out <= "000000000000" when '0',--	             coeff(addr) when '1',--		     "000000000000" when others;	with enable_rom selectcoeff_out <= coeff(addr) when '1',			     "000000000000" when others;	END beh;----LIBRARY ieee ;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY ROMC_e3 IS   PORT(       addr2      : IN     unsigned (1 DOWNTO 0) ;      compl      : IN     std_ulogic  ;      enable_rom : IN     std_ulogic  ;      coeff_out  : OUT    unsigned (11 DOWNTO 0)   );-- DeclarationsEND ROMC_e3 ;----ARCHITECTURE beh OF ROMC_e3 IStype ROM_array is array (7 downto 0) of unsigned(11 downto 0);signal coeff: ROM_array;signal addr : integer range 0 to 7;--signal comptemp : unsigned(1 downto 0);signal ap : unsigned(11 downto 0) := "010110101000";signal bp : unsigned(11 downto 0) := "011101100100";signal cp : unsigned(11 downto 0) := "001100010000";signal dp : unsigned(11 downto 0) := "011111011001";signal ep : unsigned(11 downto 0) := "011010100111";signal fp : unsigned(11 downto 0) := "010001110010";signal gp : unsigned(11 downto 0) := "000110010000";signal am : unsigned(11 downto 0) := "101001011000";signal bm : unsigned(11 downto 0) := "100010011100";signal cm : unsigned(11 downto 0) := "110011110000";signal dm : unsigned(11 downto 0) := "100000100111";signal em : unsigned(11 downto 0) := "100101011001"; -- NOT usedsignal fm : unsigned(11 downto 0) := "101110001110";signal gm : unsigned(11 downto 0) := "111001110000";BEGINcoeff(0) <= gp;    --     Gcoeff(1) <= fm;    --     -Fcoeff(2) <= ep;    --     Ecoeff(3) <= dm;    --     -D-- Complementary valuescoeff(4) <= gm;    --     -Gcoeff(5) <= fp;    --     Fcoeff(6) <= em;    --     -Ecoeff(7) <= dp;    --     D

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?