IP Library Granted Patent US 12,632,227
Granted Patent B2
US 12,632,227 · App. 18/783,054 · Granted May 19, 2026

Flexible configuration components

Inventors: Frederic Ruelle (Marigné-Laillé, FR); Yohann Martiniault (Val D'Ize, FR); Bechir Jabri (Ariana, TN); Maher Mastouri (Ariana, TN); Laurent Meunier (Coulaines, FR); Emmanuel Grandin (Villeneuve-en-Retz, FR); Maxime Dortel (Grasse, FR)
Assignee: STMicroelectronics International N.V.
G06F8/34G06F3/0482G06F8/77G06F9/44505
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,632,227
App. No.
18/783,054
Granted
May 19, 2026
Kind
B2
Abstract

Content is generated for a programmable computing device based on user-selected configuration information. The user-selected configuration information includes a user-selected versatile component. User-selectable versatile component configuration options for the user-selected versatile component are presented and versatile component configuration option selections for the user-selected versatile component are received. Settings for an instance of the user-selected versatile component are generated based on the received component configuration option selections. A configuration store is generated or updated based on the settings for the user-selected versatile component. Content for the programmable computing device is generated based on the configuration store. Generating the content includes associating the instance of the user-selected versatile component with a software component, with a hardware component, or combinations thereof, based on one or more of the received versatile component configuration option selections. The generated content is provided to the programmable computing device.

Claims (110)

1 . A method, comprising:

presenting, via a graphical user interface to a user, a list of versatile components for a project associated with a programmable computing device;

receiving, via the graphical user interface, a selection of a user-selected versatile component for the project from the list of versatile components;

presenting, via the graphical user interface, user-selectable versatile component configuration options for the user-selected versatile component;

receiving, via the graphical user interface, versatile component configuration option selections for the user-selected versatile component;

generating settings for a first instance of the user-selected versatile component based on the received versatile component configuration option selections;

generating or updating a configuration store based on the generated settings for the first instance of the user-selected versatile component; and

generating content for the programmable computing device based on the configuration store, wherein at least one of the generating settings for the first instance of the versatile component, or the generating or updating the configuration store, includes associating the first instance of the user-selected versatile component with a software component, associating the first instance of the user-selected versatile component with a hardware component of the programmable computing device, or combinations thereof, based on one or more of the received versatile component configuration option selections.

2 . The method of claim 1 , comprising:

providing the generated content to the programmable computing device.

3 . The method of claim 1 , wherein,

the presenting, via the graphical user interface, user-selectable versatile component configuration options for the user-selected versatile component comprises:

presenting, via the graphical user interface, a list of user-selectable functionality options for user-selected versatile component; and

presenting, via the graphical user interface, a list of user-selectable application programming interface (API) options for the user-selected versatile component; and

the receiving, via the graphical user interface, versatile component configuration option selections for the user-selected versatile component comprises:

receiving, via the graphical user interface, a selection of one or more functionality options from the list of user-selectable functionality options; and

receiving, via the graphical user interface, a selection of one or more API options from the list of user-selectable API options.

4 . The method of claim 1 , wherein the first instance of the user-selected versatile component is associated with a software component and with a hardware component of the programmable computing device based on one or more of the received versatile component configuration option selections, and the method includes:

generating a list of software components based on the one or more of the received versatile component configuration option selections;

presenting, via the graphical user interface, the generated list of software components;

receiving, via the graphical user interface, a selection of a software component from the generated list of software components;

associating the first instance of the user-selected versatile component with the selected software component;

generating a list of hardware components based on the one or more of the received versatile component configuration option selections;

presenting, via the graphical user interface, the generated list of hardware components;

receiving, via the graphical user interface, a selection of a specific hardware component from the generated list of hardware components; and

associating the first instance of the user-selected versatile component with the selected hardware component.

5 . The method of claim 1 , wherein generating the content comprises:

generating initialization code that initializes software of the programmable computing device based on the configuration store.

6 . The method of claim 1 , wherein generating the content comprises:

generating initialization code that initializes hardware of the programmable computing device based on the configuration store.

7 . The method of claim 1 , wherein generating the content comprises:

generating application code that controls software of the programmable computing device based on the configuration store.

8 . The method of claim 1 , wherein the first instance of the user-selected versatile component is associated with a single hardware component of the programmable computing device.

9 . The method of claim 1 , comprising associating a second instance of a user-selected versatile component with the hardware component of the programmable computing device associated with the first instance of the user-selected versatile component.

10 . The method of claim 1 , comprising associating a second instance of a user-selected versatile component with the software component of the programmable computing device associated with the first instance of the user-selected versatile component.

11 . The method of claim 1 , comprising:

presenting, via the graphical user interface, user-selectable code generation strategy options for the first instance of the user-selected versatile component;

receiving, via the graphical user interface, code generation strategy option selections for the first instance of the user-selected versatile component;

generating content for the programmable computing device based on the code generation strategy option selections for the first instance of the user-selected versatile component.

12 . The method of claim 1 , comprising:

updating the settings for the first instance of the user-selected versatile component based on settings associated with a second instance of a user-selected versatile component;

updating the association of the first instance of the user-selected versatile component with a software component based on settings associated with the second instance of a user-selected versatile component;

updating the association of the first instance of the user-selected versatile component with a hardware component based on settings associated with the second instance of a user-selected versatile component; or

combinations thereof.

13 . The method of claim 4 , comprising generating the list of hardware components based on the selected software component.

14 . The method of claim 4 , comprising generating the list of software components based on the selected hardware component.

15 . The method of claim 8 , wherein the first instance of the user-selected versatile component is associated with a single software component of the programmable computing device.

16 . The method of claim 11 , wherein the generating content includes invoking a code generation strategy descriptor service.

17 . The method of claim 11 , wherein the code generation strategy option selections specify,

a hardware component of the programmable computing device to associate with the first instance of the user-selected versatile component;

a software component of the programmable computing device to associate with the first instance of the user-selected versatile component; or

a hardware component of the programmable computing device to associate with the first instance of the user-selected versatile component and a software component of the programmable computing device to associate with the first instance of the user-selected versatile component.

18 . The method of claim 17 , comprising:

updating the configuration store; and

generating content for the programmable computing device based on the updated configuration store.

19 . A non-transitory computer-readable medium having contents that configure a processing device to perform a method, the method comprising:

presenting, via a graphical user interface to a user, a list of versatile components for a project associated with a programmable computing device;

receiving, via the graphical user interface, a first selection of a user-selected versatile component for the project from the list of versatile components;

presenting, via the graphical user interface, user-selectable versatile component configuration options for the user-selected versatile component;

receiving, via the graphical user interface, versatile component configuration option selections for the user-selected versatile component;

generating settings for a first instance of the user-selected versatile component based on the received versatile component configuration option selections;

generating or updating a configuration store based on the settings for the first instance of the user-selected versatile component; and

generating content for the programmable computing device based on the configuration store, wherein at least one of the generating settings for the first instance of the versatile component, or the generating or updating the configuration store, includes associating the first instance of the user-selected versatile component with a software component, associating the first instance of the user-selected versatile component with a hardware component of the programmable computing device, or combinations thereof, based on one or more of the received versatile component configuration option selections.

20 . The non-transitory computer-readable medium of claim 19 , wherein the method comprises:

providing the generated content to the programmable computing device.

21 . The non-transitory computer-readable medium of claim 19 , wherein the contents of the computer-readable medium comprise instructions executable by the processing device.

22 . The non-transitory computer-readable medium of claim 19 , wherein the method comprises invoking a code generation strategy descriptor service.

23 . The non-transitory computer-readable medium of claim 22 , wherein the method comprises executing code provided by the code generation strategy descriptor service.

24 . The non-transitory computer-readable medium of claim 23 , wherein the executing the code provided by the code generation strategy descriptor service comprises generating an object specifying a selected code generation strategy for the first instance of the user-selected versatile component.

25 . The non-transitory computer-readable medium of claim 24 , wherein the selected code generation strategy for the first instance of the user-selected versatile component specifies,

a hardware component of the programmable computing device to associate with the first instance of the user-selected versatile component;

a software component of the programmable computing device to associate with the first instance of the user-selected versatile component; or

a hardware component of the programmable computing device to associate with the first instance of the user-selected versatile component and a software component of the programmable computing device to associate with the first instance of the user-selected versatile component.

26 . A computing device, comprising:

a display device;

a memory, which, in operation, stores computer instructions; and

at least one processor, which, in operation, executes the computer instructions to:

present, via a graphical user interface to a user, a list of versatile components for a project associated with a programmable computing device;

receive, via the graphical user interface, a first selection of a user-selected versatile component for the project from the list of versatile components;

present, via the graphical user interface, user-selectable versatile component configuration options for the user-selected versatile component;

receive, via the graphical user interface, versatile component configuration option selections for the user-selected versatile component;

generate settings for a first instance of the user-selected versatile component based on the received versatile component configuration option selections;

generate or update a configuration store based on the settings for the first instance of the user-selected versatile component; and

generate content for the programmable computing device based on the configuration store, wherein at least one of the generating settings for the first instance of the versatile component, or the generating or updating the configuration store, includes associating the first instance of the user-selected versatile component with a software component, associating the first instance of the user-selected versatile component with a hardware component of the programmable computing device, or combinations thereof, based on one or more of the received versatile component configuration option selections.

27 . The computing device of claim 26 , wherein the at least one processor, in operation, executes the computer instructions to:

provide the generated content to the programmable computing device.

28 . The computing device of claim 26 , wherein an object in the configuration store specifies:

a hardware component of the programmable computing device to associate with the first instance of the user-selected versatile component;

a software component of the programmable computing device to associate with the first instance of the user-selected versatile component; or

a hardware component of the programmable computing device to associate with the first instance of the user-selected versatile component and a software component of the programmable computing device to associate with the first instance of the user-selected versatile component.

29 . A system, comprising:

a programmable computing device; and

a non-transitory computer-readable medium having contents, which, in operation, cause a processor to:

present, via a graphical user interface to a user, a list of versatile components for a project associated with the programmable computing device;

receive, via the graphical user interface, a first selection of a user-selected versatile component for the project from the list of versatile components;

present, via the graphical user interface, user-selectable component configuration options for the user-selected versatile component;

receive, via the graphical user interface, component configuration option selections for the user-selected versatile component;

generate settings for a first instance of the user-selected versatile component based on the received component configuration option selections;

generate or update a configuration store based on the settings for the first instance of the user-selected versatile component; and

generate content for the programmable computing device based on the configuration store, wherein at least one of the generating settings for the first instance of the versatile component, or the generating or updating the configuration store, includes associating the first instance of the user-selected versatile component with a software component, associating the first instance of the user-selected versatile component with a hardware component of the programmable computing device, or combinations thereof, based on one or more of the received versatile component configuration option selections.

30 . The system of claim 29 , wherein the programmable computing device comprises:

a microprocessor which, in operation, executes at least a portion of the generated content to initialize software of the programmable computing device.

31 . The system of claim 29 , wherein the programmable computing device comprises:

a microprocessor which, in operation, executes at least a portion of the generated content to initialize hardware of the programmable computing device.

32 . The system of claim 29 , wherein the programmable computing device comprises:

a microprocessor which, in operation, executes at least a portion of the generated content as a software application of the programmable computing device.

33 . The system of claim 29 , wherein an object in the configuration store specifies:

a hardware component of the programmable computing device to associate with the first instance of the user-selected versatile component;

a software component of the programmable computing device to associate with the first instance of the user-selected versatile component; or

a hardware component of the programmable computing device to associate with the first instance of the user-selected versatile component and a software component of the programmable computing device to associate with the first instance of the user-selected versatile component.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2024
From: STMICROELECTRONICS (GRAND OUEST) SAS
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 069186/0889 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2024
From: STMICROELECTRONICS FRANCE
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 069186/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2024
From: STMICROELECTRONICS (ROUSSET) SAS
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 069092/0813 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2024
From: JABRI, BECHIR; MASTOURI, MAHER
To: STMICROELECTRONICS FRANCE
Reel/Frame 068484/0808 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2024
From: DORTEL, MAXIME
To: STMICROELECTRONICS (ROUSSET) SAS
Reel/Frame 068484/0865 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2024
From: RUELLE, FREDERIC; MARTINIAULT, YOHANN; MEUNIER, LAURENT; GRANDIN, EMMANUEL
To: STMICROELECTRONICS (GRAND OUEST) SAS
Reel/Frame 068484/0869 →
Continuity (3)
Provisional Application 63573844 · Apr 3, 2024
Provisional Application 63516444 · Jul 28, 2023
Related Publication 20250036428A1 · Jan 30, 2025
References Cited (40)
US 5812394A · Lewis et al. · 1998 [cited by applicant]
US 7433932B2 · Eifler et al. · 2008 [cited by applicant]
US 8135884B1 · Sullam et al. · 2012 [cited by applicant]
US 8592722B2 · Ulrich et al. · 2013 [cited by applicant]
US 8661401B1 · Ogami et al. · 2014 [cited by applicant]
US 8701080B2 · Tripathi · 2014 [cited by applicant]
US 9250299B1 · Yarlagadda et al. · 2016 [cited by applicant]
US 9650141B2 · Fagan et al. · 2017 [cited by applicant]
US 10162630B2 · Bouley · 2018 [cited by examiner]
US 10643020B1 · Kukal et al. · 2020 [cited by applicant]
US 10739949B2 · Lattore Costa · 2020 [cited by applicant]
US 11316733B1 · Johnson et al. · 2022 [cited by applicant]
US 12093201B2 · Le Corre · 2024 [cited by examiner]
US 20060164453A1 · Silverbrook et al. · 2006 [cited by applicant]
US 20070130548A1 · Zhaksilikov et al. · 2007 [cited by applicant]
US 20070165765A1 · Ogami et al. · 2007 [cited by applicant]
US 20080244520A1 · Hashimoto et al. · 2008 [cited by applicant]
US 20090094539A1 · Wang et al. · 2009 [cited by applicant]
US 20090125129A1 · Eldridge · 2009 [cited by examiner]
US 20140323182A1 · Kim et al. · 2014 [cited by applicant]
US 20160149761A1 · Liu · 2016 [cited by examiner]
US 20160267046A1 · Kris et al. · 2016 [cited by applicant]
US 20180225230A1 · Litichever et al. · 2018 [cited by applicant]
US 20190079575A1 · Hanson et al. · 2019 [cited by applicant]
US 20200125060A1 · Fujimura · 2020 [cited by applicant]
US 20200387352A1 · Chawla et al. · 2020 [cited by applicant]
US 20200387357A1 · Mathon et al. · 2020 [cited by applicant]
US 20200396225A1 · Bhatia et al. · 2020 [cited by applicant]
US 20210209003A1 · Kowkutla et al. · 2021 [cited by applicant]
US 20220261139A1 · Phoutchanthavongsa et al. · 2022 [cited by applicant]
US 20230075227A1 · Grandin et al. · 2023 [cited by applicant]
US 20230078144A1 · Ruelle et al. · 2023 [cited by applicant]
US 20230080696A1 · Ruelle et al. · 2023 [cited by applicant]
US 20230259474A1 · Le Corre · 2023 [cited by applicant]
US 20230342476A1 · Ziecik et al. · 2023 [cited by applicant]
US 20250036374A1 · Dortel et al. · 2025 [cited by applicant]
Francesco Renzini et al., “A Fully Programmable eFPGA-Augmented SoC for Smart Power Applications”, Aug. 7, 2019, IEEE Transactions on Circuits and Systems, vol. 67, No. 2 pp. 489-501 (Year: 2019). [cited by applicant]
T. Giuma et al., “Programmable Hardware and the New Analog Capacity”, Apr. 1, 2007, International Conference on Systems, pp. 1-6 (Year: 2007). [cited by applicant]
Amaury Bruniaux et al., “Towards a Fully Programmable Internet of Things”, Oct. 10, 2022, 18th International Conference on Wireless and Mobile Computing—Networking and Communications, pp. 204-210 (Year: 2022). [cited by applicant]
M. Martina et al., “A new approach to compress the configuration information of programmable devices”, Jan. 1, 2006, Proceedings of Design Automation & Test in Europe Conference, vol. 2, pp. 1-4 (Year: 2006). [cited by applicant]