IP Library Granted Patent US 12,373,627
Granted Patent B2
US 12,373,627 · App. 17/866,270 · Granted Jul 29, 2025

System and method for generating a floorplan for a digital circuit using reinforcement learning

Inventors: Zhanguang Zhang (Montreal, CA); Mohammad Amini (Montreal, CA); Yingxue Zhang (Montreal, CA); Wulong Liu (Montreal, CA)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F30/392G06F30/327G06F30/20G06F30/373G06F2119/02
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,373,627
App. No.
17/866,270
Granted
Jul 29, 2025
Kind
B2
Abstract

Methods and systems for generating a floorplan for a circuit are disclosed. A netlist graph of the circuit and block features associated with blocks of the circuit are obtained. A reinforcement learning (RL) agent is used to generate a sequence of corner block list (CBL) actions. Each CBL action is generated by: generating a current state embedding representing a current state of the floorplan; and inputting the current state embedding to a policy network of the RL agent to generate a predicted output vector, which is used to generate the CBL action. After each CBL action is generated, the current CBL representation of the floorplan and the block features are updated to reflect the state of the floorplan after applying the CBL action. The CBL representation is outputted as a final floorplan after all blocks have been placed.

Claims (75)

1. A method for generating a floorplan for a circuit, the method comprising:

obtaining a netlist graph of the circuit and a set of block features associated with blocks of the circuit;

using a reinforcement learning (RL) agent to generate a sequence of corner block list (CBL) actions, each CBL action representing a block placement action and being generated by:

generating, from the netlist graph, the set of block features and a current CBL representation of the floorplan, a current state embedding representing a current state of the floorplan; and

inputting the current state embedding to a policy network of the RL agent to generate a predicted output vector, the predicted output vector from the policy network being used to generate the CBL action;

wherein after each CBL action is generated the current CBL representation of the floorplan is updated with the generated CBL action and the set of block features is updated to reflect the state of the floorplan after applying the generated CBL action; and

outputting the current CBL representation as a final floorplan after all blocks of the circuit have been placed by the sequence of CBL actions.

2. The method of claim 1 , wherein generating the current state embedding comprises:

encoding the netlist graph and the set of block features into a graph embedding using a neural network;

encoding the current CBL representation using a lookup table into a CBL embedding; and

combining the graph embedding and the CBL embedding to generate the current state embedding.

3. The method of claim 2 , wherein encoding the netlist graph and the set of block features into the graph embedding comprises:

encoding the netlist graph and the set of block features into node embeddings using a hypergraph graph convolutional network (GCN); and

pooling the node embeddings into the graph embedding.

4. The method of claim 1 , wherein each generated CBL action comprises a block identifier (ID) value, an insertion direction value, and a T-junction value.

5. The method of claim 4 , wherein each generated CBL action further comprises a rotation value or an aspect ratio value.

6. The method of claim 4 , wherein the netlist graph and the set of block features are encoded into node embeddings and the node embeddings are pooled into the graph embedding, and wherein the predicted output vector from the policy network is used to determine the block ID value of the CBL action by:

computing a dot product of the predicted output and the node embeddings to obtain a probability vector; and

determining the block ID value to correspond to an index of a highest probability value in the probability vector.

7. The method of claim 1 , further comprising:

computing a reward of the final floorplan;

updating parameters of the RL agent including parameters of the policy network using the computed reward; and

performing at least another iteration using the RL agent to output another final floorplan;

wherein the iterations are repeated until a termination condition is met.

8. The method of claim 1 , further comprising:

after each CBL action is generated, determining whether the generated CBL action is invalid; and

in response to an invalid CBL action, generating a penalty feedback to the RL agent.

9. A computing system comprising:

a memory storing instructions; and

a processing unit coupled to the memory, the processing unit being configured to execute the instructions to cause the computing system to:

obtain a netlist graph of a circuit and a set of block features associated with blocks of the circuit;

use a reinforcement learning (RL) agent to generate a sequence of corner block list (CBL) actions, each CBL action representing a block placement action and being generated by:

generating, from the netlist graph, the set of block features and a current CBL representation of a floorplan, a current state embedding representing a current state of the floorplan; and

inputting the current state embedding to a policy network of the RL agent to generate a predicted output vector, the predicted output vector from the policy network being used to generate the CBL action;

wherein after each CBL action is generated the current CBL representation of the floorplan is updated with the generated CBL action and the set of block features is updated to reflect the state of the floorplan after applying the generated CBL action; and

output the current CBL representation as a final floorplan after all blocks of the circuit have been placed by the sequence of CBL actions.

10. The computing system of claim 9 , wherein the processing unit is further configured to execute the instructions to cause the computing system to generate the current state embedding by:

encoding the netlist graph and the set of block features into a graph embedding using a neural network;

encoding the current CBL representation using a lookup table into a CBL embedding; and

combining the graph embedding and the CBL embedding to generate the current state embedding.

11. The computing system of claim 10 , wherein the processing unit is further configured to execute the instructions to cause the computing system to encode the netlist graph and the set of block features into the graph embedding by:

encoding the netlist graph and the set of block features into node embeddings using a hypergraph graph convolutional network (GCN); and

pooling the node embeddings into the graph embedding.

12. The computing system of claim 9 , wherein each generated CBL action comprises a block identifier (ID) value, an insertion direction value, and a T-junction value.

13. The computing system of claim 12 , wherein each generated CBL action further comprises a rotation value or an aspect ratio value.

14. The computing system of claim 12 , wherein the netlist graph and the set of block features are encoded into node embeddings and the node embeddings are pooled into the graph embedding, and wherein the predicted output vector from the policy network is used to determine the block ID value of the CBL action by:

computing a dot product of the predicted output and the node embeddings to obtain a probability vector; and

determining the block ID value to correspond to an index of a highest probability value in the probability vector.

15. The computing system of claim 9 , wherein the processing unit is further configured to execute the instructions to cause the computing system to:

compute a reward of the final floorplan;

update parameters of the RL agent including parameters of the policy network using the computed reward; and

perform at least another iteration using the RL agent to output another final floorplan;

wherein the iterations are repeated until a termination condition is met.

16. The computing system of claim 9 , wherein the processing unit is further configured to execute the instructions to cause the computing system to:

after each CBL action is generated, determine whether the generated CBL action is invalid; and

in response to an invalid CBL action, generate a penalty feedback to the RL agent.

17. A non-transitory computer readable medium having instructions encoded thereon, wherein the instructions, when executed by a processing unit of a computing system, cause the computing system to:

obtain a netlist graph of a circuit and a set of block features associated with blocks of the circuit;

use a reinforcement learning (RL) agent to generate a sequence of corner block list (CBL) actions, each CBL action representing a block placement action and being generated by:

generating, from the netlist graph, the set of block features and a current CBL representation of a floorplan, a current state embedding representing a current state of the floorplan; and

inputting the current state embedding to a policy network of the RL agent to generate a predicted output vector, the predicted output vector from the policy network being used to generate the CBL action;

wherein after each CBL action is generated the current CBL representation of the floorplan is updated with the generated CBL action and the set of block features is updated to reflect the state of the floorplan after applying the generated CBL action; and

output the current CBL representation as a final floorplan after all blocks of the circuit have been placed by the sequence of CBL actions.

18. The non-transitory computer readable medium of claim 17 , wherein the instructions, when executed by the processing unit, further cause the computing system to generate the current state embedding by:

encoding the netlist graph and the set of block features into a graph embedding using a neural network;

encoding the current CBL representation using a lookup table into a CBL embedding; and

combining the graph embedding and the CBL embedding to generate the current state embedding.

19. The non-transitory computer readable medium of claim 18 , wherein the instructions, when executed by the processing unit, further cause the computing system to encode the netlist graph and the set of block features into the graph embedding by:

encoding the netlist graph and the set of block features into node embeddings using a hypergraph graph convolutional network (GCN); and

pooling the node embeddings into the graph embedding.

20. The non-transitory computer readable medium of claim 17 , wherein the instructions, when executed by the processing unit, further cause the computing system to:

compute a reward of the final floorplan;

update parameters of the RL agent including parameters of the policy network using the computed reward; and

perform at least another iteration using the RL agent to output another final floorplan;

wherein the iterations are repeated until a termination condition is met.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2022
From: ZHANG, ZHANGUANG; AMINI, MOHAMMAD; ZHANG, YINGXUE; LIU, WULONG
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 061891/0975 →
Continuity (2)
Provisional Application 63308909 · Feb 10, 2022
Related Publication 20230252215A1 · Aug 10, 2023
References Cited (31)
US 10817294B2 · Fong · 2020 [cited by examiner]
US 11157246B2 · Zhang · 2021 [cited by examiner]
US 20060282236A1 · Wistmuller · 2006 [cited by examiner]
US 20120159414A1 · Ghanta · 2012 [cited by examiner]
US 20170061063A1 · Gupta · 2017 [cited by examiner]
US 20180260221A1 · Fong · 2018 [cited by examiner]
US 20190378037A1 · Kale · 2019 [cited by examiner]
US 20220358335A1 · Roeland · 2022 [cited by examiner]
US 20230229845A1 · Ma · 2023 [cited by examiner]
CN 103403719A · 2013 [cited by applicant]
CN 113261003A · 2021 [cited by applicant]
Aravindaraj et al., “A Modified SA Algorithm for VLSI floorplan”, Internal Jouranl of Scientific and Research Publications, vol. 9, Issue 9, Sep. 2019, pp. 286-289. (Year: 2019). [cited by examiner]
Blum et al., “Learning Complexity of Simulated Annealing”, Proceedings of the 24th International Conference on Artificial Intelligence and Statistics, 2021, San Diego, California, 10 pages. (Year: 2021). [cited by examiner]
Delahaye et al., Simulated annealing: From basics to applications, https://enac.hal.science/hal-01887543v1, Oct. 8, 2018, 44 pages. (Year: 2018). [cited by examiner]
Jenifer et al., “Simulated Annealing Algorithm for Modern VLSI Floorplanning Problem”, ICTACT Journal on Microelectronics, Apr. 2016, vol. 2, No. 1, 7 pages. (Year: 2016). [cited by examiner]
Sing et al., “IC Floorplanning Optimization using Simulated Annealing with Order-based Represntation”, I.J. Intelligent Systems and Applications, Apr. 2021, 9 pages. (Year: 2021). [cited by examiner]
Lin, J. M., & Chang, Y. W. (2004). “TCG-S: orthogonal coupling of P/sup*/-admissible representations for general floorplans. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems”, 23(6), 968-980. [cited by applicant]
Chang, Y. C., Chang, Y. W., Wu, G. M., & Wu, S. W. (2000, June). “B *- trees: A new representation for non-slicing floorplans”. In Proceedings of the 37th Annual Design Automation Conference (pp. 458-463). [cited by applicant]
Murata, H., Fujiyoshi, K., Nakatake, S., & Kajitani, Y. (1996). “VLSI module placement based on rectangle-packing by the sequence-pair”. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 15(… [cited by applicant]
Hong, X., Dong, S., Huang, G., Cai, Y., Cheng, C. K., & Gu, J. (2004). “Corner block list representation and its application to floorplan optimization”. IEEE Transactions on Circuits and Systems II: Express Briefs, 51(5… [cited by applicant]
Lin, J. M., & Hung, Z. X. (2011). “UFO: Unified convex optimization algorithms for fixed-outline floorplanning considering pre-placed modules”. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Syste… [cited by applicant]
Lin, J. M., Chen, T. T., Chang, Y. F., Chang, W. Y., Shyu, Y. T., Chang, Y. J., & Lu, J. M. (Nov. 2018). “A fast thermal-aware fixed-outline floorplanning methodology based on analytical models”. In 2018 IEEE/ACM Intern… [cited by applicant]
He, Z., Ma, Y., Zhang, L., Liao, P., Wong, N., Yu, B., & Wong, M. D. (Oct. 2020). “Learn to floorplan through acquisition of effective local search heuristics”. In 2020 IEEE 38th International Conference on Computer Des… [cited by applicant]
Xu, Q., Geng, H., Chen, S., Yuan, B., Zhuo, C., Kang, Y., & Wen, X. (2021). “GoodFloorplan: Graph Convolutional Network and Reinforcement Learning Based Floorplanning”. IEEE Transactions on Computer-Aided Design of Inte… [cited by applicant]
Kipf, T. N., & Welling, M. (2016). “Semi-supervised classification with graph convolutional networks”. arXiv preprint arXiv:1609.02907. [cited by applicant]
Babaeizadeh, M., Frosio, I., Tyree, S., Clemons, J., & Kautz, J. (2016). “Reinforcement learning through asynchronous advantage actor-critic on a gpu”. arXiv preprint arXiv:1611.06256. [cited by applicant]
Van Hasselt, H., Guez, A., & Silver, D. (Mar. 2016). “Deep reinforcement learning with double q-learning”. In Proceedings of the AAAI conference on artificial intelligence (vol. 30, No. 1). [cited by applicant]
Mirhoseini, A., Goldie, A., Yazgan, M., Jiang, J. W., Songhori, E., Wang, S., . . . & Dean, J. (2021). “A graph placement methodology for fast chip design”. Nature, 594(7862), 207-212. [cited by applicant]
Knechtel, J., Young, E. F., & Lienig, J. (Jan. 2014). “Structural planning of 3D-IC interconnects by block alignment”. In 2014 19th Asia and South Pacific Design Automation Conference (ASP-DAC) (pp. 53-60). IEEE. [cited by applicant]
Dulac-Arnold, G., Evans, R., van Hasselt, H., Sunehag, P., Lillicrap, T., Hunt, J., . . . & Coppin, B. (2015). “Deep reinforcement learning in large discrete action spaces”. arXiv preprint arXiv:1512.07679. [cited by applicant]
Bai, S., Zhang, F., & Torr, P. H. (2021). “Hypergraph convolution and hypergraph attention”. Pattern Recognition, 110, 107637. [cited by applicant]