Forum: FPGA, VHDL & Co. MCB-DDR2 [Spartan 6]


von P. P. (xilinxingo)


Angehängte Dateien:

Lesenswert?

I am working in a VHDL project and I have to use the DDR2 memory 
(MT47H64M16-25E) of the Atlys Spartan 6. I have already generated the 
MCB with the MIG (ISE Design Suite 14.2). The configuration I have used 
is in the attachments.

In order to test the MCB (Memory Control Block) on the board, I have 
implemented my own top-level block (OnBoard_TB.vhd) and instantiated the 
top level that the MIG had generated. I tried to make a simple 
write/read without success, so I decided to test firstly every signal. 
The calib_done goes high at the really begining, but then the signal 
seems to be changing all the time and to do something strange. Just to 
check the calib_done signal, I wrote this process:

    calib_process : process
    variable calib_times : integer := 0;
    begin
      wait until c3_calib_done'event and c3_calib_done = '1';
      calib_times := calib_times + 1;
      if calib_times > 10 then
        leds(0) <= '1';
        leds(7 downto 1) <= "0000000";
      end if;
    end process calib_process;


And the led went on. That means that the calib_done signal is changing 
to low and high all the time. Is that correct? Should not be always high 
after reaching a succesful calibration? I am just checking the signals 
because I could not write and read what I had already written.

I just do not know if the MCB does not work properly or I am doing 
something wrong. It would be really helpful if somebody could tell me if 
I am doing something wrong, or send me an example of write/read with the 
DDR2.

**You can find my entire project (also the UCF file) in the attachments.

Thank you very much.

von P. P. (xilinxingo)


Lesenswert?

I forgot to say that I commented the following lines from the UCF files:

#NET 
"memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/selfrefresh_mcb_mode" 
TIG;
#NET "c?_pll_lock" TIG;
#INST 
"memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_c 
alibration_top_inst/mcb_soft_calibration_inst/DONE_SOFTANDHARD_CAL*" 
TIG;

von P. P. (xilinxingo)


Lesenswert?

I am only trying to know if the calibration process works
well.

As I read in the UG388 (page 25), the calib_done signal has to be high
before doing any transaction. That is why I want to be sure that this
signal is activated. I connect directly the calib_done signal to the LD0
led, but it does not go on.

I also read the UG416. I know that there is an example with a traffic
generator. I would like just to integrate the MCB in my logic in order
to do some simple write and read instructions. It would be really
helpful if you could tell me if the configuration of the MCB is not
correct or I am doing something wrong in the instantiation in my own top
level.




Thank you in advance

Jose

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.