IP Library Granted Patent US 12,417,319
Granted Patent B2
US 12,417,319 · App. 18/331,114 · Granted Sep 16, 2025

Multi-chip secure and programmable systems and methods

Inventors: Srirama Chandra (Portland, OR); Tim Vogt (San Jose, CA); Mamta Gupta (Fremont, CA); Sharath Raghava (San Jose, CA)
Assignee: Lattice Semiconductor Corporation
G06F21/64G06F21/572
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,417,319
App. No.
18/331,114
Granted
Sep 16, 2025
Kind
B2
Abstract

Various techniques are provided to implement multi-chip secure and programmable systems and methods. In one example, a multi-chip module system for providing an integrated programmable logic functionality and security functionality. The multi-chip module system includes a first die including a programmable logic device (PLD) configured to provide at least a portion of the programmable logic functionality. The multi-chip system further includes a second die including a security engine configured to perform at least a portion of the security functionality. The security engine is further configured to receive, from the first die, data associated with a first and second configuration image; perform a read operation on a memory for the second configuration image based on the data; and authenticate the second configuration image. The multi-chip system further includes a configuration engine configured to program the PLD according to the first configuration image. Related devices and methods are provided.

Claims (84)

1. A multi-chip module system for providing an integrated programmable logic functionality and security functionality, the multi-chip module system comprising:

a first die comprising a programmable logic device configured to provide at least a portion of the programmable logic functionality;

a second die comprising a security engine configured to perform at least a portion of the security functionality, wherein the security engine is configured to:

receive, from the first die, data associated with a first configuration image and a second configuration image;

perform a first read operation on a memory for the second configuration image based on the data; and

authenticate the second configuration image; and

a configuration engine configured to program the programmable logic device according to the first configuration image, wherein the configuration engine is disposed within the first die and/or the second die.

2. The multi-chip module system of claim 1 , wherein the first die is configured to implement a root of trust element for both the first die and the second die, wherein the second die is configured to receive the data from the root of trust element, wherein the first die comprises user logic configured to control input/output ports of the first die, wherein the second die comprises an application-specific integrated circuit (ASIC) to implement the security engine, wherein both the first die and the second die include a programmable logic fabric, and wherein one of the first die or second die implements a processor configured to control operation of functionality in both the first die and the second die.

3. The multi-chip module system of claim 1 , wherein:

the first die is configured to implement a root of trust element for both the first die and the second die;

the second configuration image comprises a firmware image;

the second die further comprises a programmable logic fabric configured to receive the data from the root of trust element;

the configuration engine is further configured to

program the programmable logic fabric of the second die using a third configuration image, wherein the third configuration image includes user-generated functionality and functionality determined by a system builder; and

program the second die according to the firmware image after programming the second die according to the third configuration image.

4. The multi-chip module system of claim 1 , wherein either the first die or the second die is configured with a soft processor configured to control functionality implemented in both the first die and the second die based on programming that does not differentiate whether a particular functionality is implemented in the first die or the second die, wherein the first die comprises a memory comprising platform firmware resiliency (PFR) configuration data associated with the second die, and wherein the second die comprises an input/output control block and a PFR block both configured to be programmed with the PFR configuration data stored in the memory of the first die.

5. The multi-chip module system of claim 1 , wherein both the first die and the second die are configured to encrypt, sign and/or encrypt and sign messages across an interface between the first die and the second die, and wherein the data comprises a configuration version number associated with the first die, a boot source information associated with the first configuration image, a customer public key, and/or a memory location associated with the second configuration image.

6. The multi-chip module system of claim 1 , wherein the first die and the second die are configured to communicate with each other using an out of band interface that does not carry user data and another interface that carries user data, wherein the second configuration image comprises an update configuration image, and wherein the security engine is further configured to determine a memory location associated with the second configuration image based on the data.

7. The multi-chip module system of claim 1 , further comprising interfaces configured to allow the multi-chip module system to be configured and/or used as though the multi-chip module system contains one programmable logic die, wherein the first die and the second die share a substrate, and wherein the first die and the second die are configured to communicate with each other via a direct communication and without going through the substrate.

8. The multi-chip module system of claim 1 , wherein the security engine is further configured to:

perform a second read operation on a predetermined memory location of the memory; and

authenticate the second configuration image based on one of a first signature or a second signature according to the second read operation, wherein the memory comprises an external flash memory.

9. The multi-chip module system of claim 8 , wherein:

the second configuration image comprises a customer firmware image;

the first signature comprises a firmware signature;

the second signature comprises a hash message authentication code (HMAC) signature;

the first die comprises a control PLD block;

the second die further comprises a processor;

the security engine is configured to authenticate the second configuration image based on the first signature;

the security engine is further configured to:

receive the second configuration image from the processor; and

determine an HMAC signature based on the second configuration image;

the processor is configured to:

perform a third read operation on the security engine to obtain the HMAC signature; and

perform a write operation to write the HMAC signature into the predetermined memory location of the memory;

the processor is configured to be programmed according to the second configuration image when the second configuration image is successfully authenticated; and

the processor is configured to control the control PLD block of the first die through an inter-chip communication interface.

10. The multi-chip module system of claim 8 , wherein:

the second configuration image comprises an update configuration image,

the security engine of the second die is further configured to determine a memory location associated with the second configuration image based on the data,

the first die comprises a security engine configured to:

authenticate the update configuration image associated with the second configuration image; and

set an authentication bit when authentication of the update configuration image is successful.

11. The multi-chip module system of claim 8 , wherein:

the predetermined memory location is associated with a hash message authentication code (HMAC) signature,

the second configuration image is based on the first signature when the memory location is blank,

the second configuration image is based on the second signature when the memory location is not blank,

the second die further comprises a processor configured to be programmed based at least in part by the second configuration image, and

the processor is configured to:

stream the second configuration image to the security engine;

perform a third read operation to obtain the first signature from the memory; and

send the first signature to the security engine; and

the security engine is configured to:

determine a hash value associated with the second configuration image; and

authenticate the second configuration image based on the first signature and the hash value.

12. A method for configuring the multi-chip module system of claim 1 , the method comprising:

receiving a user design;

synthesizing the user design into a plurality of programmable logic device components;

generating configuration data to configure physical components of the programmable logic device based on the synthesized user design; and

generating the first configuration image based on the configuration data and factory data indicative of a root of trust of the first die.

13. A method of operating for a multi-chip module system having an integrated programmable logic functionality and security functionality, the method comprising:

programming a programmable logic device of a first die of the multi-chip module system according to a first configuration image, wherein the programmable logic device provides at least a portion of the programmable logic functionality;

receiving, by a security engine of a second die of the multi-chip module system from the first die, data associated with the first configuration image and a second configuration image, wherein the security engine performs at least a portion of the security functionality;

performing, by the security engine, a first read operation on a memory for the second configuration image based on the data; and

authenticating, by the security engine, the second configuration image.

14. The method of claim 13 , wherein the first die implements a root of trust element for both the first die and the second die, and wherein the receiving comprises receiving, by a programmable logic fabric of the second die, the data from the root of trust element, wherein the second configuration image comprises a firmware image, the method further comprising:

programming the programmable logic fabric of the second die according to a third configuration image; and

programming the programmable logic fabric of the second die according to the firmware image after programming the second die according to the third configuration image.

15. The method of claim 13 , wherein either the first die or the second die is configured with a soft processor configured to control functionality implemented in both the first die and the second die based on programming that does not differentiate whether a particular functionality is implemented in the first die or the second die, and wherein the data comprises a configuration version number associated with the first die, a boot source information associated with the first configuration image, a customer public key, and/or a memory location associated with the second configuration image.

16. The method of claim 13 , wherein the first die and the second die communicate with each other using an out of band interface that does not carry user data and another interface that carries user data, wherein the first die and the second die share a substrate, wherein the first die and the second die communicate with each other via a direct communication and without going through the substrate, wherein both the first die and the second die include a programmable logic fabric, and wherein one of the first die or second die implements a processor configured to control operation of functionality in both the first die and the second die.

17. The method of claim 13 , further comprising performing a second read operation on a predetermined memory location of the memory, wherein the authenticating is based on one of a first signature or a second signature according to the second read operation.

18. The method of claim 17 , wherein the authenticating is based on the first signature, the method further comprising:

receiving, by the security engine from a processor of the second die, the second configuration image;

determining, by the security engine, a hash message authentication code (HMAC) signature based on the second configuration image;

performing, by the processor, a third read operation on the security engine to obtain the HMAC signature;

performing a write operation to write the HMAC signature into the predetermined memory location of the memory, wherein the processor is configured to be programmed according to the second configuration image when the second configuration image is successfully authenticated.

19. The method of claim 17 , wherein the second configuration image comprises a customer firmware image, wherein the first signature comprises a firmware signature, wherein the second signature comprises a hash message authentication code (HMAC) signature, wherein the predetermined memory location is associated with the HMAC signature, wherein the second configuration image is based on the first signature when the memory location is blank, and wherein the second configuration image is based on the second signature when the memory location is not blank.

20. The method of claim 17 , further comprising:

determining, by the security engine, a memory location associated with the second configuration image based on the data;

streaming, by a processor of the second die, the second configuration image to the security engine;

performing, by the processor, a third read operation to obtain the first signature from the memory;

sending, by the processor, the first signature to the security engine; and

determining, by the security engine, a hash value associated with the second configuration image,

wherein the authenticating is based on the first signature and the hash value, and wherein the processor is configured to be programmed at least in part by the second configuration image.

Assignments (2)
SECURITY INTEREST Recorded Jul 2, 2026
From: LATTICE SEMICONDUCTOR CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 075892/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2024
From: CHANDRA, SRIRAMA; VOGT, TIM; GUPTA, MAMTA; RAGHAVA, SHARATH
To: LATTICE SEMICONDUCTOR CORPORATION
Reel/Frame 068439/0447 →
Continuity (3)
Continuation PCTUS2021062487 · Dec 8, 2021
Provisional Application 63122910 · Dec 8, 2020
Related Publication 20230315913A1 · Oct 5, 2023
References Cited (14)
US 7069452B1 · Hind · 2006 [cited by examiner]
US 9152794B1 · Sanders · 2015 [cited by examiner]
US 9165143B1 · Sanders · 2015 [cited by examiner]
US 9230112B1 · Peterson · 2016 [cited by examiner]
US 20190042514A1 · Enamandram et al. · 2019 [cited by applicant]
US 20190042752A1 · Mihm · 2019 [cited by examiner]
US 20190044515A1 · Gutala et al. · 2019 [cited by applicant]
US 20190044575A1 · Assem · 2019 [cited by examiner]
US 20190318131A1 · Lulic · 2019 [cited by examiner]
US 20200136906A1 · Guim Bernat et al. · 2020 [cited by applicant]
US 20200167506A1 · Iyer · 2020 [cited by examiner]
US 20210081536A1 · Zhang · 2021 [cited by examiner]
WO WO2019217934A1 · 2019 [cited by applicant]
WO WO2020243367A1 · 2020 [cited by applicant]
Cited By (1)
US 12,562,772