Community
cancel
Showing results for 
Search instead for 
Did you mean: 
GStre
New Contributor I
1,346 Views

I'm doing a Modelsim simulation with the Arria 10 EMIF DDR4. Using the IP generated testbench. The abstract PHY option is relative fast, using the DDR4 memory model is painfully slow.

Running the IP generated test bench takes 420 usec of simulation time. I have a pretty good workstation and that 420 usec of simulation time takes about 3 hours. When I set up simulation options, I set calibration mode to Skip Calibration, but I noticed when observing the memory signals, it looks like it's running the calibration. It takes the EMIF controller 82 usec to start generating a memory clock. Then the memory reset toggles and the calibration process begins. After 350 usec, the cal_success flag goes high and the memory is ready for use. Once again, it seems like I can't turn off calibration, is this a bug in the software? Attached is a screenshot of the waveforms.

0 Kudos
5 Replies
Vicky1
Employee
141 Views

Hi,

Please provide details for replication.

  1. Quartus tool version & edition
  2. Modelsim version
  3. Platform windows/Linux.

 

Best Regards

Vikas Jathar 

(This message was posted on behalf of Intel Corporation)

 

BoonT_Intel
Moderator
141 Views

Skip calibration mode will still run the calibration in ideal case. The details as below:

 

In Skip Calibration mode, the calibration processor assumes an ideal hardware environment, where PVT variations, board delays, and trace skews are all zero. Instead of running the actual calibration routine, the calibration processor calculates the expected arrival time of read data based on the memory latency values that you provide, thus reducing much simulation processing.

 

Thus, you will still see the clock running and calibration pass signal assert.

GStre
New Contributor I
141 Views

Hi Vikas,

 

Sure, I'm using Quartus Prime Pro V18.1, Modelsim DE 10.6B, Windows 10 on a Dell Precision Tower 5810 fully loaded.

 

Regards,

 

George​

GStre
New Contributor I
141 Views

Vikas,

 

By the way, another interesting fact. My Platform design Arria 10 GX project has a PCIe HIP and some external memory connected to the EMIF controller. In Platform Designer, if I generate a system level testbench or just a EMIF example design, the simulation fails with multiple complications that relates to the EMIF interface when not using Abstract Phy. If I generate a EMIF Arria10 controller IP using the IP Catalog from the main Quartus window and generate a example design, the DDR4 simulation passes with or without using the Abstract Phy. So I examined the two generated memory models and found them to be different. As I drill down through the instantiations, the working memory model uses the altera_emif_ddrx_model.sv model. The non-functional memory model drills down to a different module called top_inst_emif_mem_bfm_ip_altera_conduit_bfm_181_tj245tq (for my design) and this file uses many function calls to generate the memory signaling. I'm not going to pursuit this any further since I found a workaround solution, just thought it might be interesting to your readers.

 

Regards,

George

 

BoonT_Intel
Moderator
141 Views

Hi George,

 

Thanks for the details. Your finding is correct.

When you turn off abstract PHY, the simulation expect a memory component that allow the interface to perform read/write.

The bus functional model that generate using Platform designer (Qsys) will not work like a memory model (eg read/write from specific address). Thus, you have to replace the generic memory model in the project ​altera_emif_ddrx_model.sv model to make it work.

However, for system level simulation (eg, PCIE + EMIF), it is recommend to run the simulation using abstract phy mode as this will save the simulation time.

 

Rgds

BC

Reply