Using RapidWright to emulate stuck at faults in logic resources #276
-
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
Hi Gabriel, It is hard to say exactly what changes to the design implementation will trigger a change in the bitstream. Vivado provides a user abstraction and not each detail/attribute may contribute to directly to a bitstream change, it might need to be multiple changes in unison. The fabric has a "default" mode when part of the fabric is not programmed and so, if the model happens to match that, you won't see a difference. In your example you want to disconnect the SR input to a flip-flop. However, even if the user does not specify a signal driving it, it must be driven by either GND or VCC. I think it would be more correct to say that you want to connect SR to GND (which I believe would be the default mode), Vivado will generate a bitstream that will drive it with either one if not specified, it can't leave it floating. I think if you wanted to exercise both methods (GND vs VCC), you would have to explicitly route the path to the SR pin with GND or VCC. To do this in Series 7 devices, the SR pin has a local GND pin supply in the SLICE: Again, because of the architecture, you can only change the signal on the SR pin for all flip-flops in a SLICE at once, there is not a way to do this individually per flop. RapidWright has an API to perform intra-site routing changes so that you can change the routing of a site wire:
Not sure if this will answer your question or lead to the behavior you are expecting, but site routing is something that you'll need to make consistent. Hope that helps. Chris |
Beta Was this translation helpful? Give feedback.
-
Returning to your earlier request to re-route site routing to get GND to the input of D on AFF, I don't think there is a way to generate a bitstream in the way you are hoping. Although it might be possible to route through the CARRY in theory, it is simpler to just route from the LUT6 output to AFF.D:
The code above will accomplish this, however, you will still have more bitstream changes because of the removal of the routing arriving at the |
Beta Was this translation helpful? Give feedback.
Returning to your earlier request to re-route site routing to get GND to the input of D on AFF, I don't think there is a way to generate a bitstream in the way you are hoping. Although it might be possible to route through the CARRY in theory, it is simpler to just route from the LUT6 output to AFF.D: