📄 mc8051_p.vhd
字号:
IC_ANL_C_BIT, IC_ANL_C_NBIT, IC_CJNE_A_D, IC_CJNE_A_DATA, IC_CJNE_RR_DATA, IC_CJNE_ATRI_DATA, IC_CLR_A, 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -