📄 mc8051_struct.vhd
字号:
ov : OUT std_logic;
rs : OUT std_logic_vector( 1 DOWNTO 0 );
data_gb : INOUT std_logic_vector( 7 DOWNTO 0 )
);
END COMPONENT;
COMPONENT serial
PORT (
addr_gb : IN std_logic_vector( 7 DOWNTO 0 );
indirect_sel : IN std_logic;
int_clk : IN std_logic;
int_rst : IN std_logic;
rd_gb : IN std_logic;
rxd : IN std_logic;
wr_gb : IN std_logic;
acknow : OUT std_logic;
rxd_ctrl : OUT std_logic;
txd : OUT std_logic;
txd_ctrl : OUT std_logic;
data_gb : INOUT std_logic_vector( 7 DOWNTO 0 )
);
END COMPONENT;
COMPONENT sp
PORT (
dec_rd_sp : IN std_logic;
inc_wr_sp : IN std_logic;
int_clk : IN std_logic;
int_rst : IN std_logic;
acknow : INOUT std_logic;
addr_gb : INOUT std_logic_vector( 7 DOWNTO 0 );
data_gb : INOUT std_logic_vector( 7 DOWNTO 0 );
indirect_sel : INOUT std_logic;
rd_gb : INOUT std_logic;
wr_gb : INOUT std_logic
);
END COMPONENT;
-- Optional embedded configurations
--synopsys translate_off
FOR ALL : acc_reg USE ENTITY mc8051.acc_reg;
FOR ALL : b_sfr USE ENTITY mc8051.b_sfr;
FOR ALL : cpu_core USE ENTITY mc8051.cpu_core;
FOR ALL : dptr_reg USE ENTITY mc8051.dptr_reg;
FOR ALL : hi_dmem USE ENTITY mc8051.hi_dmem;
FOR ALL : inter_ctrl USE ENTITY mc8051.inter_ctrl;
FOR ALL : lo_dmem USE ENTITY mc8051.lo_dmem;
FOR ALL : osc_sm USE ENTITY mc8051.osc_sm;
FOR ALL : p0_drv USE ENTITY mc8051.p0_drv;
FOR ALL : p1_drv USE ENTITY mc8051.p1_drv;
FOR ALL : p2_drv USE ENTITY mc8051.p2_drv;
FOR ALL : p3_drv USE ENTITY mc8051.p3_drv;
FOR ALL : prog_rom USE ENTITY mc8051.prog_rom;
FOR ALL : program_ctrl USE ENTITY mc8051.program_ctrl;
FOR ALL : psw USE ENTITY mc8051.psw;
FOR ALL : serial USE ENTITY mc8051.serial;
FOR ALL : sp USE ENTITY mc8051.sp;
--synopsys translate_on
BEGIN
-- Architecture concurrent statements
-- HDL Text Block 5
int_rst <= '0' WHEN rst='0' OR rst='L' ELSE
'1' WHEN rst='1' OR rst='H';
-- HDL Text Block 6
int_clk <= xtal1;
-- HDL Text Block 7
latch_pins <= '1' WHEN cycle_states = s1p1 ELSE '0';
-- Instance port mappings.
acc_reg1 : acc_reg
PORT MAP (
addr_gb => addr_gb(7 downto 0),
indirect_sel => indirect_sel,
int_clk => int_clk,
int_rst => int_rst,
rd_gb => rd_gb,
wr_acc => wr_acc,
wr_gb => wr_gb,
acc => acc(7 downto 0),
acknow => acknow,
parity => parity,
data_gb => data_gb(7 downto 0)
);
b_sfr1 : b_sfr
PORT MAP (
addr_gb => addr_gb(7 downto 0),
indirect_sel => indirect_sel,
int_clk => int_clk,
int_rst => int_rst,
rd_gb => rd_gb,
wr_gb => wr_gb,
acknow => acknow,
data_gb => data_gb(7 downto 0)
);
I1 : cpu_core
PORT MAP (
ac => ac,
acc => acc(7 downto 0),
acknow => acknow,
cy => cy,
int_clk => int_clk,
int_rst => int_rst,
ir => ir(7 downto 0),
new_ir => new_ir,
ov => ov,
rs => rs(1 downto 0),
ac_out => ac_out,
addr_gb => addr_gb(7 downto 0),
cmp_true => cmp_true,
cy_out => cy_out,
dec_rd_sp => dec_rd_sp,
inc_wr_sp => inc_wr_sp,
indirect_sel => indirect_sel,
ov_out => ov_out,
rd_gb => rd_gb,
rd_pmem1 => rd_pmem1,
rd_pmem2 => rd_pmem2,
read_latch => read_latch,
wr_acc => wr_acc,
wr_gb => wr_gb,
wr_out => wr_out,
data_gb => data_gb(7 downto 0)
);
dptr1 : dptr_reg
PORT MAP (
addr_gb => addr_gb(7 downto 0),
indirect_sel => indirect_sel,
int_clk => int_clk,
int_rst => int_rst,
rd_gb => rd_gb,
wr_gb => wr_gb,
acknow => acknow,
dptr => dptr(15 downto 0),
data_gb => data_gb(7 downto 0)
);
hi_dmem1 : hi_dmem
PORT MAP (
addr_gb => addr_gb(7 downto 0),
indirect_sel => indirect_sel,
int_clk => int_clk,
int_rst => int_rst,
rd_gb => rd_gb,
wr_gb => wr_gb,
acknow => acknow,
data_gb => data_gb(7 downto 0)
);
inter_ctrl1 : inter_ctrl
PORT MAP (
P0 => P0(7 downto 0),
acknow => acknow,
cycle_states => cycle_states(3 downto 0),
dptr => dptr(15 downto 0),
ea_n => ea_n,
int_clk => int_clk,
int_rst => int_rst,
ir => ir(7 downto 0),
last_cycle => last_cycle,
pdat_loc => pdat_loc(15 downto 0),
rom_data => rom_data(7 downto 0),
rs => rs(1 downto 0),
addr_gb => addr_gb(7 downto 0),
ale => ale,
indirect_sel => indirect_sel,
p0_addr => p0_addr(7 downto 0),
p0_ctrl => p0_ctrl,
p2_addr => p2_addr(7 downto 0),
p2_ctrl => p2_ctrl,
pdata => pdata(7 downto 0),
psen_n => psen_n,
rd_gb => rd_gb,
rd_n => rd_n,
rd_n_ctrl => rd_n_ctrl,
rom_rd_n => rom_rd_n,
wr_gb => wr_gb,
wr_n => wr_n,
wr_n_ctrl => wr_n_ctrl,
data_gb => data_gb(7 downto 0)
);
lo_dmem1 : lo_dmem
PORT MAP (
addr_gb => addr_gb(7 downto 0),
int_clk => int_clk,
int_rst => int_rst,
rd_gb => rd_gb,
wr_gb => wr_gb,
acknow => acknow,
data_gb => data_gb(7 downto 0)
);
osc : osc_sm
PORT MAP (
int_clk => int_clk,
int_rst => int_rst,
xtal1 => xtal1,
cycle_states => cycle_states(3 downto 0),
xtal2 => xtal2
);
p0_drv1 : p0_drv
PORT MAP (
addr_gb => addr_gb(7 downto 0),
indirect_sel => indirect_sel,
int_clk => int_clk,
int_rst => int_rst,
latch_pins => latch_pins,
p0_addr => p0_addr(7 downto 0),
p0_ctrl => p0_ctrl,
rd_gb => rd_gb,
read_latch => read_latch,
wr_gb => wr_gb,
acknow => acknow,
P0 => P0(7 downto 0),
data_gb => data_gb(7 downto 0)
);
p1_drv1 : p1_drv
PORT MAP (
addr_gb => addr_gb(7 downto 0),
indirect_sel => indirect_sel,
int_clk => int_clk,
int_rst => int_rst,
latch_pins => latch_pins,
rd_gb => rd_gb,
read_latch => read_latch,
wr_gb => wr_gb,
acknow => acknow,
P1 => P1(7 downto 0),
data_gb => data_gb(7 downto 0)
);
p2_drv1 : p2_drv
PORT MAP (
addr_gb => addr_gb(7 downto 0),
indirect_sel => indirect_sel,
int_clk => int_clk,
int_rst => int_rst,
latch_pins => latch_pins,
p2_addr => p2_addr(7 downto 0),
p2_ctrl => p2_ctrl,
rd_gb => rd_gb,
read_latch => read_latch,
wr_gb => wr_gb,
acknow => acknow,
P2 => P2(7 downto 0),
data_gb => data_gb(7 downto 0)
);
p3_drv1 : p3_drv
PORT MAP (
addr_gb => addr_gb(7 downto 0),
indirect_sel => indirect_sel,
int_clk => int_clk,
int_rst => int_rst,
latch_pins => latch_pins,
rd_gb => rd_gb,
rd_n => rd_n,
rd_n_ctrl => rd_n_ctrl,
read_latch => read_latch,
rxd_ctrl => rxd_ctrl,
txd => txd,
txd_ctrl => txd_ctrl,
wr_gb => wr_gb,
wr_n => wr_n,
wr_n_ctrl => wr_n_ctrl,
acknow => acknow,
rxd => rxd,
P3 => P3(7 downto 0),
data_gb => data_gb(7 downto 0)
);
I2 : prog_rom
PORT MAP (
int_clk => int_clk,
int_rst => int_rst,
p0_addr => p0_addr(7 downto 0),
p2_addr => p2_addr(7 downto 0),
rom_rd_n => rom_rd_n,
rom_data => rom_data(7 downto 0)
);
I0 : program_ctrl
PORT MAP (
cmp_true => cmp_true,
cycle_states => cycle_states(3 downto 0),
dptr => dptr(15 downto 0),
int_clk => int_clk,
int_rst => int_rst,
pdata => pdata(7 downto 0),
rd_pmem1 => rd_pmem1,
rd_pmem2 => rd_pmem2,
addr_gb => addr_gb(7 downto 0),
dec_rd_sp => dec_rd_sp,
inc_wr_sp => inc_wr_sp,
indirect_sel => indirect_sel,
ir => ir(7 downto 0),
last_cycle => last_cycle,
new_ir => new_ir,
pdat_loc => pdat_loc(15 downto 0),
rd_gb => rd_gb,
wr_gb => wr_gb,
acknow => acknow,
data_gb => data_gb(7 downto 0)
);
psw1 : psw
PORT MAP (
ac_out => ac_out,
addr_gb => addr_gb(7 downto 0),
cy_out => cy_out,
indirect_sel => indirect_sel,
int_clk => int_clk,
int_rst => int_rst,
ov_out => ov_out,
parity => parity,
rd_gb => rd_gb,
wr_gb => wr_gb,
wr_out => wr_out,
ac => ac,
acknow => acknow,
cy => cy,
ov => ov,
rs => rs(1 downto 0),
data_gb => data_gb(7 downto 0)
);
serial1 : serial
PORT MAP (
addr_gb => addr_gb(7 downto 0),
indirect_sel => indirect_sel,
int_clk => int_clk,
int_rst => int_rst,
rd_gb => rd_gb,
rxd => rxd,
wr_gb => wr_gb,
acknow => acknow,
rxd_ctrl => rxd_ctrl,
txd => txd,
txd_ctrl => txd_ctrl,
data_gb => data_gb(7 downto 0)
);
sp1 : sp
PORT MAP (
dec_rd_sp => dec_rd_sp,
inc_wr_sp => inc_wr_sp,
int_clk => int_clk,
int_rst => int_rst,
acknow => acknow,
addr_gb => addr_gb(7 downto 0),
data_gb => data_gb(7 downto 0),
indirect_sel => indirect_sel,
rd_gb => rd_gb,
wr_gb => wr_gb
);
END struct;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -