📄 formatter_struct.vhd
字号:
-- -----------------------------------------------------------------------------
-- CPU86 - VHDL CPU8088 IP core --
-- Copyright (C) 2005-2008 HT-LAB --
-- --
-- Contact/bugs : http://www.ht-lab.com/misc/feedback.html --
-- Web : http://www.ht-lab.com --
-- --
-- CPU86 is released as open-source under the Aladdin Free Public License. --
-- Contact HT-Lab for commercial applications and/or support contracts. --
-- --
-- Full details of the license can be found in the file "cpu86_license.txt" --
-- which is included in the distribution zip file. --
-- -----------------------------------------------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
ENTITY formatter IS
PORT(
lutbus : IN std_logic_vector (15 DOWNTO 0);
mux_addr : OUT std_logic_vector (2 DOWNTO 0);
mux_data : OUT std_logic_vector (3 DOWNTO 0);
mux_reg : OUT std_logic_vector (2 DOWNTO 0);
nbreq : OUT std_logic_vector (2 DOWNTO 0)
);
-- Declarations
END formatter ;
ARCHITECTURE struct OF formatter IS
-- Architecture declarations
-- Internal signal declarations
SIGNAL dout : std_logic_vector(15 DOWNTO 0);
SIGNAL dout4 : std_logic_vector(7 DOWNTO 0);
SIGNAL dout5 : std_logic_vector(7 DOWNTO 0);
SIGNAL muxout : std_logic_vector(7 DOWNTO 0);
-- ModuleWare signal declarations(v1.9) for instance 'I1' of 'split'
SIGNAL mw_I1temp_din : std_logic_vector(15 DOWNTO 0);
-- Component Declarations
COMPONENT a_table
PORT (
addr : IN std_logic_vector (15 DOWNTO 0);
dout : OUT std_logic_vector (2 DOWNTO 0)
);
END COMPONENT;
COMPONENT d_table
PORT (
addr : IN std_logic_vector (15 DOWNTO 0);
dout : OUT std_logic_vector (3 DOWNTO 0)
);
END COMPONENT;
COMPONENT m_table
PORT (
ireg : IN std_logic_vector (7 DOWNTO 0);
modrrm : IN std_logic_vector (7 DOWNTO 0);
muxout : OUT std_logic_vector (7 DOWNTO 0)
);
END COMPONENT;
COMPONENT n_table
PORT (
addr : IN std_logic_vector (15 DOWNTO 0);
dout : OUT std_logic_vector (2 DOWNTO 0)
);
END COMPONENT;
COMPONENT r_table
PORT (
addr : IN std_logic_vector (15 DOWNTO 0);
dout : OUT std_logic_vector (2 DOWNTO 0)
);
END COMPONENT;
BEGIN
-- ModuleWare code(v1.9) for instance 'I7' of 'merge'
dout <= dout4 & muxout;
-- ModuleWare code(v1.9) for instance 'I1' of 'split'
mw_I1temp_din <= lutbus;
i1combo_proc: PROCESS (mw_I1temp_din)
VARIABLE temp_din: std_logic_vector(15 DOWNTO 0);
BEGIN
temp_din := mw_I1temp_din(15 DOWNTO 0);
dout5 <= temp_din(7 DOWNTO 0);
dout4 <= temp_din(15 DOWNTO 8);
END PROCESS i1combo_proc;
-- Instance port mappings.
I2 : a_table
PORT MAP (
addr => dout,
dout => mux_addr
);
I3 : d_table
PORT MAP (
addr => dout,
dout => mux_data
);
I6 : m_table
PORT MAP (
ireg => dout4,
modrrm => dout5,
muxout => muxout
);
I4 : n_table
PORT MAP (
addr => dout,
dout => nbreq
);
I5 : r_table
PORT MAP (
addr => dout,
dout => mux_reg
);
END struct;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -