cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
412 Views
Registered: ‎06-20-2019

Partial Reconfiguration - Implementation of a RM only

Hello all, 

My design implements a function (a PUF) that has a ROM for storing ECC helper data. So the contents of the ROM are a history of data of an output produced by my function. This output is somewhat "random", its value depends on the placing and routing of the design (this is intended). So I have to implement my design, run it on the FPGA, gather the results, and populate my ROM with this data, so the design can use it next time for error correction. The problem is, every time I populate the ROM and run synthesis and implementation again, my function changes (because it depends on placing and routing) so now my function output is different and the newly-updated ROM is useless. It is a never-ending cycle.   

Reading a bit, I figured Partial Reconfiguration could help here. I am using my ROM as a reconfigurable module. I'm no expert here so I did the partial reconfiguration as automatic as it could be. The problem I'm seeing now is that when I change the ROM contents and run implementation, the whole design is implemented, not only the outdated RM (the ROM). Is there a way to synthesize and implement a specific module only, keeping the rest of the design intact? Is partial reconfig. the way to do it or should I look at something else?

I'm using Vivado and an Artix-7.

Thanks a lot!

Gabriel

0 Kudos
4 Replies
Highlighted
Moderator
Moderator
359 Views
Registered: ‎11-04-2010

If you only update the content of the ROM, the placement and routing of the other logic will not be changed.

It means you don't need to re-implement the whole design.  (It seems PR flow is not necessary in this scenario)

 

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
348 Views
Registered: ‎06-20-2019

Anyway, is there a way of running implementation on a specific module only? Having already run synthesis and implementation of the rest of the design. 

0 Kudos
Highlighted
Moderator
Moderator
330 Views
Registered: ‎11-04-2010

With PR(DFX) flow, you can run implementation on a specific module (dynamic logic) only without changing the static logic.

For the detailed info, please refer to UG909.

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
Moderator
Moderator
285 Views
Registered: ‎05-08-2012

Hi gab.jimenez93@gmail.com 

If you can move the ROM into an XPM RAM, then you would have the ability to use updatemem to update the contents based on an .mem or .elf file.

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug898-vivado-embedded-design.pdf#page=162

---------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------