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

📄 decoder.vhd

📁 完整的TPC编译码VHDL程序
💻 VHD
字号:
-- Copyright (C) 1991-2006 Altera Corporation
-- Your use of Altera Corporation's design tools, logic functions 
-- and other software and tools, and its AMPP partner logic 
-- functions, and any output files any of the foregoing 
-- (including device programming or simulation files), and any 
-- associated documentation or information are expressly subject 
-- to the terms and conditions of the Altera Program License 
-- Subscription Agreement, Altera MegaCore Function License 
-- Agreement, or other applicable license agreement, including, 
-- without limitation, that your use is for the sole purpose of 
-- programming logic devices manufactured by Altera and sold by 
-- Altera or its authorized distributors.  Please refer to the 
-- applicable agreement for further details.

-- PROGRAM "Quartus II"
-- VERSION "Version 6.0 Build 202 06/20/2006 Service Pack 1 SJ Full Version"

LIBRARY ieee;
USE ieee.std_logic_1164.all; 

LIBRARY work;

ENTITY decoder IS 
	port
	(
		hclk :  IN  STD_LOGIC;
		symbolclk :  IN  STD_LOGIC;
		sym_enable :  IN  STD_LOGIC;
		Isymbol :  IN  STD_LOGIC_VECTOR(4 downto 0);
		Qsymbol :  IN  STD_LOGIC_VECTOR(4 downto 0);
		outq :  OUT  STD_LOGIC;
		oena :  OUT  STD_LOGIC;
		outclk :  OUT  STD_LOGIC;
		demdata :  OUT  STD_LOGIC
	);
END decoder;

ARCHITECTURE bdf_type OF decoder IS 

component core32
	PORT(clk : IN STD_LOGIC;
		 reset : IN STD_LOGIC;
		 itenum : IN STD_LOGIC_VECTOR(3 downto 0);
		 mid_data : IN STD_LOGIC_VECTOR(19 downto 0);
		 pri_data : IN STD_LOGIC_VECTOR(19 downto 0);
		 tdu0 : OUT STD_LOGIC;
		 tdu1 : OUT STD_LOGIC;
		 tdu2 : OUT STD_LOGIC;
		 tdu3 : OUT STD_LOGIC;
		 twe : OUT STD_LOGIC;
		 t_colad : OUT STD_LOGIC_VECTOR(2 downto 0);
		 t_rowad : OUT STD_LOGIC_VECTOR(5 downto 0);
		 tde0 : OUT STD_LOGIC_VECTOR(9 downto 0);
		 tde1 : OUT STD_LOGIC_VECTOR(9 downto 0);
		 tde2 : OUT STD_LOGIC_VECTOR(9 downto 0);
		 tde3 : OUT STD_LOGIC_VECTOR(9 downto 0);
		 tpri : OUT STD_LOGIC_VECTOR(19 downto 0)
	);
end component;

component dec32
	PORT(clk : IN STD_LOGIC;
		 hclk : IN STD_LOGIC;
		 framestart : IN STD_LOGIC;
		 ite_we : IN STD_LOGIC;
		 Idata : IN STD_LOGIC_VECTOR(4 downto 0);
		 ite_col_adr : IN STD_LOGIC_VECTOR(2 downto 0);
		 ite_row_adr : IN STD_LOGIC_VECTOR(5 downto 0);
		 lle0 : IN STD_LOGIC_VECTOR(9 downto 0);
		 lle1 : IN STD_LOGIC_VECTOR(9 downto 0);
		 lle2 : IN STD_LOGIC_VECTOR(9 downto 0);
		 lle3 : IN STD_LOGIC_VECTOR(9 downto 0);
		 prid : IN STD_LOGIC_VECTOR(19 downto 0);
		 Qdata : IN STD_LOGIC_VECTOR(4 downto 0);
		 fenaout : OUT STD_LOGIC;
		 tite_begin : OUT STD_LOGIC;
		 t_ite_b : OUT STD_LOGIC;
		 tbufre : OUT STD_LOGIC;
		 twe : OUT STD_LOGIC;
		 tre : OUT STD_LOGIC;
		 tromflag0 : OUT STD_LOGIC;
		 tromflag1 : OUT STD_LOGIC;
		 outflag : OUT STD_LOGIC;
		 saveflag : OUT STD_LOGIC;
		 oena : OUT STD_LOGIC;
		 tloopq : OUT STD_LOGIC;
		 ited : OUT STD_LOGIC_VECTOR(19 downto 0);
		 outpri : OUT STD_LOGIC_VECTOR(19 downto 0);
		 tbd0 : OUT STD_LOGIC_VECTOR(4 downto 0);
		 tbd1 : OUT STD_LOGIC_VECTOR(4 downto 0);
		 tbd2 : OUT STD_LOGIC_VECTOR(4 downto 0);
		 tbd3 : OUT STD_LOGIC_VECTOR(4 downto 0);
		 tbrad : OUT STD_LOGIC_VECTOR(8 downto 0);
		 tbuf_q : OUT STD_LOGIC_VECTOR(19 downto 0);
		 tbufq : OUT STD_LOGIC_VECTOR(19 downto 0);
		 tcnt0 : OUT STD_LOGIC_VECTOR(3 downto 0);
		 tcnt1 : OUT STD_LOGIC_VECTOR(4 downto 0);
		 tcnt2 : OUT STD_LOGIC_VECTOR(2 downto 0);
		 tcnt3 : OUT STD_LOGIC_VECTOR(4 downto 0);
		 tcntd3 : OUT STD_LOGIC_VECTOR(5 downto 0);
		 tcount : OUT STD_LOGIC_VECTOR(7 downto 0);
		 tI : OUT STD_LOGIC_VECTOR(4 downto 0);
		 tite_num : OUT STD_LOGIC_VECTOR(3 downto 0);
		 tQ : OUT STD_LOGIC_VECTOR(4 downto 0)
	);
end component;

component outbuf
	PORT(inclk : IN STD_LOGIC;
		 outclk : IN STD_LOGIC;
		 turn : IN STD_LOGIC;
		 we : IN STD_LOGIC;
		 lu0 : IN STD_LOGIC;
		 lu1 : IN STD_LOGIC;
		 lu2 : IN STD_LOGIC;
		 lu3 : IN STD_LOGIC;
		 save_ena : IN STD_LOGIC;
		 iteration_num : IN STD_LOGIC_VECTOR(3 downto 0);
		 wcol : IN STD_LOGIC_VECTOR(2 downto 0);
		 wrow : IN STD_LOGIC_VECTOR(5 downto 0);
		 tre : OUT STD_LOGIC;
		 tre2 : OUT STD_LOGIC;
		 owe0 : OUT STD_LOGIC;
		 owe1 : OUT STD_LOGIC;
		 tramq0 : OUT STD_LOGIC;
		 tramq1 : OUT STD_LOGIC;
		 toutq : OUT STD_LOGIC;
		 out_col : OUT STD_LOGIC_VECTOR(2 downto 0);
		 out_row : OUT STD_LOGIC_VECTOR(5 downto 0);
		 tcnt0 : OUT STD_LOGIC_VECTOR(4 downto 0);
		 tcnt1 : OUT STD_LOGIC_VECTOR(4 downto 0)
	);
end component;

signal	cle0 :  STD_LOGIC_VECTOR(9 downto 0);
signal	cle1 :  STD_LOGIC_VECTOR(9 downto 0);
signal	cle2 :  STD_LOGIC_VECTOR(9 downto 0);
signal	cle3 :  STD_LOGIC_VECTOR(9 downto 0);
signal	cmcol :  STD_LOGIC_VECTOR(2 downto 0);
signal	cmrow :  STD_LOGIC_VECTOR(5 downto 0);
signal	cmwe :  STD_LOGIC;
signal	cpri :  STD_LOGIC_VECTOR(19 downto 0);
signal	dec_itebdly :  STD_LOGIC;
signal	dec_ited :  STD_LOGIC_VECTOR(19 downto 0);
signal	dec_itenum :  STD_LOGIC_VECTOR(3 downto 0);
signal	dec_itep :  STD_LOGIC_VECTOR(19 downto 0);
signal	lu0 :  STD_LOGIC;
signal	lu1 :  STD_LOGIC;
signal	lu2 :  STD_LOGIC;
signal	lu3 :  STD_LOGIC;
signal	outstr :  STD_LOGIC;
signal	savestr :  STD_LOGIC;


BEGIN 
outclk <= symbolclk;



b2v_inst : core32
PORT MAP(clk => hclk,
		 reset => dec_itebdly,
		 itenum => dec_itenum,
		 mid_data => dec_ited,
		 pri_data => dec_itep,
		 tdu0 => lu0,
		 tdu1 => lu1,
		 tdu2 => lu2,
		 tdu3 => lu3,
		 twe => cmwe,
		 t_colad => cmcol,
		 t_rowad => cmrow,
		 tde0 => cle0,
		 tde1 => cle1,
		 tde2 => cle2,
		 tde3 => cle3,
		 tpri => cpri);

b2v_inst1 : dec32
PORT MAP(clk => symbolclk,
		 hclk => hclk,
		 framestart => sym_enable,
		 ite_we => cmwe,
		 Idata => Isymbol,
		 ite_col_adr => cmcol,
		 ite_row_adr => cmrow,
		 lle0 => cle0,
		 lle1 => cle1,
		 lle2 => cle2,
		 lle3 => cle3,
		 prid => cpri,
		 Qdata => Qsymbol,
		 t_ite_b => dec_itebdly,
		 outflag => outstr,
		 saveflag => savestr,
		 oena => oena,
		 tloopq => demdata,
		 ited => dec_ited,
		 outpri => dec_itep,
		 tite_num => dec_itenum);

b2v_inst3 : outbuf
PORT MAP(inclk => hclk,
		 outclk => symbolclk,
		 turn => outstr,
		 we => cmwe,
		 lu0 => lu0,
		 lu1 => lu1,
		 lu2 => lu2,
		 lu3 => lu3,
		 save_ena => savestr,
		 iteration_num => dec_itenum,
		 wcol => cmcol,
		 wrow => cmrow,
		 toutq => outq);

END; 

⌨️ 快捷键说明

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