Project

General

Profile

« Previous | Next » 

Revision 22

Added by markw over 11 years ago

Connected up SDRAM. Make 800XL core wait for SDRAM reset to complete. Also had to adjust phase offset to make it work - need to get a proper setup for mist

View differences:

sdram_statemachine.vhdl
SDRAM_WE_N : out std_logic;
SDRAM_ldqm : out std_logic; -- low enable, high disable - for byte addressing - NB, cas latency applies to reads
SDRAM_udqm : out std_logic
SDRAM_udqm : out std_logic;
reset_client_n : out std_logic
);
END sdram_statemachine;
......
signal sdram_request_reg : std_logic;
signal sdram_request_next : std_logic;
signal reset_client_n_reg : std_logic;
signal reset_client_n_next : std_logic;
BEGIN
-- register
process(CLK_SDRAM,reset_n)
......
reply_sreg <= '0';
sdram_request_reg <= '0';
reset_client_n_reg <= '0';
elsif (CLK_SYSTEM'event and CLK_SYSTEM='1') then
data_in_sreg <= data_in_snext;
address_in_sreg <= address_in_snext;
......
reply_sreg <= reply_snext;
sdram_request_reg <= sdram_request_next;
reset_client_n_reg <= reset_client_n_next;
end if;
end process;
......
end process;
--
process(sdram_state_reg,delay_reg, idle_priority, data_out_reg, read_en_sreg, write_en_sreg, address_in_sreg, data_in_sreg, reply_reg, require_refresh, dq_in_next, dqm_mask_sreg, request_sreg)
process(reset_client_n_reg,sdram_state_reg,delay_reg, idle_priority, data_out_reg, read_en_sreg, write_en_sreg, address_in_sreg, data_in_sreg, reply_reg, require_refresh, dq_in_next, dqm_mask_sreg, request_sreg)
begin
idle_priority <= (others=>'0');
refreshing_now <= '0';
reset_client_n_next <= reset_client_n_reg;
sdram_state_next <= sdram_state_reg;
command_next <= sdram_command_no_operation;
......
-- nop
end case;
when sdram_state_idle =>
reset_client_n_next <= '1';
delay_next <= (others=>'0');
idle_priority <= (request_sreg xor reply_reg)&require_refresh&write_en_sreg&read_en_sreg;
......
COMPLETE <= (reply_sreg xnor sdram_request_reg) and not(request);
sdram_request_next <= sdram_request_reg xor request;
reset_client_n <= reset_client_n_reg;
END vhdl;

Also available in: Unified diff