IP Library Granted Patent US 12,229,482
Granted Patent B2
US 12,229,482 · App. 18/197,869 · Granted Feb 18, 2025

Recovery of a hierarchical functional representation of an integrated circuit

Inventors: Adam G. Kimura (Westerville, OH); Andrew S. Elliott (Columbus, OH); Daniel A. Perkins (Lewis Center, OH)
Assignee: BATTELLE MEMORIAL INSTITUTE
G06F30/323G06F30/327G06F30/33G06F2117/06H01J2237/31798
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,229,482
App. No.
18/197,869
Granted
Feb 18, 2025
Kind
B2
Abstract

A Register Transfer Level (RTL) representation is recovered from a netlist representing an integrated circuit (IC). The netlist is converted to a graph comprising nodes belonging to a set of node types and edges connecting the nodes. The set of node types includes an instance node type representing an electronic component and a wire node type representing signal transfer between components. The graph is converted to a standardized graph by replacing subgraphs of the graph with standardized subgraphs. An RTL representation of the standardized graph is generated by operations including building signal declarations in a hardware description language (HDL) from the wire nodes of the standardized graph and building signal assignments in the HDL from instance nodes of the standardized graph.

Claims (19)

1. A device for recovering a functional representation of an integrated circuit (IC), the device comprising:

a display; and

an electronic processor programmed to:

provide a graphical user interface (GUI) via which a flattened netlist representing the IC is provided as input;

convert the flattened netlist to a hierarchical register transfer language (RTL) representation of the IC, wherein the converting of the flattened netlist to the hierarchical RTL representation of the IC includes identifying flip-flop interdependencies including identifying a state machine defined by a set of flip-flops with outputs that feedback through combinatorial logic to inputs of the flip-flops; and

display a portion of the hierarchical RTL representation of the IC selected via the GUI.

2. The device of claim 1 wherein the converting of the flattened netlist to the hierarchical RTL representation of the IC includes identifying repeated structures and replacing the repeated structures with a hierarchical RTL representation of the repeated structures.

3. The device of claim 1 wherein the converting of the flattened netlist to the hierarchical RTL representation of the IC further includes defining instances of synchronous devices of the IC based on RTL templates of the synchronous devices.

4. The device of claim 1 wherein the electronic processor is further programmed to:

perform an IC performance simulation on the flattened netlist representing the IC;

perform an IC performance simulation on the hierarchical RTL representation of the IC; and

compare the IC performance simulation on the flattened netlist representing the IC and the IC performance simulation on the hierarchical RTL representation of the IC.

5. A non-transitory storage medium storing instructions readable and executable by an electronic processor to perform a method recovering a functional representation of an integrated circuit (IC), the method comprising:

providing a graphical user interface (GUI) via which a flattened netlist representing the IC is received;

converting the flattened netlist to a hierarchical register transfer language (RTL) representation of the IC, the converting including identifying a state machine defined by a set of flip-flops with outputs that feedback through combinatorial logic to inputs of the flip-flop;

receiving a selection of a portion of the RTL representation via the GUI; and

presenting the selected portion of the RTL representation of the IC on a display.

6. The non-transitory storage medium of claim 5 wherein the converting of the flattened netlist to the hierarchical RTL representation of the IC includes identifying repeated structures and replacing the repeated structures with a hierarchical RTL representation of the repeated structures.

7. The non-transitory storage medium of claim 5 wherein the converting of the flattened netlist to the hierarchical RTL representation of the IC further includes defining instances of synchronous devices of the IC based on RTL templates of the synchronous devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2023
From: KIMURA, ADAM G; ELLIOTT, ANDREW S; PERKINS, DANIEL A
To: BATTELLE MEMORIAL INSTITUTE
Reel/Frame 063654/0284 →
Continuity (4)
Division 17239977 · Apr 26, 2021
Continuation 16897642 · Jun 10, 2020
Provisional Application 62859466 · Jun 10, 2019
Related Publication 20230289502A1 · Sep 14, 2023
References Cited (41)
US 5581738A · Dombrowski · 1996 [cited by applicant]
US 5819064A · Razdan · 1998 [cited by applicant]
US 5867395A · Watkins et al. · 1999 [cited by applicant]
US 6173435B1 · Dupenloup · 2001 [cited by applicant]
US 6697982B2 · Charkaravathy · 2004 [cited by applicant]
US 7000213B2 · Banerjee · 2006 [cited by applicant]
US 7337100B1 · Hutton · 2008 [cited by applicant]
US 7362135B1 · Chang · 2008 [cited by applicant]
US 7653884B2 · Furnish · 2010 [cited by applicant]
US 7784005B1 · Ng · 2010 [cited by applicant]
US 7917877B2 · Singh · 2011 [cited by applicant]
US 7937678B2 · Lippmann · 2011 [cited by examiner]
US 8037443B1 · Krishnaswamy · 2011 [cited by applicant]
US 8156457B2 · Basile · 2012 [cited by applicant]
US 8156458B2 · Baker · 2012 [cited by applicant]
US 8327311B1 · Neema · 2012 [cited by applicant]
US 8347243B2 · Bruneel · 2013 [cited by applicant]
US 8484590B2 · Newcomb · 2013 [cited by applicant]
US 8612772B1 · Langhammer · 2013 [cited by applicant]
US 8661394B1 · Frederick · 2014 [cited by applicant]
US 8881074B2 · Faes · 2014 [cited by applicant]
US 9047429B2 · He · 2015 [cited by applicant]
US 9342435B2 · Van Rozen · 2016 [cited by applicant]
US 9355000B1 · Biswas · 2016 [cited by applicant]
US 9367659B2 · Saghizadeh · 2016 [cited by applicant]
US 9430606B2 · Oberai · 2016 [cited by applicant]
US 11010519B2 · Kimura · 2021 [cited by applicant]
US 11062067B2 · Hills · 2021 [cited by applicant]
US 20080295043A1 · Chang et al. · 2008 [cited by applicant]
US 20090031277A1 · McElvain et al. · 2009 [cited by applicant]
US 20090313596A1 · Lippmann et al. · 2009 [cited by applicant]
US 20110113392A1 · Chakraborty et al. · 2011 [cited by applicant]
US 20150100929A1 · Redekopp et al. · 2015 [cited by applicant]
US 20150242544A1 · Berkovitz et al. · 2015 [cited by applicant]
Benz, et al., “BIL: A tool-chain for bitstream reverse-engineering”, Integrated Circuits and Systems Lab, Technische Universitat Darmstadt, Germany, 2012, pp. 735-738. [cited by applicant]
Ding, et al., “Deriving an NCD file from an FPGA bistream: Methodology, architecture and evaluation”, [cited by applicant]
Note et al., “From the bitstream to the netlist”, FPGA '08: Proceedings of the 16th international ACM/SIGDA symposium on Field programmable gate arrays, Feb. 2008. [cited by applicant]
Yu, et al., “Recent Advances in FPGA Reverse Engineering”, [cited by applicant]
Zhang Tao et al: “A Comprehensive FPGA Reverse Engineering Tool-Chain: From Bitstream to RTL Code”, IEEE Access, vol. 7, Feb. 27, 2019 (Feb. 27, 2019), pp. 38379-38389, XP011717579, DOI: 10.1109/ACCESS.2019.2901949 [ret… [cited by applicant]
Wenchao Li: “Formal Methods for Reverse Engineering Gate-Level Netlists”, Dec. 18, 2013 (Dec. 18, 2013), XP055379711, Retrieved from the Internet: URL:https://www2.eecs.berkeley.edu/Pubs/TechRpts/2013/EECS-2013-222.pdf … [cited by applicant]
International Search Report of Application No. PCT/US2020/036903 Dated Oct. 2, 2020. [cited by applicant]