romo.vhd.svn-base
来自「Pure hardware JPEG Encoder design. Packa」· SVN-BASE 代码 · 共 133 行
SVN-BASE
133 行
---------------------------------------------------------------------------------- ---- V H D L F I L E ---- COPYRIGHT (C) 2006 ---- -------------------------------------------------------------------------------------- Title : DCT-- Design : MDCT Core-- Author : Michal Krepa-------------------------------------------------------------------------------------- File : ROMO.VHD-- Created : Sat Mar 5 7:37 2006-- Modified : Dez. 30 2008 - Andreas Bergmann-- Libs and Typeconversion fixed due Xilinx Synthesis errors-------------------------------------------------------------------------------------- Description : ROM for DCT matrix constant cosine coefficients (odd part)------------------------------------------------------------------------------------ 5:0-- 5:4 = select matrix row (1 out of 4)-- 3:0 = select precomputed MAC ( 1 out of 16)library IEEE; use IEEE.STD_LOGIC_1164.all; -- use ieee.STD_LOGIC_signed.all; use IEEE.STD_LOGIC_arith.all; use WORK.MDCT_PKG.all;entity ROMO is port( addr : in STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0); clk : in STD_LOGIC; datao : out STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0) ); end ROMO; architecture RTL of ROMO is type ROM_TYPE is array (0 to 2**ROMADDR_W-1) of STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0); constant rom : ROM_TYPE := ( (others => '0'), conv_std_logic_vector( GP,ROMDATA_W ), conv_std_logic_vector( FP,ROMDATA_W ), conv_std_logic_vector( FP+GP,ROMDATA_W ), conv_std_logic_vector( EP,ROMDATA_W ), conv_std_logic_vector( EP+GP,ROMDATA_W ), conv_std_logic_vector( EP+FP,ROMDATA_W ), conv_std_logic_vector( EP+FP+GP,ROMDATA_W ), conv_std_logic_vector( DP,ROMDATA_W ), conv_std_logic_vector( DP+GP,ROMDATA_W ), conv_std_logic_vector( DP+FP,ROMDATA_W ), conv_std_logic_vector( DP+FP+GP,ROMDATA_W ), conv_std_logic_vector( DP+EP,ROMDATA_W ), conv_std_logic_vector( DP+EP+GP,ROMDATA_W ), conv_std_logic_vector( DP+EP+FP,ROMDATA_W ), conv_std_logic_vector( DP+EP+FP+GP,ROMDATA_W ), (others => '0'), conv_std_logic_vector( FM,ROMDATA_W ), conv_std_logic_vector( DM,ROMDATA_W ), conv_std_logic_vector( DM+FM,ROMDATA_W ), conv_std_logic_vector( GM,ROMDATA_W ), conv_std_logic_vector( GM+FM,ROMDATA_W ), conv_std_logic_vector( GM+DM,ROMDATA_W ), conv_std_logic_vector( GM+DM+FM,ROMDATA_W ), conv_std_logic_vector( EP,ROMDATA_W ), conv_std_logic_vector( EP+FM,ROMDATA_W ), conv_std_logic_vector( EP+DM,ROMDATA_W ), conv_std_logic_vector( EP+DM+FM,ROMDATA_W ), conv_std_logic_vector( EP+GM,ROMDATA_W ), conv_std_logic_vector( EP+GM+FM,ROMDATA_W ), conv_std_logic_vector( EP+GM+DM,ROMDATA_W ), conv_std_logic_vector( EP+GM+DM+FM,ROMDATA_W ), (others => '0'), conv_std_logic_vector( EP,ROMDATA_W ), conv_std_logic_vector( GP,ROMDATA_W ), conv_std_logic_vector( EP+GP,ROMDATA_W ), conv_std_logic_vector( DM,ROMDATA_W ), conv_std_logic_vector( DM+EP,ROMDATA_W ), conv_std_logic_vector( DM+GP,ROMDATA_W ), conv_std_logic_vector( DM+GP+EP,ROMDATA_W ), conv_std_logic_vector( FP,ROMDATA_W ), conv_std_logic_vector( FP+EP,ROMDATA_W ), conv_std_logic_vector( FP+GP,ROMDATA_W ), conv_std_logic_vector( FP+GP+EP,ROMDATA_W ), conv_std_logic_vector( FP+DM,ROMDATA_W ), conv_std_logic_vector( FP+DM+EP,ROMDATA_W ), conv_std_logic_vector( FP+DM+GP,ROMDATA_W ), conv_std_logic_vector( FP+DM+GP+EP,ROMDATA_W ), (others => '0'), conv_std_logic_vector( DM,ROMDATA_W ), conv_std_logic_vector( EP,ROMDATA_W ), conv_std_logic_vector( EP+DM,ROMDATA_W ), conv_std_logic_vector( FM,ROMDATA_W ), conv_std_logic_vector( FM+DM,ROMDATA_W ), conv_std_logic_vector( FM+EP,ROMDATA_W ), conv_std_logic_vector( FM+EP+DM,ROMDATA_W ), conv_std_logic_vector( GP,ROMDATA_W ), conv_std_logic_vector( GP+DM,ROMDATA_W ), conv_std_logic_vector( GP+EP,ROMDATA_W ), conv_std_logic_vector( GP+EP+DM,ROMDATA_W ), conv_std_logic_vector( GP+FM,ROMDATA_W ), conv_std_logic_vector( GP+FM+DM,ROMDATA_W ), conv_std_logic_vector( GP+FM+EP,ROMDATA_W ), conv_std_logic_vector( GP+FM+EP+DM,ROMDATA_W ) );begin process(clk) begin if clk = '1' and clk'event then datao <= rom( CONV_INTEGER(UNSIGNED(addr)) ); end if; end process; end RTL;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?