📄 chip8051.vhd
字号:
-----------------------------------------------------------------
-- C8051 core
-----------------------------------------------------------------
U_C8051 : C8051
port map (
clk => xtal1,
reset => reset,
ea => ea,
p0i => p0drv,
p1i => p1drv,
p2i => p2drv,
p3i => p3drv,
psen => psen,
ale => ale,
debugreq => debugreq,
debugstep => debugstep,
debugprog => debugprog,
debugack => debugack,
flush => flush,
fetch => fetch,
acc => acc,
p0o => p0drn,
p1o => p1drn,
p2o => p2drn,
p3o => p3drn,
romdatai => romdatai,
romaddr => romaddr(ROMSIZE-1 downto 0),
romoe => romoe,
ramdatai => ramdatai,
ramdatao => ramdatao,
ramaddr => ramaddr(RAMSIZE-1 downto 0),
ramwe => ramwe,
ramoe => ramoe,
sfrdatai => sfrdatai,
sfrdatao => sfrdatao,
sfraddr => sfraddr,
sfrwe => sfrwe,
sfroe => sfroe
);
-----------------------------------------------------------------
-- On-chip Open Drain buffer for Port 0
-----------------------------------------------------------------
U_CHIP_DRAIN_0 : INTERNAL_OPEN_DRAIN
generic map(
WIDTH => 8
)
port map(
input => p0drn,
output => p0
);
-----------------------------------------------------------------
-- On-chip Open Drain buffer for Port 1
-----------------------------------------------------------------
U_CHIP_DRAIN_1 : INTERNAL_OPEN_DRAIN
generic map(
WIDTH => 8
)
port map(
input => p1drn,
output => p1
);
-----------------------------------------------------------------
-- On-chip Open Drain buffer for Port 2
-----------------------------------------------------------------
U_CHIP_DRAIN_2 : INTERNAL_OPEN_DRAIN
generic map(
WIDTH => 8
)
port map(
input => p2drn,
output => p2
);
-----------------------------------------------------------------
-- On-chip Open Drain buffer for Port 3
-----------------------------------------------------------------
U_CHIP_DRAIN_3 : INTERNAL_OPEN_DRAIN
generic map(
WIDTH => 8
)
port map(
input => p3drn,
output => p3
);
-----------------------------------------------------------------
-- On-chip Data Memory unit
-----------------------------------------------------------------
U_CHIP_RAM : INTERNAL_DATA_MEMORY
generic map(
DATAWIDTH => 8,
ADDRWIDTH => RAMSIZE
)
port map(
addrbus => ramaddr(RAMSIZE-1 downto 0),
rd => ramoe,
wr => ramwe,
databusi => ramdatao(7 downto 0),
databuso => ramdatai(7 downto 0)
);
-----------------------------------------------------------------
-- On-chip Program Memory unit
-----------------------------------------------------------------
U_CHIP_ROM : INTERNAL_PROGRAM_MEMORY
generic map(
DATAWIDTH => 8,
ADDRWIDTH => ROMSIZE,
ROMFILE => ROMFILE,
FILEPATH => FILEPATH
)
port map(
addrbus => romaddr(ROMSIZE-1 downto 0),
rd => romoe,
databus => romdatai
);
-----------------------------------------------------------------
-- On-chip Special Function Register
-----------------------------------------------------------------
U_CHIP_SFR_DD : SPECIAL_FUNCTION_REGISTER
generic map (
SFR_ID => "1011101",
SFR_RV => "11111111"
)
port map(
clk => xtal1,
reset => reset,
sfraddr => sfraddr,
sfrwe => sfrwe,
sfroe => sfroe,
sfrdatai => sfrdatao,
sfrdatao => sfrdatai
);
-----------------------------------------------------------------
-- On-chip Special Function Register
-----------------------------------------------------------------
U_CHIP_SFR_EE : SPECIAL_FUNCTION_REGISTER
generic map (
SFR_ID => "1101110",
SFR_RV => "11111111"
)
port map(
clk => xtal1,
reset => reset,
sfraddr => sfraddr,
sfrwe => sfrwe,
sfroe => sfroe,
sfrdatai => sfrdatao,
sfrdatao => sfrdatai
);
-----------------------------------------------------------------
-- On-Chip Instrumentation
-----------------------------------------------------------------
U_CHIP_OCI : CHIP_OCI
port map(
clk => xtal1,
rst => reset,
addrbus => romaddr(ROMSIZE-1 downto 0),
databusi => romdatai,
romoe => romoe,
--databuso =>
ramaddr => ramaddr(RAMSIZE-1 downto 0),
ramdatai => ramdatai,
ramdatao => ramdatao,
ramwe => ramwe,
ramoe => ramoe,
sfraddr => sfraddr,
sfrdatai => sfrdatai,
sfrdatao => sfrdatao,
sfrwe => sfrwe,
sfroe => sfroe,
accreg => acc,
fetch => fetch,
flush => flush,
debugack => debugack,
debugreq => debugreq,
debugstep => debugstep,
debugprog => debugprog
);
end STRUCTURAL;
--*******************************************************************--
-- pragma translation_off
configuration CHIP_C8051_STRUCTURE of CHIP_C8051 is
for STRUCTURAL
-----------------------------------------------------------------
-- C8051 core
-----------------------------------------------------------------
for U_C8051 : C8051
use configuration C8051_LIB.C8051_STRUCTURE;
end for;
-----------------------------------------------------------------
-- On-chip Open Drain buffer for Port 0
-----------------------------------------------------------------
for U_CHIP_DRAIN_0 : INTERNAL_OPEN_DRAIN
use entity C8051_LIB.INTERNAL_OPEN_DRAIN(SIM);
end for;
-----------------------------------------------------------------
-- On-chip Open Drain buffer for Port 1
-----------------------------------------------------------------
for U_CHIP_DRAIN_1 : INTERNAL_OPEN_DRAIN
use entity C8051_LIB.INTERNAL_OPEN_DRAIN(SIM);
end for;
-----------------------------------------------------------------
-- On-chip Open Drain buffer for Port 2
-----------------------------------------------------------------
for U_CHIP_DRAIN_2 : INTERNAL_OPEN_DRAIN
use entity C8051_LIB.INTERNAL_OPEN_DRAIN(SIM);
end for;
-----------------------------------------------------------------
-- On-chip Open Drain buffer for Port 3
-----------------------------------------------------------------
for U_CHIP_DRAIN_3 : INTERNAL_OPEN_DRAIN
use entity C8051_LIB.INTERNAL_OPEN_DRAIN(SIM);
end for;
-----------------------------------------------------------------
-- On-chip Data Memory unit
-----------------------------------------------------------------
for U_CHIP_RAM : INTERNAL_DATA_MEMORY
use entity C8051_LIB.INTERNAL_DATA_MEMORY(SIM);
end for;
-----------------------------------------------------------------
-- On-chip Program Memory unit
-----------------------------------------------------------------
for U_CHIP_ROM : INTERNAL_PROGRAM_MEMORY
use entity C8051_LIB.INTERNAL_PROGRAM_MEMORY(SIM);
end for;
-----------------------------------------------------------------
-- On-chip Special Function Register
-----------------------------------------------------------------
for U_CHIP_SFR_DD : SPECIAL_FUNCTION_REGISTER
use entity C8051_LIB.SPECIAL_FUNCTION_REGISTER(RTL);
end for;
-----------------------------------------------------------------
-- On-chip Special Function Register
-----------------------------------------------------------------
for U_CHIP_SFR_EE : SPECIAL_FUNCTION_REGISTER
use entity C8051_LIB.SPECIAL_FUNCTION_REGISTER(RTL);
end for;
end for;
end CHIP_C8051_STRUCTURE;
-- pragma translation_on
--*******************************************************************--
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -