📄 mdct_vhd.txt
字号:
--------------------------------------------------------------------------------
-- --
-- V H D L F I L E --
-- COPYRIGHT (C) 2006 --
-- --
--------------------------------------------------------------------------------
--
-- Title : DCT
-- Design : MDCT Core
-- Author : Michal Krepa
-- Company : None
--
--------------------------------------------------------------------------------
--
-- File : MDCT.VHD
-- Created : Sat Feb 25 16:12 2006
--
--------------------------------------------------------------------------------
--
-- Description : Discrete Cosine Transform - chip top level (w/ memories)
--
--------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.all;
library WORK;
use WORK.MDCT_PKG.all;
entity MDCT is
port(
clk : in STD_LOGIC;
rst : in std_logic;
dcti : in std_logic_vector(IP_W-1 downto 0);
idv : in STD_LOGIC;
odv : out STD_LOGIC;
dcto : out std_logic_vector(COE_W-1 downto 0);
-- debug
odv1 : out STD_LOGIC;
dcto1 : out std_logic_vector(OP_W-1 downto 0)
);
end MDCT;
architecture RTL of MDCT is
------------------------------
-- 1D DCT
------------------------------
component DCT1D
port(
clk : in STD_LOGIC;
rst : in std_logic;
dcti : in std_logic_vector(IP_W-1 downto 0);
idv : in STD_LOGIC;
romedatao0 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao1 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao2 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao3 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao4 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao5 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao6 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao7 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao8 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao0 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao1 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao2 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao3 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao4 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao5 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao6 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao7 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao8 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
odv : out STD_LOGIC;
dcto : out std_logic_vector(OP_W-1 downto 0);
romeaddro0 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro1 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro2 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro3 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro4 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro5 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro6 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro7 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro8 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro0 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro1 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro2 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro3 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro4 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro5 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro6 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro7 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro8 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
ramwaddro : out STD_LOGIC_VECTOR(RAMADRR_W-1 downto 0);
ramdatai : out STD_LOGIC_VECTOR(RAMDATA_W-1 downto 0);
ramwe : out STD_LOGIC;
wmemsel : out STD_LOGIC
);
end component;
------------------------------
-- 1D DCT (2nd stage)
------------------------------
component DCT2D
port(
clk : in STD_LOGIC;
rst : in std_logic;
romedatao0 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao1 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao2 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao3 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao4 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao5 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao6 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao7 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao8 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao9 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romedatao10 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao0 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao1 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao2 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao3 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao4 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao5 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao6 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao7 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao8 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao9 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
romodatao10 : in STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
ramdatao : in STD_LOGIC_VECTOR(RAMDATA_W-1 downto 0);
dataready : in STD_LOGIC;
odv : out STD_LOGIC;
dcto : out std_logic_vector(OP_W-1 downto 0);
romeaddro0 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro1 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro2 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro3 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro4 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro5 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro6 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro7 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro8 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro9 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romeaddro10 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro0 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro1 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro2 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro3 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro4 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro5 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro6 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro7 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro8 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro9 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
romoaddro10 : out STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
ramraddro : out STD_LOGIC_VECTOR(RAMADRR_W-1 downto 0);
rmemsel : out STD_LOGIC;
datareadyack : out STD_LOGIC
);
end component;
------------------------------
-- RAM
------------------------------
component RAM
port (
d : in STD_LOGIC_VECTOR(RAMDATA_W-1 downto 0);
waddr : in STD_LOGIC_VECTOR(RAMADRR_W-1 downto 0);
raddr : in STD_LOGIC_VECTOR(RAMADRR_W-1 downto 0);
we : in STD_LOGIC;
clk : in STD_LOGIC;
q : out STD_LOGIC_VECTOR(RAMDATA_W-1 downto 0)
);
end component;
------------------------------
-- ROME
------------------------------
component ROME
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 component;
------------------------------
-- ROMO
------------------------------
component ROMO
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 component;
------------------------------
-- DBUFCTL
------------------------------
component DBUFCTL
port(
clk : in STD_LOGIC;
rst : in STD_LOGIC;
wmemsel : in STD_LOGIC;
rmemsel : in STD_LOGIC;
datareadyack : in STD_LOGIC;
memswitchwr : out STD_LOGIC;
memswitchrd : out STD_LOGIC;
dataready : out STD_LOGIC
);
end component;
signal romedatao0_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romedatao1_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romedatao2_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romedatao3_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romedatao4_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romedatao5_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romedatao6_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romedatao7_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romedatao8_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romodatao0_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romodatao1_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romodatao2_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romodatao3_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romodatao4_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romodatao5_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romodatao6_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romodatao7_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romodatao8_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal ramdatao_s : STD_LOGIC_VECTOR(RAMDATA_W-1 downto 0);
signal romeaddro0_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romeaddro1_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romeaddro2_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romeaddro3_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romeaddro4_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romeaddro5_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romeaddro6_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romeaddro7_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romeaddro8_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romoaddro0_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romoaddro1_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romoaddro2_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romoaddro3_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romoaddro4_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romoaddro5_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romoaddro6_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romoaddro7_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romoaddro8_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal ramraddro_s : STD_LOGIC_VECTOR(RAMADRR_W-1 downto 0);
signal ramwaddro_s : STD_LOGIC_VECTOR(RAMADRR_W-1 downto 0);
signal ramdatai_s : STD_LOGIC_VECTOR(RAMDATA_W-1 downto 0);
signal ramwe_s : STD_LOGIC;
signal rome2datao0_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal rome2datao1_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal rome2datao2_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal rome2datao3_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal rome2datao4_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal rome2datao5_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal rome2datao6_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal rome2datao7_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal rome2datao8_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal rome2datao9_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal rome2datao10_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romo2datao0_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romo2datao1_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romo2datao2_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romo2datao3_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romo2datao4_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romo2datao5_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romo2datao6_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romo2datao7_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romo2datao8_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romo2datao9_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal romo2datao10_s : STD_LOGIC_VECTOR(ROMDATA_W-1 downto 0);
signal rome2addro0_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal rome2addro1_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal rome2addro2_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal rome2addro3_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal rome2addro4_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal rome2addro5_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal rome2addro6_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal rome2addro7_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal rome2addro8_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal rome2addro9_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal rome2addro10_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romo2addro0_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romo2addro1_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romo2addro2_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romo2addro3_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
signal romo2addro4_s : STD_LOGIC_VECTOR(ROMADDR_W-1 downto 0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -