- debug output is now record
Committed on the Free edition of March Hare Software CVSNT Server. Upgrade to CVS Suite for more features and support: http://march-hare.com/cvsnt/ git-svn-id: http://moon:8086/svn/vhdl/trunk@999 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
@@ -38,7 +38,7 @@ entity mips_top is
|
|||||||
);
|
);
|
||||||
Port
|
Port
|
||||||
(
|
(
|
||||||
debug : out unsigned(1 downto 0);
|
debug : out chip_debug_t;
|
||||||
eb : in STD_LOGIC;
|
eb : in STD_LOGIC;
|
||||||
nmi : in STD_LOGIC;
|
nmi : in STD_LOGIC;
|
||||||
cpu_clk : in STD_LOGIC;
|
cpu_clk : in STD_LOGIC;
|
||||||
@@ -189,8 +189,8 @@ architecture rtl of mips_top is
|
|||||||
begin
|
begin
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
debug(0) <= imem_err;
|
debug.imem_err <= imem_err;
|
||||||
debug(1) <= dmem_err;
|
debug.dmem_err <= dmem_err;
|
||||||
|
|
||||||
process(CLK_I)
|
process(CLK_I)
|
||||||
variable reset_delay : unsigned (31 downto 0);
|
variable reset_delay : unsigned (31 downto 0);
|
||||||
|
|||||||
@@ -43,6 +43,11 @@ package mips_types is
|
|||||||
subtype sa_t is natural range 0 to 63;
|
subtype sa_t is natural range 0 to 63;
|
||||||
subtype func_t is unsigned(5 downto 0);
|
subtype func_t is unsigned(5 downto 0);
|
||||||
|
|
||||||
|
type chip_debug_t is record
|
||||||
|
imem_err : std_logic;
|
||||||
|
dmem_err : std_logic;
|
||||||
|
end record;
|
||||||
|
|
||||||
type op_t is
|
type op_t is
|
||||||
(
|
(
|
||||||
op_illegal,
|
op_illegal,
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ ARCHITECTURE behavior OF tb_mips_top IS
|
|||||||
constant SRAM_ADDR_WIDTH : integer := 17; -- bits
|
constant SRAM_ADDR_WIDTH : integer := 17; -- bits
|
||||||
constant FLASH_ADDR_WIDTH : integer := 17; -- bits
|
constant FLASH_ADDR_WIDTH : integer := 17; -- bits
|
||||||
|
|
||||||
signal debug : unsigned(1 downto 0);
|
signal debug : chip_debug_t;
|
||||||
|
|
||||||
-- Master
|
-- Master
|
||||||
signal nmi : STD_LOGIC := '0';
|
signal nmi : STD_LOGIC := '0';
|
||||||
@@ -399,8 +399,9 @@ SRAM_WRITE:
|
|||||||
FLASH_READ:
|
FLASH_READ:
|
||||||
process(rst, flash_cs_n, flash_oe_n, flash_a)
|
process(rst, flash_cs_n, flash_oe_n, flash_a)
|
||||||
type file_t is file of integer;
|
type file_t is file of integer;
|
||||||
file load_flash : file_t open read_mode is "ucb.elf.flash.bin";
|
-- file load_flash : file_t open read_mode is "ucb.elf.flash.bin";
|
||||||
-- file load_flash : file_t open read_mode is "test_timer.flash.bin";
|
file load_flash : file_t open read_mode is "test_timer.elf.flash.bin";
|
||||||
|
-- file load_flash : file_t open read_mode is "test_dcache.flash.bin";
|
||||||
variable instr : integer;
|
variable instr : integer;
|
||||||
variable index : natural;
|
variable index : natural;
|
||||||
variable temp : signed(31 downto 0);
|
variable temp : signed(31 downto 0);
|
||||||
@@ -441,9 +442,7 @@ STIMULUS: process
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
gpi_0(23 downto 16) <= "00000000";
|
gpi_0 <= X"00000000";
|
||||||
gpi_0(28 downto 24) <= "00000";
|
|
||||||
gpi_0(31) <= 'H';
|
|
||||||
wait for 3*CLK_PERIOD;
|
wait for 3*CLK_PERIOD;
|
||||||
wait until rising_edge(clk);
|
wait until rising_edge(clk);
|
||||||
rst <= '0';
|
rst <= '0';
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ ARCHITECTURE behavior OF mips_sys IS
|
|||||||
COMPONENT mips_top
|
COMPONENT mips_top
|
||||||
Port
|
Port
|
||||||
(
|
(
|
||||||
debug : out unsigned(1 downto 0);
|
debug : out chip_debug_t;
|
||||||
eb : in STD_LOGIC;
|
eb : in STD_LOGIC;
|
||||||
nmi : in STD_LOGIC;
|
nmi : in STD_LOGIC;
|
||||||
cpu_clk : in STD_LOGIC;
|
cpu_clk : in STD_LOGIC;
|
||||||
@@ -185,6 +185,7 @@ ARCHITECTURE behavior OF mips_sys IS
|
|||||||
RST_I : in STD_LOGIC;
|
RST_I : in STD_LOGIC;
|
||||||
CYC_I : in STD_LOGIC;
|
CYC_I : in STD_LOGIC;
|
||||||
STB_I : in STD_LOGIC;
|
STB_I : in STD_LOGIC;
|
||||||
|
WE_I : in STD_LOGIC;
|
||||||
ACK_O : out STD_LOGIC;
|
ACK_O : out STD_LOGIC;
|
||||||
MRDY_I : in STD_LOGIC;
|
MRDY_I : in STD_LOGIC;
|
||||||
SRDY_O : out STD_LOGIC;
|
SRDY_O : out STD_LOGIC;
|
||||||
@@ -486,7 +487,7 @@ ARCHITECTURE behavior OF mips_sys IS
|
|||||||
signal usb_inten : std_logic;
|
signal usb_inten : std_logic;
|
||||||
signal phy_inten : std_logic;
|
signal phy_inten : std_logic;
|
||||||
|
|
||||||
signal debug : unsigned(1 downto 0);
|
signal debug : chip_debug_t;
|
||||||
|
|
||||||
-- DDR SDRAM
|
-- DDR SDRAM
|
||||||
constant BURST_LEN : natural := 2;
|
constant BURST_LEN : natural := 2;
|
||||||
@@ -538,7 +539,8 @@ BEGIN
|
|||||||
sys_phy_mdio <= gpo_0(31);
|
sys_phy_mdio <= gpo_0(31);
|
||||||
|
|
||||||
eb <= sys_dip(7);
|
eb <= sys_dip(7);
|
||||||
sys_error <= debug;
|
sys_error(0) <= debug.imem_err;
|
||||||
|
sys_error(1) <= debug.dmem_err;
|
||||||
nmi <= not sys_rst_n_in;
|
nmi <= not sys_rst_n_in;
|
||||||
rst_in <= not sys_rst_n_in and sys_btn(0);
|
rst_in <= not sys_rst_n_in and sys_btn(0);
|
||||||
sys_flash_byten <= '1';
|
sys_flash_byten <= '1';
|
||||||
@@ -752,6 +754,7 @@ inst_rom_wb : rom_wb
|
|||||||
RST_I => RST_O,
|
RST_I => RST_O,
|
||||||
CYC_I => CYC_I_rom,
|
CYC_I => CYC_I_rom,
|
||||||
STB_I => STB_O,
|
STB_I => STB_O,
|
||||||
|
WE_I => WE_O,
|
||||||
ACK_O => ACK_O_rom,
|
ACK_O => ACK_O_rom,
|
||||||
MRDY_I => MRDY_O,
|
MRDY_I => MRDY_O,
|
||||||
SRDY_O => SRDY_O_rom,
|
SRDY_O => SRDY_O_rom,
|
||||||
|
|||||||
@@ -317,7 +317,7 @@ ARCHITECTURE behavior OF mips_sys IS
|
|||||||
signal usb_inten : std_logic;
|
signal usb_inten : std_logic;
|
||||||
signal phy_inten : std_logic;
|
signal phy_inten : std_logic;
|
||||||
|
|
||||||
signal debug : unsigned(1 downto 0);
|
signal debug : chip_debug_t;
|
||||||
|
|
||||||
-- DDR SDRAM
|
-- DDR SDRAM
|
||||||
constant BURST_LEN : natural := 2;
|
constant BURST_LEN : natural := 2;
|
||||||
@@ -362,7 +362,8 @@ BEGIN
|
|||||||
sys_phy_mdio <= gpo_0(31);
|
sys_phy_mdio <= gpo_0(31);
|
||||||
|
|
||||||
eb <= sys_dip(7);
|
eb <= sys_dip(7);
|
||||||
sys_error <= debug;
|
sys_error(0) <= debug.imem_err;
|
||||||
|
sys_error(1) <= debug.dmem_err;
|
||||||
nmi <= not sys_rst_n_in;
|
nmi <= not sys_rst_n_in;
|
||||||
rst_in <= not sys_rst_n_in and sys_btn(0) and sys_btn(2);
|
rst_in <= not sys_rst_n_in and sys_btn(0) and sys_btn(2);
|
||||||
sys_flash_byten <= '1';
|
sys_flash_byten <= '1';
|
||||||
@@ -597,6 +598,7 @@ inst_rom_wb : entity work.rom_wb
|
|||||||
RST_I => RST_O,
|
RST_I => RST_O,
|
||||||
CYC_I => CYC_I_rom,
|
CYC_I => CYC_I_rom,
|
||||||
STB_I => STB_O,
|
STB_I => STB_O,
|
||||||
|
WE_I => WE_O,
|
||||||
ACK_O => ACK_O_rom,
|
ACK_O => ACK_O_rom,
|
||||||
MRDY_I => MRDY_O,
|
MRDY_I => MRDY_O,
|
||||||
SRDY_O => SRDY_O_rom,
|
SRDY_O => SRDY_O_rom,
|
||||||
|
|||||||
Reference in New Issue
Block a user