Visible to Intel only — GUID: xqn1616562308601
Ixiasoft
Visible to Intel only — GUID: xqn1616562308601
Ixiasoft
3.3.4. Partial Reconfiguration Bitstream Encryption
You can enable bitstream encryption on some Intel Agilex® 7 FPGA designs that use partial reconfiguration.
Partial reconfiguration designs utilizing the Hierarchical Partial Reconfiguration (HPR), or Static Update Partial Reconfiguration (SUPR) do not support the bitstream encryption. If your design contains multiple PR regions, you must encrypt all personas.
To enable partial reconfiguration bitstream encryption, follow the same procedure in all design revisions.
- On the Intel® Quartus® Prime File menu, select Assignments > Device > Device and Pin Options > Security.
- Select the desired encryption key storage location.
Figure 6. Partial Reconfiguration Bitstream Encryption Setting
Alternatively, you may add the following assignment statement in the Quartus Prime settings file .qsf:
set_global_assignment -name \ --ENABLE_PARTIAL_RECONFIGURATION_BITSTREAM_ENCRYPTION on
After you compile your base design and revisions, the software generates a .sof file and one or more .pmsf files, representing the personas.
- Create encrypted and signed programming files from .sof and .pmsf files in a similar fashion to designs with no partial reconfiguration enabled.
- Convert the compiled persona .pmsf file to a partially encrypted .rbf file:
quartus_pfg -c -o finalize_encryption_later=ON \ -o sign_later=ON encryption_enabled_persona1.pmsf persona1.rbf
- Finalize bitstream encryption using the quartus_encrypt command line tool:
quartus_encrypt --family=agilex \ --operation=ENCRYPT --key=aes_root.qek persona1.rbf encrypted_persona1.rbf
- Sign the encrypted configuration bitstream using the quartus_sign command line tool:
quartus_sign --family=agilex --operation=SIGN \ --qky=design0_sign_chain.qky \ --pem=design0_sign_private.pem encrypted_persona1.rbf \ signed_encrypted_persona1.rbf
quartus_sign --family=agilex --operation=SIGN \ --module=softHSM --module_args="--token_label=agilex-token \ --user_pin=agilex-token-pin \ --hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so" \ --qky=design0_sign_chain.qky --cancel=svnA:0 \ --keyname=design0_sign encrypted_persona1.rbf signed_encrypted_persona1.rbf
Did you find the information on this page useful?
Feedback Message
Characters remaining: