Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
17268 Discussions

Why do all registers return 0 when simulating the dual boot IP core in a MAX10 device.

BAdam1
Beginner
2,395 Views

I am trying to verify the functionality of the dual boot IP core in a MAX10 device. I issue a write to set bit 3 of offset 2 (See page 60 of ug_m10_config.pdf) The strange thing about this Write is that the response from the Avalon Packet interface indicates a successful write of 3 bytes not 4 bytes. I then Read offset 7 and it reads 0. I then write a '1' to offset 1 bit 1 to change the CONFIG_SEL value in the input register. I then check offset 3 to make sure that the core is not Busy. After that, I write to bit 3 of offset 2 again to trigger a read of the input register. When I read offset 7 again, it remains unchanged. It is still 0. I have tried Big Endian and Little Endian. Is there a problem simulating this core? Does it only work on an actual device?

0 Kudos
4 Replies
SAR
Novice
864 Views

Hi,

 

Can you elaborate more on your design and steps involved in simulation?

Try simulation for example in link below.

https://fpgacloud.intel.com/devstore/platform/17.1std.1/Standard/dualboot-design-example/

0 Kudos
BAdam1
Beginner
864 Views
I am trying to verify the functionality of the dual boot IP core in a MAX10 device.  I issue a write to set bit 3 of offset 2 (See page 60 of ug_m10_config.pdf)  The strange thing about this Write is that the response from the Avalon Packet interface indicates a successful write of 3 bytes not 4 bytes.  I then Read offset 7 and it reads 0.  I then write a '1' to offset 1 bit 1 to change the CONFIG_SEL value in the input register.  I then check offset 3 to make sure that the core is not Busy.  After that, I write to bit 3 of offset 2 again to trigger a read of the input register.  When I read offset 7 again, it remains unchanged.  It is still 0.  I have tried Big Endian and Little Endian.  Is there a problem simulating this core?  Does it only work on an actual device? Bill Adams
0 Kudos
BAdam1
Beginner
864 Views
I also have the On-Chip Flash Intel FPGA IP core in this design.  I am able to access the Control and Status registers with no problem.  I have been able to simulate, read, write and erase. Bill Adams
0 Kudos
ShafiqY_Intel
Employee
864 Views

Hi,

 

Here are you answer:

 

I issue a write to set bit 3 of offset 2 (See page 60 of ug_m10_config.pdf)The strange thing about this Write is that the response from the Avalon Packet interface indicates a successful write of 3 bytes not 4 bytes. I then Read offset 7 and it reads 0. 

You need to trigger CONFIG_SEL_OVERWRITE (offset 1, bit 0) and CONFIG_SEL (offset 1, bit 1) if you want to make a change to the CONFIG_SEL (offset 7, bit 1) value.

                                                                                                                                                                                       

I then write a '1' to offset 1 bit 1 to change the CONFIG_SEL value in the input register. …….. When I read offset 7 again, it remains unchanged. It is still 0. 

If you want to change the CONFIG_SEL (offset 7, bit 1) value, you need to write 1 to CONFIG_SEL_OVERWRITE.

 

For example, if you want to load from image 1, you need to write a ‘1’ to bit 0(offset 1) and bit 1(offset 1). You should write b’211 to offset 1.

Then, if you want to read back the value, you need to write a ‘1’ to bit 3 (offset 2). You should write b’41000 to offset 2.

As the result, when you read offset 7, it will show b’211. b’211 indicate  CONFIG_SEL_OVERWRITE and CONFIG_SEL triggers.

 

Thank you.😉

0 Kudos
Reply