FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6343 Discussions

LPDDR3 Simulation using example design

KCMurphy
New Contributor II
1,069 Views

I'm having some issues with the LPDDR3 IP in my project.   See attached lpddr3.ip file in the ZIP

 

As a sanity test, I create the Intel LPDDR3 example design via Platform Designer, using the attached IP file without change.

(Hard Controller/PHY, LPDDR3-1600 4Gb (128Mbx32) from the presets, 800MHz mem clock with 200Mhz ref, autopch control ON (or OFF), Verilog, no board)

 

I then simulate with Modelsim-AE 2021.1 version.  I get some very strange results with all kinds of warnings and complaints.  The load itself has a number of warnings involving items in the protected portion of the design.  Running the test for 100uS gives the attached transcript. 

 

Note: I have also run this with the abbreviated calibration option and these messages persist after calibration "succeeds."  Note that for the most part the control and data wires to the memory are not moving.

 

(Win10Pro 21H1 19043, QPP 21.2, AMD Ryzen 7 5800x)

0 Kudos
1 Solution
KCMurphy
New Contributor II
1,015 Views

Never mind.  I rebuilt the project from source and paid careful attention to sequences, and it works fine now.  Apparently there was a build problem somewhere along the line and things were unhappy.

View solution in original post

0 Kudos
4 Replies
AdzimZM_Intel
Employee
1,044 Views

Hi KCMurphy,


I'm Adzim. Thanks for using Intel Community.


From the KDB: https://www.intel.com/content/www/us/en/support/programmable/articles/000078759.html

The warning messages about the unconnected ports are for the optional ports.

The other warning messages look similar and I think it's not harmful and the design should be fine.


What are the issues that you're facing in your project?


Do you get some errors when compiling the design?


Regards,

Adzim



0 Kudos
KCMurphy
New Contributor II
1,035 Views

From the transcript in the above zip file, the simulation RUN results in a constant stream of messages like the following:

# [14747638000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x2106]
# [14747638000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [14747638000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [14747638000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [14767734000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x2106] => 0x00000001 (         31 cycles)
# [14807926000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x6106]
# [14807926000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [14807926000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [14807926000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [14828022000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x6106] => 0x00000001 (         31 cycles)
# [17380214000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x2200] <= 0x000001fc
# [17440502000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x6200] <= 0x000001ff
# [17460598000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x3a0] <= 0x000001f9
# [17480694000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0xba0] <= 0x000001f9
# [17520886000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a0] <= 0x000001f8
# [17540982000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x1ba0] <= 0x000001f8
# [17561078000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x43a0] <= 0x000001f8
# [17581174000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x4ba0] <= 0x000001f8
# [17641462000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x13a8]
# [17641462000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [17661558000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x13a8] => 0x00000000 (         31 cycles)
# [17701750000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a8] <= 0x00000002
# [17762038000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x13a8]
# [17762038000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [17782134000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x13a8] => 0x00000002 (         31 cycles)
# [17802230000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a8] <= 0x00000006
# [17822326000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x13a9]
# [17842422000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x13a9] => 0x00000000 (         31 cycles)
# [17862518000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a9] <= 0x00000004
# [17922806000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x13a8]
# [17922806000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [17942902000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x13a8] => 0x00000006 (         31 cycles)
# [17962998000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a8] <= 0x0000000e
# [18023286000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x13a8]
# [18023286000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [18043382000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x13a8] => 0x0000000e (         31 cycles)
# [18063478000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a8] <= 0x0000004e
# [18083574000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x13a9]
# [18103670000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x13a9] => 0x00000004 (         31 cycles)
# [18123766000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a9] <= 0x00000044
# [18184054000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x13a8]
# [18184054000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [18204150000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x13a8] => 0x0000004e (         31 cycles)
# [18224246000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a8] <= 0x000000ce
# [18284534000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x13a8]
# [18284534000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [18304630000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x13a8] => 0x000000ce (         31 cycles)
# [18324726000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a8] <= 0x000001ce
# [18344822000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x13a9]
# [18364918000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x13a9] => 0x00000044 (         31 cycles)
# [18385014000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a9] <= 0x00000144
# [18445302000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x13a8]
# [18445302000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [18465398000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x13a8] => 0x000001ce (         31 cycles)
# [18485494000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a8] <= 0x000003ce
# [18545782000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x13a8]
# [18545782000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [18565878000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x13a8] => 0x000003ce (         31 cycles)
# [18585974000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a8] <= 0x000007ce
# [18606070000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x13a9]
# [18626166000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x13a9] => 0x00000144 (         31 cycles)
# [18646262000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x13a9] <= 0x00000544
# [18706550000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x1ba8]
# [18706550000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [18726646000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x1ba8] => 0x00000000 (         31 cycles)
# [18746742000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x1ba8] <= 0x00000002
# [18807030000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x1ba8]
# [18807030000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [18827126000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x1ba8] => 0x00000002 (         31 cycles)
# [18847222000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x1ba8] <= 0x00000006
# [18867318000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x1ba9]
# [18887414000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x1ba9] => 0x00000000 (         31 cycles)
# [18907510000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x1ba9] <= 0x00000004
# [18967798000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x1ba8]
# [18967798000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [18987894000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x1ba8] => 0x00000006 (         31 cycles)
# [19007990000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x1ba8] <= 0x0000000e
# [19068278000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x1ba8]
# [19068278000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [19088374000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x1ba8] => 0x0000000e (         31 cycles)
# [19108470000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x1ba8] <= 0x0000004e
# [19128566000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x1ba9]
# [19148662000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x1ba9] => 0x00000004 (         31 cycles)
# [19168758000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x1ba9] <= 0x00000044
# [19229046000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x1ba8]
# [19229046000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [19249142000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x1ba8] => 0x0000004e (         31 cycles)
# [19269238000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x1ba8] <= 0x000000ce
# [19329526000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x1ba8]
# [19329526000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.
#       It is possible that your read operation may contain invalid data.
# [19349622000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x1ba8] => 0x000000ce (         31 cycles)
# [19369718000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x1ba8] <= 0x000001ce
# [19389814000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x1ba9]
# [19409910000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ:  [0x1ba9] => 0x00000044 (         31 cycles)
# [19430006000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: WRITE: [0x1ba9] <= 0x00000144
# [19490294000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: Initiating Read operation from [0x1ba8]
# [19490294000] IOAux instance ed_sim.emif_0.emif_0.arch.arch_inst.io_aux_inst.io_aux.inst.<protected>.<protected>: READ Warning: IOAux detected dirty input data.

 

0 Kudos
AdzimZM_Intel
Employee
1,026 Views

Hi KCMurphy,


I think you have to run the simulation until it's finished.

There should be a lot of processes that have been done before the memory is ready to use.

The important thing is the calibration must be succeed.


Regards,

Adzim


0 Kudos
KCMurphy
New Contributor II
1,016 Views

Never mind.  I rebuilt the project from source and paid careful attention to sequences, and it works fine now.  Apparently there was a build problem somewhere along the line and things were unhappy.

0 Kudos
Reply