Line 32... |
Line 32... |
SIGNAL imem_i : imem_in_type;
|
SIGNAL imem_i : imem_in_type;
|
|
|
SIGNAL wb_o : wb_mst_out_type;
|
SIGNAL wb_o : wb_mst_out_type;
|
SIGNAL wb_i : wb_mst_in_type;
|
SIGNAL wb_i : wb_mst_in_type;
|
|
|
SIGNAL sys_clk_i : std_ulogic := '0';
|
SIGNAL sys_clk_i : std_logic := '0';
|
SIGNAL sys_int_i : std_ulogic;
|
SIGNAL sys_int_i : std_logic;
|
SIGNAL sys_rst_i : std_ulogic;
|
SIGNAL sys_rst_i : std_logic;
|
|
|
CONSTANT std_out_adr : std_ulogic_vector(CFG_DMEM_SIZE - 1 DOWNTO 0) := X"FFFFFFC0";
|
CONSTANT std_out_adr : std_logic_vector(CFG_DMEM_SIZE - 1 DOWNTO 0) := X"FFFFFFC0";
|
SIGNAL std_out_ack : std_ulogic;
|
SIGNAL std_out_ack : std_logic;
|
|
|
SIGNAL stdo_ena : std_ulogic;
|
SIGNAL stdo_ena : std_logic;
|
|
|
SIGNAL dmem_ena : std_ulogic;
|
SIGNAL dmem_ena : std_logic;
|
SIGNAL dmem_dat : std_ulogic_vector(CFG_DMEM_WIDTH - 1 DOWNTO 0);
|
SIGNAL dmem_dat : std_logic_vector(CFG_DMEM_WIDTH - 1 DOWNTO 0);
|
SIGNAL dmem_sel : std_ulogic_vector(3 DOWNTO 0);
|
SIGNAL dmem_sel : std_logic_vector(3 DOWNTO 0);
|
|
|
CONSTANT rom_size : integer := 16;
|
CONSTANT rom_size : integer := 16;
|
CONSTANT ram_size : integer := 16;
|
CONSTANT ram_size : integer := 16;
|
|
|
BEGIN
|
BEGIN
|
Line 71... |
Line 71... |
END PROCESS;
|
END PROCESS;
|
|
|
-- Character device
|
-- Character device
|
wb_stdio_slave: PROCESS(sys_clk_i)
|
wb_stdio_slave: PROCESS(sys_clk_i)
|
VARIABLE s : line;
|
VARIABLE s : line;
|
VARIABLE byte : std_ulogic_vector(7 DOWNTO 0);
|
VARIABLE byte : std_logic_vector(7 DOWNTO 0);
|
VARIABLE char : character;
|
VARIABLE char : character;
|
BEGIN
|
BEGIN
|
IF rising_edge(sys_clk_i) THEN
|
IF rising_edge(sys_clk_i) THEN
|
IF (wb_o.stb_o AND wb_o.cyc_o AND compare(wb_o.adr_o, std_out_adr)) = '1' THEN
|
IF (wb_o.stb_o AND wb_o.cyc_o AND compare(wb_o.adr_o, std_out_adr)) = '1' THEN
|
IF wb_o.we_o = '1' AND std_out_ack = '0' THEN
|
IF wb_o.we_o = '1' AND std_out_ack = '0' THEN
|