Claims
- 1. A method to design a semiconductor product, the method comprising the steps of:
(a) selecting an application set, the application set comprising a description of a partially manufactured semiconductor slice having a plurality of physical resources of at least a transistor fabric, the application set further comprising a plurality of shells representative of a plurality of logical resources corresponding to the physical resources of the slice, and further comprising the necessary tools to further develop the slice into the semiconductor product; (b) reading a customer requirement comprising the desired configuration of the semiconductor product; (c) storing the description of the physical resources of the slice in a resource database; (d) allocating a portion of the transistor fabric to the customer requirement; (e) generating any required RTL and/or synthesis scripts necessary for the allocated transistor fabric; and (f) verifying that the allocated transistor fabric and the generated RTL and/or synthesis scripts meet a plurality of standards set forth by the plurality of shells.
- 2. The method of claim 1, further comprising:
(a) reading a package description of the printed circuit board upon which the semiconductor product will be mounted; and (b) allocating the physical resources of the slice for power and signal distribution to/from the printed circuit board.
- 3. The method of claim 1, wherein the physical resources further comprise at least one hardmac.
- 4. The method of claim 1, wherein the physical resources further comprise at least one configurable diffused area.
- 5. The method of claim 1, wherein the physical resources and the logical resources further comprise at least one IP core.
- 6. The method of claim 1, wherein the plurality of shells comprise:
(a) an RTL shell comprising the RTL for correct connection of the physical and logical resources; (b) a verification shell to verify the RTL is correct; (c) a timing analysis shell to insert clocks and appropriate timing for proper function of the physical and logical resources; and (d) a synthesis shell to generate any RTL necessary to allocate the transistor fabric, and to impose any constraints of the customer requirement onto the RTL.
- 7. The method of claim 6, wherein the plurality of shells further comprise:
(a) a documentation shell to document the allocation of and the physical and logical resources of the slice to the customer requirement in order to develop the semiconductor product; and (b) a manufacturing test shell to test the physical and logical resources allocated to the customer requirement in order to develop the semiconductor product.
- 8. The method of claim 7, further comprising:
(a) allocating the physical resources incrementally; and (b) verifying an effect of the incremental allocation on the development of the semiconductor product.
- 9. The method of claim 7, further comprising:
(a) allocating a portion of the transistor fabric to at least one I/O physical and logical resource of the semiconductor product to satisfy the desired configuration and verifying the allocated I/O physical and logical resource(s); (b) allocating a second portion of the transistor fabric to at least one memory physical and logical resource of the semiconductor product to satisfy the desired configuration and verifying the allocated memory physical and logical resource(s); (c) allocating a third portion of the transistor fabric to at least one timing resource and determining that the at least one timing resource meets the desired configuration; and (d) allocating a fourth portion of the transistor fabric to at least one testing resource of the semiconductor product and verifying that the testing resource(s) is correct and meets the desired configuration.
- 10. The method of claim 9, further comprising the step of automatically documenting, implementing, and testing any of at least one internal register and/or memory.
- 11. The method of claim 10, further comprising the step of allocating and generating RTL and synthesis scripts for at least one internal register not included in data flow from/to the I/O and memory physical and logical resources.
- 12. The method of claim 9, further comprising the step of allocating the transistor fabric to and generating the RTL for at least one trace array for state and debug signals from the physical and logical resources for logic analysis and trace storage.
- 13. A method to design a semiconductor product, the method comprising the steps of:
(a), selecting an application set, the application set comprising: a description of a partially manufactured semiconductor slice having a plurality of physical resources, the physical resources comprising at least: a transistor fabric, a hardmac, a configurable I/O block, a configurable memory array, an IP core; the application set further comprising a plurality of shells representative of a plurality of logical resources corresponding to the physical resources of the slice, the plurality of shells comprising at least: an RTL shell comprising the RTL for correct connection of the physical and logical resources, a verification shell to verify the RTL is correct, a static timing analysis shell to insert clocks and appropriate timing for proper function of the physical and logical resources; a synthesis shell to generate any RTL necessary to allocate the transistor fabric and to impose any constraints of the customer requirement onto the RTL, a documentation shell to document the allocation of and the physical and logical resources of the slice to the customer requirement in order to develop the semiconductor product, a manufacturing test shell to test the physical and logical resources allocated to the customer requirement in order to develop the semiconductor product; (b) reading a customer requirement comprising the desired configuration for at least I/O and memory of the semiconductor product; (c) reading a package description of the printed circuit board upon which the semiconductor product will be mounted; (d) storing the description of the physical resources of the slice in a resource database; (e) allocating at least some of the transistor fabric to I/O and memory of the semiconductor product to satisfy the desired configuration; (f) allocating the transistor fabric to and generating the RTL for at least one trace array for state and debug signals from the physical and logical resources for logic analysis and trace storage; (g) generating any required RTL and/or synthesis scripts necessary for the allocated physical resources; (h) automatically documenting, implementing, and testing any of at least one internal register and/or memory not included in data flow from/to the I/O and memory of the semiconductor product; and (h) verfying that the allocated physical resources and the generated RTL and/or a synthesized netlist meet a plurality of standards set forth by the plurality of shells.
- 14. A suite of generation tools to generate a plurality of design views of a semiconductor chip, each of the generation tools comprising:
(a) a manager whose input comprises available physical and logical resources and a desired chip specification; (b) a resource allocation database interfacing with the manager to inventory what physical and logical resources have been used to create design views of the desired chip specification and what physical and logical resources remain available; (c) a resource selector to interact with the manager and resource allocation database to select available physical and logical resources to create the design views; and (d) a composer, interactive with the resource selector, which generates the design views.
- 15. The suite of generation tools as in claim 14, wherein the resource allocation database stores an incremental state of design views.
- 16. The suite of generation tools as in claim 14, wherein the resource selector considers any constraints within the desired chip specification.
- 17. The suite of generation tools of claim 14, wherein the available resources comprise a definition of a slice having at least a transistor fabric.
- 18. The suite of generation tools of claim 17, wherein the slice definition further comprises at least one hardmac.
- 19. The suite of generation tools of claim 18, wherein the hardmac is at least one I/O transceiver.
- 20. The suite of generation tools of claim 17, wherein the slice definition further comprises at least one IP core.
- 21. The suite of generation tools of claim 18, wherein the hardmac is at least one diffused memory.
- 22. The suite of generation tools of claim 18, wherein the hardmac is at least one phase locked loop for timing of the semiconductor chip.
- 23. The suite of generation tools of claim 17, further comprising a configurable I/O as a control interface.
- 24. The suite of generation tools of claim 17, further comprising a configurable I/O as an interface for configuration of blocks and the transistor fabric.
- 25. The suite of generation tools of claim 17, further comprising a configurable I/O as a test interface.
- 26. The suite of generation tools of claim 25, wherein the test interface is a JTAG test interface.
- 27. The suite of generation tools of claim 17, wherein the logical resources further comprising a plurality of shells to test and qualify the design views and generate a qualified netlist.
- 28. The suite of generation tools of claim 27, wherein the plurality of shells comprise an RTL shell, a static timing analysis shell, a verification shell, a manufacturing test shell, a floorplan shell, a documentation shell, and a synthesis shell, each of the plurality of shells to interact with the physical resources of the slice and the customer requirement to create the semiconductor chip.
- 29. The suite of generation tools as in claim 27, wherein the design views are in Verilog.
- 30. The suite of generation tools as in claim 27, wherein the design views are in VHDL.
- 31. The suite of generation tools of claim 17, wherein the suite comprises one or more of the following: a memory generator, an I/O generator, a clock generator, and a test generator.
- 32. The suite of generation tools of claim 31, further comprising a tool that automatically documents, implements, and tests at least one internal memory and/or register.
- 33. The suite of generation tools of claim 31, further comprising a tool to configure unused resources for at least one trace array where state and debug signals can be input for logic analysis and trace storage.
- 34. The suite of generation tools of claim 17, further comprising: a design integrator, a design database, and a design qualifier to interact with the manager of each tool and to verify and test the design views generated by each tool.
- 35. The suite of generation tools of claim 34, wherein design database holds a state of incremental design views generated by the suite of generation tools.
- 36. The suite of generation tools of claim 34, wherein the design database holds a state of the slice description, customer requirement, and any generated design views of the semiconductor chip.
- 37. A program embedded in a distributable medium capable of being read and executed by a computer, the program comprising:
(a) means to read a design specification for a semiconductor product; (b) means to read an application set comprising a slice description having a plurality of hardmacs, a transistor fabric, and a plurality of logic shells to enable the slice description to be incorporated into the design specification to produce the semiconductor product; (c) means to assign at least one of the plurality of hardmacs of the slice description to the design specification; (d) means to assign a portion of the transistor fabric of the slice description to the design specification; (e) means to track the at least one hardmac and the portion of the transistor fabric assigned to the design specification; and (f) means to create the RTL to enable the assigned hardmacs and the assigned transistor fabric to become functional within the design specification.
- 38. The program of claim 37, further comprising means to optimize the placement and timing of the assigned logic array within the slice description.
- 39. The program of claim 38, further comprising means to optimize placement and timing of assigned logic array for implementation of the semiconductor product onto a printed circuit board.
- 40. The program of claim 38, wherein the means to optimize, further comprises:
(a) means to interconnect power and signal planes; (b) means to compose and/or test memory arrays; (c) means to embed logic analysis and trace interconnection in the semiconductor product; (d) means to utilize spare resources on the chip; (e) means for I/O qualification, JTAG testing, boundary scan testing, and SSO analysis; (f) means for testable clock generation, control, and distribution; (g) means to interconnect any shared logic in a testable manner.
- 41. A hierarchy of logic for use in the design of an integrated circuit using a partially manufactured semiconductor slice having a plurality of physical and logical resources including a transistor fabric, the hierarchy comprising:
(a) a top module further comprising at least one phase lock loop, a test controller, and test logic; (b) a fixed module further comprising any third party cores and/or fixed physical and logical resources of the slice; (c) a user module comprising the physical and logical resources and requirements from a customer to be applied to the physical and logical resources of the slice; (d) a core module correctly and testably connecting the fixed module and the user module; and (e) a generated module converting a transistor fabric of the slice to the physical and logical requirements of the customer.
- 42. The hierarcy of logic of claim 41, wherein the top module further comprises at least one configurable I/O block.
- 43. The hierarchy of logic of claim 42, wherein the generated module further comprises logic to stub any physical resources on the semiconductor slice to be inactive, a clock factory to generate clock signals for the integrated circuit, and a controller array for testing the physical and logical resources.
- 44. A method to design a semiconductor product, comprising generating a qualified netlist from at least one input table listing a plurality of available physical resources, the available physical resources comprising at least a transistor fabric, the at least one input table further listing a plurality of desired requirements of the semiconductor product to be generated from the available physical resources.
- 45. The semiconductor product produced from the qualified netlist generated by the method of claim 44.
- 46. A method of fabricating a semiconductor product using the qualified netlist generated by the method of claim 44.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present application is related to the following United States patent applications, which are hereby incorporated by reference in their entireties: copending LSIL Docket No. 02-4439 entitled A Process for Delivering Slices, Shells, Design and Rapid Product; copending LSIL Docket No. 02-4441 entitled Flexible Instance Structure Including Embedded Gate Array and Composable Memories, filed Dec. 13, 2002; copending LSIL Docket No. 02-4688 entitled A Method for Managing and Directing the Efficient Composition of Storage Arrays from a Set of Fixed and Generated Storage Elements, filed Dec. 13, 2002; copending LSIL Docket No. 02-4739 entitled A Method for Managing, Directing and Verifying the Efficient Placement and Customization of Fixed Configurable Input/Output Buffer Structures; copending LSIL Docket No. 02-4755 entitled An Automated Method for Documenting, Implementing, and Testing ASIC Registers and Memory; copending LSIL Docket No. 02-4774 entitled RTL Generation Methodology.