@ -48,9 +48,9 @@ entity soc is
-- DRAM controller signals
-- DRAM controller signals
wb_dram_in : out wishbone_master_out;
wb_dram_in : out wishbone_master_out;
wb_dram_out : in wishbone_slave_out;
wb_dram_out : in wishbone_slave_out := wishbone_slave_out_init;
wb_dram_ctrl_in : out wb_io_master_out;
wb_dram_ctrl_in : out wb_io_master_out;
wb_dram_ctrl_out : in wb_io_slave_out;
wb_dram_ctrl_out : in wb_io_slave_out := wb_io_slave_out_init;
wb_dram_is_csr : out std_ulogic;
wb_dram_is_csr : out std_ulogic;
wb_dram_is_init : out std_ulogic;
wb_dram_is_init : out std_ulogic;
@ -267,8 +267,14 @@ begin
wb_bram_in.cyc <= wb_master_out.cyc;
wb_bram_in.cyc <= wb_master_out.cyc;
wb_master_in <= wb_bram_out;
wb_master_in <= wb_bram_out;
when SLAVE_TOP_DRAM =>
when SLAVE_TOP_DRAM =>
wb_dram_in.cyc <= wb_master_out.cyc;
if HAS_DRAM then
wb_master_in <= wb_dram_out;
wb_dram_in.cyc <= wb_master_out.cyc;
wb_master_in <= wb_dram_out;
else
wb_master_in.ack <= wb_master_out.cyc and wb_master_out.stb;
wb_master_in.dat <= (others => '1');
wb_master_in.stall <= '0';
end if;
when SLAVE_TOP_IO =>
when SLAVE_TOP_IO =>
wb_io_in.cyc <= wb_master_out.cyc;
wb_io_in.cyc <= wb_master_out.cyc;
wb_master_in <= wb_io_out;
wb_master_in <= wb_io_out;
@ -468,12 +474,24 @@ begin
case slave_io is
case slave_io is
when SLAVE_IO_DRAM_INIT =>
when SLAVE_IO_DRAM_INIT =>
wb_dram_ctrl_in.cyc <= wb_sio_out.cyc;
if HAS_DRAM then
wb_sio_in <= wb_dram_ctrl_out;
wb_dram_ctrl_in.cyc <= wb_sio_out.cyc;
wb_sio_in <= wb_dram_ctrl_out;
else
wb_sio_in.ack <= wb_sio_out.cyc and wb_sio_out.stb;
wb_sio_in.dat <= (others => '1');
wb_sio_in.stall <= '0';
end if;
wb_dram_is_init <= '1';
wb_dram_is_init <= '1';
when SLAVE_IO_DRAM_CSR =>
when SLAVE_IO_DRAM_CSR =>
wb_dram_ctrl_in.cyc <= wb_sio_out.cyc;
if HAS_DRAM then
wb_sio_in <= wb_dram_ctrl_out;
wb_dram_ctrl_in.cyc <= wb_sio_out.cyc;
wb_sio_in <= wb_dram_ctrl_out;
else
wb_sio_in.ack <= wb_sio_out.cyc and wb_sio_out.stb;
wb_sio_in.dat <= (others => '1');
wb_sio_in.stall <= '0';
end if;
wb_dram_is_csr <= '1';
wb_dram_is_csr <= '1';
when SLAVE_IO_SYSCON =>
when SLAVE_IO_SYSCON =>
wb_syscon_in.cyc <= wb_sio_out.cyc;
wb_syscon_in.cyc <= wb_sio_out.cyc;