Alternatively, partial bitstreams can be generated directly from the Abstract Shell implementation for any RM. With this approach, the complete static design information is not required to generate partial bitstreams. The Abstract Shell contains all the information needed not only to implement any RM, but to create the bitstream for that function. The -cell option for write_bitstream is required.
write_bitstream -cell <cell_inst>
<RM_partial>.bit
If the -cell option is omitted, write_bitstream flags an error, as this is
interpreted as a request to create a full design bitstream. The full design is
clearly not present here. Similarly, Vivado returns an error if you attempt to
generate a partial bitstream from just the RM checkpoint alone (the one created from
write_checkpoint -cell
, with no static design
data present above the target cell). This bitstream would only have the information
for the RM, not for the static design that connects to it.
Full device bitstreams can only be generated from checkpoints containing the full static design checkpoint plus one RM per RP. RMs can be grey box implementations, but even these must be fully placed and routed. Partial bitstreams from any full or Abstract Shell checkpoint are compatible with static as long as that version of static used to create each Abstract Shell has not been modified.