Forum Discussion
HPCII ddr2 controller
Hi,
I generated HPCII ddr2 controller using megawizard. I included the module in my fpga design and trying to run simulation. I dont see the local_init_done signal going high at all. As per the documentation, this is an output signal from the controller to indicate that the initialization is done. Also, I see that it takes a long time for the controller to send out reset_phy_clk_n signal, after the global_reset_n goes high. Is this normal.7 Replies
- Altera_Forum
Honored Contributor
The ready signal must be high during that cycle otherwise it won't work.
The timing diagramm in the User guide is quite clear for that. - Altera_Forum
Honored Contributor
Thats right. I do have the burst_begin and the local_read_req high for 1 clock cycle when the mem_local_ready is high. But I dont see any activity from the altmemphy.
- Altera_Forum
Honored Contributor
You need to have read_request and burst_start high to start a reading cycle for one cycle. I usally wait one cycle bfore applying the next request, since two data words are read out, but that's not requiered.
Also ready needs to be high. Check the timing diagramm.when do_read0 => if (command = c_command_READ and addr_empty = '0') then read_req <= '1'; burstbegin <= '1'; if (ready = '1') then state <= do_read1; end if; else state <= idle; end if; when do_read1 => if (ready = '1') then state <= do_read0; end if; - Altera_Forum
Honored Contributor
Thank you. writes happen fine now. I am trying to issue a read transaction by setting the local_read_req high for 1 clock along wiht the size and the address. I dont see the afi_cs_n changed from f at all, indicating that the altmemphy is not forwarding the read transaction requested on the avalon interface. Any clues ??
- Altera_Forum
Honored Contributor
You have to keep the write_req hight for the size of the transfer. The burst start must stay high only for the first cycle.
Also you need to check if the ready signal is high when initialising a burst. Look at the timing diagramm in the UG of the DDR HP Ctrl. - Altera_Forum
Honored Contributor
Thanks. That works. Incase of HPCII DDRII controller wiht local interface, for a half-rate write transaction, do I have to keep the write_req signal high just for one clock cycle when the mem_local_ready is asserted, or do I have to assert write_req for the number of clocks equal to the size of the transfer. I document does not describe this clearly.
- Altera_Forum
Honored Contributor
Try to generate your model with skip calibration option (only for simulation), that way it should be finished in less than 50 us.
BTW, did you attach the model ? Otherwise it won't work.