📄 mc8051_p.vhd
字号:
IC_CLR_C,
IC_CLR_BIT,
IC_CPL_A,
IC_CPL_C,
IC_CPL_BIT,
IC_DA_A,
IC_DEC_A,
IC_DEC_RR,
IC_DEC_D,
IC_DEC_ATRI,
IC_DIV_AB,
IC_DJNZ_RR,
IC_DJNZ_D,
IC_INC_A,
IC_INC_RR,
IC_INC_D,
IC_INC_ATRI,
IC_INC_DPTR,
IC_JB,
IC_JBC,
IC_JC,
IC_JMP_A_DPTR,
IC_JNB,
IC_JNC,
IC_JNZ,
IC_JZ,
IC_LCALL,
IC_LJMP,
IC_MOV_A_RR,
IC_MOV_A_D,
IC_MOV_A_ATRI,
IC_MOV_A_DATA,
IC_MOV_RR_A,
IC_MOV_RR_D,
IC_MOV_RR_DATA,
IC_MOV_D_A,
IC_MOV_D_RR,
IC_MOV_D_D,
IC_MOV_D_ATRI,
IC_MOV_D_DATA,
IC_MOV_ATRI_A,
IC_MOV_ATRI_D,
IC_MOV_ATRI_DATA,
IC_MOVC_A_ATDPTR,
IC_MOVC_A_ATPC,
IC_MOVX_A_ATRI,
IC_MOVX_A_ATDPTR,
IC_MOVX_ATRI_A,
IC_MOVX_ATDPTR_A,
IC_MOV_C_BIT,
IC_MOV_BIT_C,
IC_MOV_DPTR_DATA,
IC_MUL_AB,
IC_NOP,
IC_ORL_A_RR,
IC_ORL_A_D,
IC_ORL_A_ATRI,
IC_ORL_A_DATA,
IC_ORL_D_A,
IC_ORL_D_DATA,
IC_ORL_C_BIT,
IC_ORL_C_NBIT,
IC_POP,
IC_PUSH,
IC_RET,
IC_RETI,
IC_RL_A,
IC_RLC_A,
IC_RR_A,
IC_RRC_A,
IC_SETB_C,
IC_SETB_BIT,
IC_SJMP,
IC_SUBB_A_RR,
IC_SUBB_A_D,
IC_SUBB_A_ATRI,
IC_SUBB_A_DATA,
IC_SWAP_A,
IC_XCH_A_RR,
IC_XCH_A_D,
IC_XCH_A_ATRI,
IC_XCHD_A_ATRI,
IC_XRL_A_RR,
IC_XRL_A_D,
IC_XRL_A_ATRI,
IC_XRL_A_DATA,
IC_XRL_D_A,
IC_XRL_D_DATA);
type t_tmr_lv is array(C_IMPL_N_TMR-1 downto 0) of
std_logic_vector(7 downto 0);
type t_tmr_us is array(C_IMPL_N_TMR-1 downto 0) of unsigned(7 downto 0);
type t_tmr_us2 is array(C_IMPL_N_TMR-1 downto 0) of unsigned(1 downto 0);
type t_tmr_l is array(C_IMPL_N_TMR-1 downto 0) of std_logic;
type t_siu_lv is array(C_IMPL_N_SIU-1 downto 0) of
std_logic_vector(7 downto 0);
type t_siu_us is array(C_IMPL_N_SIU-1 downto 0) of unsigned(7 downto 0);
type t_siu_l is array(C_IMPL_N_SIU-1 downto 0) of std_logic;
type t_ext_l is array(C_IMPL_N_EXT-1 downto 0) of std_logic;
component addsub_cy
generic (DWIDTH : integer);
port (opa_i : in std_logic_vector(DWIDTH-1 downto 0);
opb_i : in std_logic_vector(DWIDTH-1 downto 0);
addsub_i : in std_logic;
cy_i : in std_logic;
cy_o : out std_logic;
rslt_o : out std_logic_vector(DWIDTH-1 downto 0));
end component;
component addsub_ovcy
generic (DWIDTH : integer);
port (opa_i : in std_logic_vector(DWIDTH-1 downto 0);
opb_i : in std_logic_vector(DWIDTH-1 downto 0);
addsub_i : in std_logic;
cy_i : in std_logic;
cy_o : out std_logic;
ov_o : out std_logic;
rslt_o : out std_logic_vector(DWIDTH-1 downto 0));
end component;
component addsub_core
generic (DWIDTH : integer);
port (opa_i : in std_logic_vector(DWIDTH-1 downto 0);
opb_i : in std_logic_vector(DWIDTH-1 downto 0);
addsub_i : in std_logic;
cy_i : in std_logic;
cy_o : out std_logic_vector((DWIDTH-1)/4 downto 0);
ov_o : out std_logic;
rslt_o : out std_logic_vector(DWIDTH-1 downto 0));
end component;
component alucore
generic (DWIDTH : integer);
port (op_a_i : in std_logic_vector(DWIDTH-1 downto 0);
op_b_i : in std_logic_vector(DWIDTH-1 downto 0);
alu_cmd_i : in std_logic_vector(3 downto 0);
cy_i : in std_logic_vector((DWIDTH-1)/4 downto 0);
cy_o : out std_logic_vector((DWIDTH-1)/4 downto 0);
result_o : out std_logic_vector(DWIDTH-1 downto 0));
end component;
component comb_divider
generic (
DWIDTH : integer);
port (
dvdnd_i : in std_logic_vector(DWIDTH-1 downto 0);
dvsor_i : in std_logic_vector(DWIDTH-1 downto 0);
qutnt_o : out std_logic_vector(DWIDTH-1 downto 0);
rmndr_o : out std_logic_vector(DWIDTH-1 downto 0));
end component;
component comb_mltplr
generic (
DWIDTH : integer);
port (
mltplcnd_i : in std_logic_vector(DWIDTH-1 downto 0);
mltplctr_i : in std_logic_vector(DWIDTH-1 downto 0);
product_o : out std_logic_vector((DWIDTH*2)-1 downto 0));
end component;
component dcml_adjust
generic (
DWIDTH : integer);
port (
data_i : in std_logic_vector(DWIDTH-1 downto 0);
cy_i : in std_logic_vector((DWIDTH-1)/4 downto 0);
data_o : out std_logic_vector(DWIDTH-1 downto 0);
cy_o : out std_logic);
end component;
component alumux
generic (DWIDTH : integer);
port (rom_data_i : in std_logic_vector(DWIDTH-1 downto 0);
ram_data_i : in std_logic_vector(DWIDTH-1 downto 0);
acc_i : in std_logic_vector(DWIDTH-1 downto 0);
cmd_i : in std_logic_vector(5 downto 0);
cy_i : in std_logic_vector((DWIDTH-1)/4 downto 0);
ov_i : in std_logic;
cy_o : out std_logic_vector((DWIDTH-1)/4 downto 0);
ov_o : out std_logic;
result_a_o : out std_logic_vector(DWIDTH-1 downto 0);
result_b_o : out std_logic_vector(DWIDTH-1 downto 0);
result_i : in std_logic_vector(DWIDTH-1 downto 0);
new_cy_i : in std_logic_vector((DWIDTH-1)/4 downto 0);
addsub_rslt_i : in std_logic_vector(DWIDTH-1 downto 0);
addsub_cy_i : in std_logic_vector((DWIDTH-1)/4 downto 0);
addsub_ov_i : in std_logic;
op_a_o : out std_logic_vector(DWIDTH-1 downto 0);
op_b_o : out std_logic_vector(DWIDTH-1 downto 0);
alu_cmd_o : out std_logic_vector(3 downto 0);
opa_o : out std_logic_vector(DWIDTH-1 downto 0);
opb_o : out std_logic_vector(DWIDTH-1 downto 0);
addsub_o : out std_logic;
addsub_cy_o : out std_logic;
dvdnd_o : out std_logic_vector(DWIDTH-1 downto 0);
dvsor_o : out std_logic_vector(DWIDTH-1 downto 0);
qutnt_i : in std_logic_vector(DWIDTH-1 downto 0);
rmndr_i : in std_logic_vector(DWIDTH-1 downto 0);
mltplcnd_o : out std_logic_vector(DWIDTH-1 downto 0);
mltplctr_o : out std_logic_vector(DWIDTH-1 downto 0);
product_i : in std_logic_vector((DWIDTH*2)-1 downto 0);
dcml_data_o : out std_logic_vector(DWIDTH-1 downto 0);
dcml_data_i : in std_logic_vector(DWIDTH-1 downto 0);
dcml_cy_i : in std_logic);
end component;
component mc8051_alu
generic (
DWIDTH : integer);
port (
rom_data_i : in std_logic_vector(DWIDTH-1 downto 0);
ram_data_i : in std_logic_vector(DWIDTH-1 downto 0);
acc_i : in std_logic_vector(DWIDTH-1 downto 0);
cmd_i : in std_logic_vector(5 downto 0);
cy_i : in std_logic_vector((DWIDTH-1)/4 downto 0);
ov_i : in std_logic;
new_cy_o : out std_logic_vector((DWIDTH-1)/4 downto 0);
new_ov_o : out std_logic;
result_a_o : out std_logic_vector(DWIDTH-1 downto 0);
result_b_o : out std_logic_vector(DWIDTH-1 downto 0));
end component;
component mc8051_siu
port (clk : in std_logic;
reset : in std_logic;
tf_i : in std_logic;
trans_i : in std_logic;
rxd_i : in std_logic;
scon_i : in std_logic_vector(5 downto 0);
sbuf_i : in std_logic_vector(7 downto 0);
smod_i : in std_logic;
sbuf_o : out std_logic_vector(7 downto 0);
scon_o : out std_logic_vector(2 downto 0);
rxdwr_o : out std_logic;
rxd_o : out std_logic;
txd_o : out std_logic);
end component;
component mc8051_tmrctr
port (clk : in std_logic;
reset : in std_logic;
int0_i : in std_logic;
int1_i : in std_logic;
t0_i : in std_logic;
t1_i : in std_logic;
tmod_i : in std_logic_vector(7 downto 0);
tcon_tr0_i : in std_logic;
tcon_tr1_i : in std_logic;
reload_i : in std_logic_vector(7 downto 0);
wt_en_i : in std_logic;
wt_i : in std_logic_vector(1 downto 0);
th0_o : out std_logic_vector(7 downto 0);
tl0_o : out std_logic_vector(7 downto 0);
th1_o : out std_logic_vector(7 downto 0);
tl1_o : out std_logic_vector(7 downto 0);
tf0_o : out std_logic;
tf1_o : out std_logic);
end component;
component control_fsm
port ( state_i : in t_state; -- actual state
help_i : in std_logic_vector (7 downto 0); -- general help-reg
bit_data_i : in std_logic; -- bitdata from regs
aludata_i : in std_logic_vector (7 downto 0); -- ALU result
command_i : in std_logic_vector (7 downto 0); -- actual command
inthigh_i : in std_logic; -- high priority int is running
intlow_i : in std_logic; -- low priority int is running
intpre_i : in std_logic; -- an interrupt must start
intpre2_i : in std_logic; -- prepare for interrupt
intblock_i : in std_logic; -- interrupt delay at RETI, IE, IP
ti_i : in std_logic;
ri_i : in std_logic;
ie0_i : in std_logic;
ie1_i : in std_logic;
tf0_i : in std_logic;
tf1_i : in std_logic;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -