⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idct.vhd

📁 一些有用的IP核
💻 VHD
📖 第 1 页 / 共 2 页
字号:
-----------------------------------------------------------------------------------       XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS"--       AS A COURTESY TO YOU, SOLELY FOR USE IN DEVELOPING PROGRAMS AND--       SOLUTIONS FOR XILINX DEVICES.  BY PROVIDING THIS DESIGN, CODE,--       OR INFORMATION AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE,--       APPLICATION OR STANDARD, XILINX IS MAKING NO REPRESENTATION--       THAT THIS IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT,--       AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE--       FOR YOUR IMPLEMENTATION.  XILINX EXPRESSLY DISCLAIMS ANY--       WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE--       IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR--       REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF--       INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS--       FOR A PARTICULAR PURPOSE.----       (c) Copyright 2002 Xilinx Inc.--       All rights reserved.----------------------------------------------------------------------------------------------------------------------------------------------------------------- Naming Conventions:--      active low signals:                     "*_n"--      clock signals:                          "clk", "clk_div#", "clk_#x" --      reset signals:                          "rst", "rst_n" --      generics:                               "C_*" --      user defined types:                     "*_TYPE" --      state machine next state:               "*_ns" --      state machine current state:            "*_cs" --      combinatorial signals:                  "*_com" --      pipelined or register delay signals:    "*_d#" --      counter signals:                        "*cnt*"--      clock enable signals:                   "*_ce" --      internal version of output port         "*_i"--      device pins:                            "*_pin" --      ports:                                  - Names begin with Uppercase --      processes:                              "*_PROCESS" --      component instantiations:               "<ENTITY_>I_<#|FUNC>-------------------------------------------------------------------------------library IEEE;use IEEE.std_logic_1164.all;use IEEE.numeric_std.all;library unisim;use unisim.all;entity iDCT is  port (    Clk            : in  std_logic;    Reset          : in  std_logic;    Data_In        : in  std_logic_vector(15 downto 0);    Data_In_Valid  : in  std_logic;    Read_Data_In   : out std_logic;    Data_Out_Full  : in  std_logic;    Data_Out       : out std_logic_vector(31 downto 0);    Data_Out_Valid : out std_logic);  end entity iDCT;architecture IMP of iDCT is  component FDE is    port (      Q  : out std_logic;      C  : in  std_logic;      CE : in  std_logic;      D  : in  std_logic);  end component FDE;  component RAM16x1S is    port (      WE   : in  std_logic;      D    : in  std_logic;      WClk : in  std_logic;      A0   : in  std_logic;      A1   : in  std_logic;      A2   : in  std_logic;      A3   : in  std_logic;      O    : out std_logic);  end component RAM16x1S;  component MULT18x18S is    port (      A  : in  std_logic_vector(17 downto 0);      B  : in  std_logic_vector(17 downto 0);      C  : in  std_logic;      CE : in  std_logic;      R  : in  std_logic;      P  : out std_logic_vector(35 downto 0));  end component MULT18x18S;    subtype COEFF_TYPE is signed(15 downto 0);  type    COEFF_ARRAY_TYPE is array (natural range 0 to 7) of COEFF_TYPE;  type    COEFF_MATRIX_TYPE is array (natural range 0 to 7) of COEFF_ARRAY_TYPE;  constant Coeff_T : COEFF_MATRIX_TYPE := (    0 => (      to_signed(16384, COEFF_TYPE'length),      to_signed(22725, COEFF_TYPE'length),      to_signed(21407, COEFF_TYPE'length),      to_signed(19266, COEFF_TYPE'length),      to_signed(16384, COEFF_TYPE'length),      to_signed(12873, COEFF_TYPE'length),      to_signed(8867, COEFF_TYPE'length),      to_signed(4520, COEFF_TYPE'length)      ),    1 => (      to_signed(16384, COEFF_TYPE'length),      to_signed(19266, COEFF_TYPE'length),      to_signed(8867, COEFF_TYPE'length),      to_signed(-4521, COEFF_TYPE'length),      to_signed(-16384, COEFF_TYPE'length),      to_signed(-22726, COEFF_TYPE'length),      to_signed(-21407, COEFF_TYPE'length),      to_signed(-12873, COEFF_TYPE'length)      ),    2 => (      to_signed(16384, COEFF_TYPE'length),      to_signed(12873, COEFF_TYPE'length),      to_signed(-8867, COEFF_TYPE'length),      to_signed(-22726, COEFF_TYPE'length),      to_signed(-16385, COEFF_TYPE'length),      to_signed(4520, COEFF_TYPE'length),      to_signed(21407, COEFF_TYPE'length),      to_signed(19266, COEFF_TYPE'length)      ),    3 => (      to_signed(16384, COEFF_TYPE'length),      to_signed(4520, COEFF_TYPE'length),      to_signed(-21407, COEFF_TYPE'length),      to_signed(-12873, COEFF_TYPE'length),      to_signed(16384, COEFF_TYPE'length),      to_signed(19266, COEFF_TYPE'length),      to_signed(-8867, COEFF_TYPE'length),      to_signed(-22726, COEFF_TYPE'length)      ),    4 => (      to_signed(16384, COEFF_TYPE'length),      to_signed(-4521, COEFF_TYPE'length),      to_signed(-21407, COEFF_TYPE'length),      to_signed(12873, COEFF_TYPE'length),      to_signed(16384, COEFF_TYPE'length),      to_signed(-19266, COEFF_TYPE'length),      to_signed(-8867, COEFF_TYPE'length),      to_signed(22725, COEFF_TYPE'length)      ),    5 => (      to_signed(16384, COEFF_TYPE'length),      to_signed(-12873, COEFF_TYPE'length),      to_signed(-8867, COEFF_TYPE'length),      to_signed(22725, COEFF_TYPE'length),      to_signed(-16384, COEFF_TYPE'length),      to_signed(-4521, COEFF_TYPE'length),      to_signed(21407, COEFF_TYPE'length),      to_signed(-19266, COEFF_TYPE'length)      ),    6 => (      to_signed(16384, COEFF_TYPE'length),      to_signed(-19266, COEFF_TYPE'length),      to_signed(8867, COEFF_TYPE'length),      to_signed(4520, COEFF_TYPE'length),      to_signed(-16385, COEFF_TYPE'length),      to_signed(22725, COEFF_TYPE'length),      to_signed(-21407, COEFF_TYPE'length),      to_signed(12873, COEFF_TYPE'length)      ),    7 => (      to_signed(16384, COEFF_TYPE'length),      to_signed(-22726, COEFF_TYPE'length),      to_signed(21407, COEFF_TYPE'length),      to_signed(-19266, COEFF_TYPE'length),      to_signed(16384, COEFF_TYPE'length),      to_signed(-12873, COEFF_TYPE'length),      to_signed(8867, COEFF_TYPE'length),      to_signed(-4521, COEFF_TYPE'length)      )    );  signal move_pipeline     : std_logic;  signal move_in_pipeline  : std_logic;  signal move_out_pipeline : std_logic;  signal Index         : natural range 0 to 7;  signal Index_1       : natural range 0 to 7;  signal Index_2       : natural range 0 to 7;  signal Word          : natural range 0 to 7;  signal Word_1        : natural range 0 to 7;  signal First_Cycle   : std_logic;  signal First_Cycle_1 : std_logic;  signal Last_Cycle    : std_logic;  subtype MAC_RESULT_TYPE is std_logic_vector(31 downto 0);  signal MAC_Result          : MAC_RESULT_TYPE;  signal New_MAC_Result      : MAC_RESULT_TYPE;--  signal Wr_New_MAC_Result_i : std_logic;  signal Wr_New_MAC_Result   : std_logic;  signal Wr_New_MAC_Result_1 : std_logic;  signal Wr_New_MAC_Result_2 : std_logic;  signal Writing_Result   : std_logic;  signal Writing_Result_i : std_logic;  signal mul_op_a : std_logic_vector(Data_In'range);  signal mul_op_b : COEFF_TYPE;    signal mult_op_a : std_logic_vector(17 downto 0);  signal mult_op_b : std_logic_vector(17 downto 0);  signal mult_res  : std_logic_vector(35 downto 0);  signal mult_en   : std_logic;  

⌨️ 快捷键说明

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