WO2015062397A1 - 一种自动实现电子系统设计的数据描述方法 - Google Patents
一种自动实现电子系统设计的数据描述方法 Download PDFInfo
- Publication number
- WO2015062397A1 WO2015062397A1 PCT/CN2014/088247 CN2014088247W WO2015062397A1 WO 2015062397 A1 WO2015062397 A1 WO 2015062397A1 CN 2014088247 W CN2014088247 W CN 2014088247W WO 2015062397 A1 WO2015062397 A1 WO 2015062397A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- list
- parameter
- data
- module
- network
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Definitions
- the present invention generally relates to a method of describing data used by an Engineering Design Assistant (EDA) tool software of an electronic system, such as a method of describing data used by a printed circuit board EDA tool software, an integrated circuit EDA tool software, and the like.
- EDA Engineering Design Assistant
- the present invention relates to data description techniques for describing an electronic system with data and then automatically generating a circuit diagram, printed circuit board diagram, or integrated circuit layout of the electronic system from the EDA tool software based on the data.
- EDA tool software is widely used in the design of electronic systems.
- Print circuit design and integrated circuit design are a major area of use of EDA tool software.
- the design process includes circuit diagram design, simulation of system work processes, printed circuits or integrated circuits. Layout design, simulation of system work processes including layout effects, etc.
- the circuit diagram design and layout design process is highly efficient with the help of EDA tool software, but still requires more human resources and human resources.
- the (engineering) training requirements are also relatively high.
- the goal of the patented method of the present invention is to provide a simple data description method, so that the EDA tool software can automatically do more transactional work, further reducing the manpower in the electronic system design process. Resource consumption and training requirements for human resources.
- the data provided to the EDA tool software for automatic processing must be unique and complete.
- the uniqueness means that the EDA tool software does not perform the same operation based on different data or perform different operations based on the same data.
- Completeness means that the EDA tool software can complete all operational objectives based on data. Under the premise of ensuring uniqueness and completeness, it is the goal of the method of the present invention to reduce the amount of data as much as possible. Reducing the amount of data is to improve the efficiency of design and maintenance. Effective means.
- Design Data (0000): A collection of all data prepared by the designer for the EDA tool software
- Module Name (0201) The name of the circuit module (0200);
- Module symbol (0203) circuit diagram symbol of circuit module (0200);
- Module variable (0204) variable parameter of circuit module (0200);
- Module circuit (0205) circuit diagram of circuit module (0200);
- Unit Name (0301) An instantiated name of the unit module (0300);
- Unit Description (0302) The instantiated name and additional information of the circuit description (0202);
- Unit prefix (0304) the naming prefix of the circuit module (0200) or unit module (0300);
- Unit instantiation (0305) An instantiated name of a circuit module (0200) or a unit module (0300),
- Unit symbol (0306) circuit diagram symbol of circuit module (0200) or unit module (0300);
- Unit layout (0307) The layout of the circuit module (0200) or unit module (0300);
- Unit pin (0308) input/output pin of circuit module (0200) or unit module (0300);
- Primary classification (0401) The primary category of the circuit module (0200) or unit module (0300);
- Secondary classification (0402) secondary class of circuit module (0200) or unit module (0300);
- Three-level classification (0403) Three-level category of circuit module (0200) or unit module (0300);
- Short list a list of variables that are briefly described (0600);
- Simple variable (0603) a simple change (0600) variable change
- Design Rules A collection of technical data for printed circuit or integrated circuit processing techniques
- Rule Data (2003) The name of the design rule (2000) and its assignment;
- Module parameter (3000) a collection of custom parameters of the circuit module (0200);
- Parameter name (3002) the name of the design parameter (3000);
- Parameter data (3003): The name of the design parameter (3000) and its assignment;
- Parameter assignment (3004) assignment of the design parameter (3000);
- Parameter call (3006): The processing function of the design parameter (3000);
- Parameter list (4010): List of parameters for module instantiation (4000);
- Parameter setting (4011) Parameter name of the module instantiation (4000) and its assignment;
- Pin Setting (4021): The pin name of the module instantiation (4000) and the name of its connected network;
- Circuit instantiation (4100) Module instantiation (4000) in the module circuit (0205)
- Module Network (5000): Module Symbol (0203), Module Circuit (0205), Module Layout (0206)
- Network Name The name of the module network (5000);
- Network Type 5002: Type of Module Network (5000);
- Network symbol (5100) The module network (5000) is in the module symbol (0203)
- Symbol orientation (5101): The orientation of the network pin (5400) placed in the module symbol (0203);
- Symbol position (5102) The position of the network pin (5400) in the module symbol (0203);
- Symbol level (5103) The level state of the network pin (5400) placed in the module symbol (0203);
- Connection Name The name of the network connection (5200);
- Connection type (5220): Type of network connection (5200);
- Connection label (5230) the label of the network connection (5200);
- Network cabling (5300) The module network (5000) is in the module layout (0206)
- Wiring Name (5310): The name of the network cabling (5300);
- Type of wiring (5320): Type of network cabling (5300);
- Label font (5331) the font of the wiring label (5330);
- Label height (5332) the height of the wiring label (5330), which is a coordinate data (9080);
- Wiring width (5380) The width of the network cabling (5300), which is a coordinate data (9080);
- Network pin (5400) The module network (5000) is in the module layout (0206)
- Pin Name The name of the network pin (5400);
- Pin length (5420) the length of the network pin (5400), which is a coordinate data (9080);
- Pin Width (5430) The width of the network pin (5400), which is a coordinate data (9080);
- Perforation type (5520) type of network perforation (5500);
- Network connection (5200), network cabling (5300),
- Quantity parameter (9010) circuit instantiation (4100), layout instantiation (4200),
- Network connection (5200), network cabling (5300),
- Paging selection unit module (0300), network connection (5200)
- Layer Selection (9030): Layer selection for the module layout (0206);
- Alignment selection (9040): alignment of network pins (5400), network perforations (5500);
- Horizontal axis coordinate (9060): coordinate in the X direction, which is a coordinate data (9080);
- Vertical axis coordinate (9070): coordinate in the Y direction, which is a coordinate data (9080);
- Coordinate data (9080): coordinate data in module circuit (0204) or module layout (0206);
- Connection location Location in network connection (5200) or network cabling (5300);
- Parameter reference (9110): reference request and setting of parameter data (3003);
- Pin Reference (9130) Reference request and setting for network pin (5400);
- Perforation reference (9140) reference request and settings for network perforation (5500);
- Reference name (9150) The pin name of the unit reference (9120);
- Reference index (9190) rule reference (9100), parameter reference (9110), unit reference (9120),
- Reference object (9200) rule reference (9100), parameter reference (9110), unit reference (9120),
- Reference objects such as pin reference (9130), perforation reference (9140), etc.
- Reference result (9210) rule reference (9100), parameter reference (9110), unit reference (9120),
- FIG. 1 is a schematic diagram of design data (0000) implemented in accordance with a preferred embodiment of the present invention
- FIG. 2 is a schematic diagram of a design module (1000) implemented in accordance with a preferred embodiment of the present invention
- Figure 3 is a second schematic diagram of a design module (1000) implemented in accordance with a preferred embodiment of the present invention.
- Figure 4 is a third schematic diagram of a design module (1000) implemented in accordance with a preferred embodiment of the present invention.
- FIG. 5 is a schematic diagram showing a simplified description of a circuit module (0200) having the same circuit components and different component parameters in a simple description (0600) according to a preferred embodiment of the present invention
- Figure 6 is a schematic illustration of a design rule (2000) implemented in accordance with a preferred embodiment of the present invention.
- FIG. 7 is a schematic illustration of module parameters (3000) implemented in accordance with a preferred embodiment of the present invention.
- FIG. 8 is a schematic illustration of a module instantiation (4000) implemented in accordance with a preferred embodiment of the present invention.
- FIG. 9 is a second schematic diagram of module instantiation (4000) implemented in accordance with a preferred embodiment of the present invention.
- Figure 10 is a schematic illustration of circuit instantiation (4100) implemented in accordance with a preferred embodiment of the present invention.
- FIG 11 is a schematic illustration of a layout (4200) implemented in accordance with a preferred embodiment of the present invention.
- Figure 12 is a schematic illustration of a list of module networks (5000) implemented in accordance with a preferred embodiment of the present invention.
- Figure 13 is a schematic illustration of a list of network connections (5200) implemented in accordance with a preferred embodiment of the present invention.
- Figure 14 is a schematic illustration of a list of network cabling (5300) implemented in accordance with a preferred embodiment of the present invention.
- Figure 15 is a schematic illustration of a list of network pins (5400) implemented in accordance with a preferred embodiment of the present invention.
- 16 is a schematic diagram of a list of network puncturing (5500) implemented in accordance with a preferred embodiment of the present invention.
- Figure 17 is a schematic illustration of a list of connection locations (9090) implemented in accordance with a preferred embodiment of the present invention.
- Figure 18 is a schematic illustration of a wire label (5230) implemented in accordance with a preferred embodiment of the present invention.
- FIG. 19 is a schematic illustration of a wiring label (5330) implemented in accordance with a preferred embodiment of the present invention.
- FIG. 20 is a schematic illustration of a circuit pin (5240) implemented in accordance with a preferred embodiment of the present invention.
- Figure 21 is a schematic illustration of a dangling marker (5250) implemented in accordance with a preferred embodiment of the present invention.
- Figure 22 is a schematic illustration of coordinate data (9080) implemented in accordance with a preferred embodiment of the present invention.
- Figure 23 is a schematic illustration of a rule reference (9100) implemented in accordance with a preferred embodiment of the present invention.
- Figure 24 is a schematic illustration of a parameter reference (9110) implemented in accordance with a preferred embodiment of the present invention.
- Figure 25 is a schematic illustration of a unit reference (9120) implemented in accordance with a preferred embodiment of the present invention.
- Figure 26 is a schematic illustration of a pin reference (9130) implemented in accordance with a preferred embodiment of the present invention.
- FIG. 27 is a schematic illustration of a perforation reference (9140) implemented in accordance with a preferred embodiment of the present invention.
- the invention mainly relates to a data description method, which enables an engineer to input the module symbol of the circuit module (0200) automatically by the tool software by inputting as little information as possible with little knowledge of the tool software (0100). (0203), module circuit (0205), module layout (0206), and setup module variables (0204).
- the design data (0000) is a set of data prepared for the tool software (0001) according to the method of the present invention
- FIG. 1 is a schematic diagram of the design data, which is composed of five classified data, which are a design module (1000) and a design rule (2000). ), module parameters (3000), module instantiation (4000), module network (5000) list, etc.
- the bus parameters (9000), quantity parameters (9010), page selection (9020), and layer selection that occur multiple times are not used first. (9030), alignment selection (9040), direction selection (9050), horizontal axis coordinate (9060), vertical axis coordinate (9070), coordinate data (9080), connection position (9090), etc., will be described later. Description.
- a design module is a collection of naming and categorical data that describes all of the circuit modules designed by the designer.
- the general software refers to the circuit module as Cell, and uses the Library and one or more levels of Category grouping.
- the method of the present invention continues this method, but limits the grouping level of information to at most 4 levels, and calls the Cell as a circuit module.
- the library (0400) is called the Library, which is called the multi-level Category by the first-class classification (0401), the second-level classification (0402), and the third-level classification (0403). In the same library, the naming of circuit modules needs to be unique.
- the data of the design module includes the module name (0201), the component library (0400), and the primary classification (0401) and the secondary classification (0402) of the component.
- the three-level classification (0403), the design module data is generally determined by the designer, the number of circuit modules, component libraries, primary classification, secondary classification, and tertiary classification are not limited.
- Circuit modules can exist in a library or a primary or secondary or tertiary classification.
- the design rule is a collection of technical data of a printed circuit or integrated circuit processing technology, including information such as process physical parameters, design rules of the layout, such as electrical parameters, mechanical parameters, minimum and maximum line widths, minimum spacing, and the like. Data is often divided into groups, and design rule data is generally provided by Foundry.
- FIG. 6 is a schematic diagram of a design rule, which is classified by a rule classification (2001), a rule name by a rule name (2002), and a rule name and data by a rule data (2003).
- Module parameters are collections of custom parameters of circuit modules. They are used when automatically generating module symbols, module circuits, module layouts, and setting module variables. Good custom parameters are beneficial to design data to be more concise and readable. Module parameters are generally defined by the designer and the number is not limited.
- FIG. 7 is a schematic diagram of module parameters, which is classified by parameter classification (3001), called by parameter name (3002), and named by parameter data (3003).
- each parameter data has three basic contents: parameter assignment (3004), parameter convention (3005), and parameter call (3006).
- Parameter assignment is the content that must be set.
- the type of parameter data such as string variable (string), integer variable (int), floating point variable (float), length variable (length), boolean variable (boolean), etc.
- the length variable is used in the layout design and needs to be multiplied by a proportional coefficient (hereinafter referred to as the length coefficient) in data processing.
- the length coefficient can be set to 1.0e6, the channel length of a MOS transistor. When it is 100.0n, the value of its length variable is a floating point number of 0.1.
- the setting of the parameter call can be a system function, or it can be a software-defined inclusion parameter.
- the convention function of information such as number classification and parameter name can also be a callable function defined by the designer.
- Parameter conventions and parameter calls can have no data set.
- the parameter data may also include the contents of the rule reference (9100) and the parameter reference (9110), but the parameter reference cannot directly or indirectly self-reference, the specific reference of the rule reference and the parameter reference, Please refer to the relevant section in the “Data Reference Notes” in the subsequent sections of this manual.
- circuit module has a module variable (0204)
- a module variable group is defined in the module parameter
- the parameter data of the group is a module variable
- the tool software automatically sets the module variable of the circuit module.
- Module instantiation is the collection of data for placing unit modules (0300) in the module circuit and module layout.
- FIG. 8 and FIG. 9 are schematic diagrams of module instantiation, with the component library (0400) as a first-level group, the unit module (0300) as a second-level group, and the third-level grouping as a unit name (0301) or a unit description (0302).
- the leading unit is instantiated (0305), and its contents include unit class (0303), unit prefix (0304), circuit instantiation (4100), layout instantiation (4200), and the like.
- the instantiation of the unit modules is determined by the designer and the number is not limited.
- Figure 10 is a schematic diagram of circuit instantiation (4100), related settings including parameter list (4010), parameter setting (4011), pin list (4020), pin setting (4021), page selection (9020), direction selection (9030), horizontal axis coordinates (9060), vertical axis coordinates (9070), and the like.
- Figure 11 is a schematic diagram of the layout (4200), the related settings include parameter list (4010), parameter setting (4011), pin list (4020), pin setting (4021), direction selection (9030), horizontal axis Coordinates (9060), vertical axis coordinates (9070), etc.
- the horizontal axis coordinate and the vertical axis coordinate are the coordinates of the reference point instantiated by the unit.
- the module network is the network type (5002), bus parameter (9000), network symbol (5100), network connection (5200) of an electrical network in module symbol (0203), module circuit (0205), module layout (0206), A collection of data such as network cabling (5300), network pin (5400), network puncturing (5500), and FIG. 12 is a schematic diagram of a module network list.
- the module network list is determined by the designer, and the number of module networks is not limited.
- the network type is the type of module network, and has input, output, bidirectional, network, substrate, N-well, P-well, etc., where input, output, bidirectional, etc. indicate
- the module network has pins in the circuit symbol, and the network indicates that the module network is the signal network inside the circuit module, there is no external Connections, substrates, N-wells, P-wells, etc. indicate that the module network is only wired in the circuit diagram, there is no wiring in the layout, but layer flags may need to be placed.
- Network names and network types may be used in operations such as network symbols, network connections, network cabling, network pins, network puncturing, and the like.
- bus parameter is set, it means that the module network is a bus network.
- FIG. 12 Also shown in Figure 12 is a schematic diagram of a network symbol (5100) that gives the settings for automatically generating the network pins in the circuit symbols.
- the network symbol has three basic parameters, one of which is the symbol orientation (5101), indicating the orientation of the network pin in the circuit symbol, with four choices of up, down, left, and right; the second is the symbol position (5102), Indicates the positional coordinates of the network pin in the circuit symbol; the third is the symbol level (5103) indicating whether it is an active low signal or a negative polarity signal to determine whether it is to be on the network pin in the circuit symbol. Add a small circle.
- 13 is a schematic diagram of a list of network connections (5200), including bus parameters (9000), quantity parameters (9010), page selection (9020), connection location (9090) list, connection type (5220), connection Label (5230), circuit pin (5240), dangling mark (5250), etc.
- connection type has two options, single line and bus, to automatically connect with different widths and colors.
- Figure 18 is a schematic diagram of the connection label (5230), if it is set to indicate that the connection requires the label of the network name (5001).
- FIG. 14 is a schematic diagram of a list of network wiring (5300), including bus parameters (9000), quantity parameters (9010), layer selection (9030), connection position (9090) list, wiring type (5320), wiring label ( 5330), wiring width (5340), etc.
- the wiring type has two options: rectangle and trace. Rectangular wiring requires a pair of diagonal positions to be set as the wiring locations.
- the wiring layout needs to set the wiring width. It also needs to reflect the line shape selection in the wiring type data.
- the length of the connection position list is greater than or equal to 2.
- 19 is a schematic diagram of a wiring label (5330). If a label indicating that the wiring needs to be added with a network name (5001) is set, the label font (5331) needs to be set, and the label height (5332) is a coordinate data (9080). .
- Figure 15 is a schematic diagram of a list of network pins (5400), including bus parameters (9000), quantity parameters (9010), layer selection (9030), alignment selection (9040), direction selection (9050), horizontal axis coordinates (9060), vertical axis coordinates (9070), pin length (5420), pin width (5430), etc.
- the horizontal and vertical axis coordinates are the coordinates of the network pin reference point.
- the network pin shape convention is rectangular, pin length and pin width, which are rectangular length and width.
- 16 is a schematic diagram of a list of network puncturing (5500), including bus parameters (9000), quantity parameters (9010), alignment selection (9040), direction selection (9050), horizontal axis coordinates (9060), vertical axis coordinates. (9070), perforation type (5520), etc.
- the horizontal axis coordinates and the vertical axis coordinates are the coordinates of the reference point of the network perforation.
- the contents of the perforation type selection list are generally provided by the manufacturer.
- the present invention provides a simple description method that allows multiple circuit modules to share a set of descriptions.
- CMOS inverter is composed of a P-type and an N-type MOS transistor, and the channel number and the width of the MOS transistor are variously changed.
- FIG. 5 is provided by the present invention. A simplified description of the CMOS inverter description.
- CMOS inverter belongs to the library baseCell, its primary classification is CMOS, the secondary classification is driver, the third classification is inv, under baseCell/CMOS/driver/inv, Figure 5 shows the implementation using the present invention.
- a schematic diagram of a preferred example of a CMOS inverter is briefly described.
- the simple list (0620) gives a list of simple variables (0603) and the naming prefix of the circuit module.
- the naming prefix is inv.
- finger and width which are all PMOS and NMOS transistors.
- Variable parameters there are two changes in finger, named M1 and M2, respectively.
- W0 and W1 There are also two changes in width, named W0 and W1, and automatically generate four simple descriptions (0600), which are:
- Width ("W0" "W1" "W2" "W3" "W4")
- nfetW (120.0n 170.0n)
- fetF is a list of int variables, pfetW and nfetW are both length variable lists, assuming they belong to the parameter classification (3001) VAR.
- Width VAR/pfetW/Cell/width
- Width VAR/nfetW/Cell/width
- Cell/finger and Cell/width respectively indicate the sequence numbers of the finger and width obtained from the simple description (Cell), and the values of the list module parameters such as fetF, pfetW, and nfetW are obtained according to the serial numbers, respectively, when the unit modules such as PMOS and NMOS transistors are instantiated.
- the assignment method is determined by the tool software.
- the method of obtaining the parameters please refer to the subsequent description of the parameter reference.
- the CMOS transistor of the CMOS inverter invM1W0 has a finger and a width of 1 and 240.0n, respectively, and an NMOS tube with a finger and a width of 1 and 120.0n, respectively.
- the CMOS transistor of the CMOS inverter invM1W1 has a finger and a width of 1 and 340.0n, respectively, and an NMOS tube with a finger and a width of 1 and 170.0n, respectively.
- the CMOS inverter of the CMOS inverter invM2W0 has a finger and width of 2 and 240.0n, respectively, and the CMOS tube has a finger and width of 2 and 120.0n, respectively.
- the CMOS transistor of the CMOS inverter invM2W1 has a finger and a width of 2 and 340.0n, respectively, and an NMOS tube with a finger and a width of 2 and 170.0n, respectively.
- the data references include a rule reference (9100), a parameter reference (9110), a unit reference (9120), a pin reference (9130), a punctured reference (9140), and the like.
- the reference orientation (9160) is the orientation setting of the unit reference, pin reference, and perforation reference.
- the target to be referenced is a rectangle, with upper (rectangular upper boundary), lower (rectangular lower boundary), left (rectangular left boundary), Right (rectangular right boundary), X (square horizontal direction midpoint), Y (rectangular vertical direction midpoint), etc., X, left and right indicate the horizontal axis coordinate data, Y, upper and lower indicate the reference vertical Axis coordinate data.
- Reference sorting is the processing choice for the collective reference result of the unit module, network pin, and network perforation of the same name, and there are options such as no setting, minimum value, maximum value, and reference index.
- the cell references do not reference orientation and reference ordering, so you need to select horizontal axis coordinate data or vertical axis coordinate data from the results of the cell reference.
- the data reference needs to set the reference ratio (9080).
- the reference index (9090) needs to be set.
- FIG. 23 is a schematic diagram of a rule reference, and the content of the rule reference includes a reference object (9200), a reference ratio, a reference index, and the like.
- the contents of the reference object include rule classification (2001) and rule name (2002).
- 24 is a schematic diagram of a parameter reference, and the contents of the parameter reference include a parameter classification (3001), a parameter name (2002), a reference object (9200), a reference ratio, a reference index, and the like.
- the contents of the reference object include parameter classification (3001) and parameter name (3002).
- module parameters there can be rule reference items and parameter reference items, but they cannot be directly or indirectly self-referenced.
- 25 is a schematic diagram of a unit reference, which includes bus parameters (9000), layer selection (9030), reference object (9200), reference name (9150), reference orientation, reference sorting, reference ratio, reference index, and the like. .
- the contents of the reference object include a component library (0400), a unit name (0301), a unit instantiation (0305), a unit prefix (0304), and the like.
- the reference name (9150) is one of the contents of the pin list in circuit instantiation or layout.
- the contents of the reference object include the network name (5001), the pin name (5410), and the like.
- 27 is a schematic diagram of a punctured reference including bus parameters (9000), layer selection (9030), reference object (9200), reference orientation, reference ordering, reference ratio, reference index, and the like.
- the contents of the reference object include the network name (5001), the name of the punch (5510), and the like.
- the content of the above data reference satisfies the requirements of sufficiency and uniqueness, so that the tool software can correctly perform data reference.
- the reference ratio is in the form of a string containing a list of floating-point separators or floating-point numbers of a prefix string separated by a separator (for example, a slash), for reference.
- the value of the index differs, and the value of the reference ratio or the value of the list element cannot be an integer string.
- the reference ratio can map non-list data to list data, or assign each element in the list data to a different reference ratio value.
- the prefix string determines the weight field of the reference ratio map or the weight field of the data transformation. See the relevant sections in the subsequent multiple data list descriptions.
- the reference index is a parameter that needs to be set when the data is referenced, and is a string containing an integer or a list of integers of the heavy domain separator. If the reference result (9210) is not a list, the index is referenced. Settings are meaningless. Suppose the length of the reference result is L. The index value of the first element in the list is one of 0 or 1. It is determined by the tool software. If the value of the reference index or the value of the reference index list element is I, then there must be 0 ⁇ I ⁇ L or 1 ⁇ I ⁇ (L-1) to ensure that the reference index does not exceed the range. Since the referenced element can be repeatedly referenced, the length of the reference index list can exceed the length of the reference result list, so the reference output (9220) list length can exceed the length of the reference result list.
- the bus parameters can be used to generate the relevant bus list (9001):
- Negative integer K The bus list is ⁇ abs(K)-1:0>;
- A. ⁇ 0:N-1> represents a list of integers of ⁇ 01...(N-2)(N-1)>, and the list length is N;
- ⁇ N-1:0> represents an integer list of ⁇ (N-1)(N-2)...10>, and the list length is N.
- the bus parameters are parameters having multiple meanings, which are respectively described below.
- the bus parameters are set to indicate that one unit module needs to be placed for each subline of the bus.
- the bus parameters are set to indicate that a network connection needs to be placed for each sub-line of the bus.
- the bus parameters are set to indicate that one network cabling needs to be placed for each subline of the bus.
- the bus parameters are set to indicate that a network pin needs to be placed for each subline of the bus.
- the bus parameters are set to indicate that a network puncturing needs to be placed for each subline of the bus.
- the bus parameters are set to indicate that the unit modules are distributed on each sub-line of the bus.
- the bus parameters are set to indicate that the network pins are distributed on each sub-line of the bus.
- the bus parameters are set to indicate that network puncturing is distributed on each sub-line of the bus.
- the unit module When instantiating a unit module, the unit module often has an integer parameter. If the name of the parameter is M and the value is N, it means that the unit module needs to be repeatedly placed in the module layout and the pin connections are identical. In the method of the present invention, the value N is assigned to the quantity parameter of the unit module. In the case of unit references, pin references, and perforation references, a quantity parameter greater than 1 indicates that the unit module, network pins, network perforation distributions correspond to repetitively placed unit modules.
- the page size of the circuit diagram can be set to A0, A1, A2, A3, A4, A5 and other sizes that can be output by the plotter. Almost all circuit diagrams can be completely drawn on one page, but for use and archiving. Convenient, the size of A5 is too small, A0, A1, A2, A3, etc. can not be output with common printers, A4 is the best choice for the size of the circuit diagram page, so the method of the invention does not support the non-paged circuit diagram, all module circuits are Pagination is used, so circuit instantiation and network connection need to set paging selection. There is no paging selection for connection label, circuit pin, dangling mark, etc. The paging selection is the same as the paging selection of the corresponding network connection. The paging selection is the circuit diagram paging. The name is determined by the tool software.
- the network wiring and network pins need to set the layer where the wiring or pins are located.
- the unit reference, pin reference, and puncturing reference also need to set the referenced layer.
- the layer selection data is provided by the processing manufacturer.
- the method of the present invention is In the design rule, a rule classification layer is added. Each layer selection is a rule data in the Layer, and the layer selection is unified under the framework of the design rule.
- the alignment selection is the orientation selection of the coordinate settings, with middle, upper, lower, left, right, left. /Down, Left/Up, Right/Down, Right/Upper, etc., respectively indicate that the coordinates are set to the midpoint, the upper midpoint, the lower midpoint, the left midpoint, the right midpoint, the lower left corner, the upper left corner, and the right Lower corner, upper right corner, etc.
- the axis is rotated by a 90-degree angle after the reference image is flipped, and rotated by a 90-degree angle after the Y-axis is referenced.
- connection location list is a list of coordinate points of the network connection or network cabling
- FIG. 17 is a schematic diagram of the connection location list.
- the list length needs to be greater than or equal to 2, and there is no maximum number of restrictions.
- Each connection position is composed of a horizontal axis coordinate (9060) and a vertical axis coordinate (9070), and the horizontal axis coordinate and the vertical axis coordinate are coordinate data.
- the coordinate data is the horizontal axis coordinate or vertical axis coordinate of the unit module, network pin, network perforation, wiring label, wiring label, circuit pin, dangling mark, etc. placed in the module circuit or module layout
- FIG. 22 is coordinate data. Schematic, through the rule reference, parameter reference, unit reference, pin reference, perforation reference, etc., obtain the original data list and sum the elements and output.
- the bus parameters are set, assuming that the length of the bus list is B, then it is necessary to instantiate B unit modules, the name of each unit module is determined by the unit instantiation and the corresponding element value in the bus list, such as Over:
- the instantiation name of the third unit module may be nfet_db2 or nfet_db_2, etc., hereinafter referred to as the module named as the bus module (9230).
- B below represents the length of the bus list, and B is 1 if the bus parameters are not set.
- Bus parameters are not set: nfet_db.1, nfet_db.2, nfet_db.3, etc.;
- the bus parameters are set: nfet_db2.1, nfet_db2.2, nfet_db2.3, and so on.
- T represents the length of the bus list for a pin. If the bus parameters are not set, T is 1.
- One pin in the module circuit is equivalent to T pins, and one pin in the module layout is T pins.
- circuit modules have pins with the same name.
- P uses P to represent the number of pins of the same name of the circuit module.
- page selection and direction selection are a list of length B.
- the direction selection is a (B, M) double list.
- the direction selection and alignment selection is a (B, M, T, B) quadruple column table.
- the result of a rule reference and a parameter reference is a scalar or list.
- the direct setting method is to define a delimiter for each weight field of the multiple list, set the list with a string containing the delimiter, and determine which heavy domain list the substring of the string belongs to according to the delimiter, thereby generating the required list.
- the following uses a setting of direction selection as an example to illustrate a preferred implementation.
- a complete direction selection set string :
- the simplest setting is that there is no separator for any variables, such as R0, which means that the direction selection setting does not change when the quadruple field variable changes.
- the above method of directly setting the direction selection can be applied to the settings of page selection, layer selection, alignment selection, reference ratio, reference index, etc., and will not be described again.
- mapping assignment and four arithmetic operations
- R and D When R and D perform four operations, R is mapped to a change in a heavy domain variable of D.
- the heavy domain selection is represented by a mapping prefix separated by a separator (for example, a slash).
- the mapping prefix is respectively It is B, M, T, and P. The following are four cases in which D and R are added.
- the above method of single mapping can be applied to the settings of paging selection, layer selection, alignment selection, direction selection, reference ratio, reference index, etc., and will not be described again.
- multiple lists need to be rearranged, and there are two forms of rearrangement, one form is data swapping between two heavy domains, and the other form is that data of two heavy domains is merged to Its In one of the heavy domains, the list length of the merged heavy domain becomes 1, and the multiple list conversion method of the present invention is exemplified below.
- the above method of multiple list transformation can be applied to settings of page selection, layer selection, alignment selection, direction selection, reference ratio, reference index, etc. Similar to single mapping, adding a separator before setting data (for example: The slash) can be separated by a separate prefix, and will not be described again.
- the automatic connection and/or routing of the module circuits can be automatically implemented by the tool software, further reducing the workload of the electronic system design. .
- one direction selection (9050), one horizontal axis coordinate (9060), and one vertical axis coordinate (9070) constitute a variation layout (8003), and one or more variation layouts ( 8003) attributed to one or more variant names (8002);
- one or more variant names (8002) are appended for each cabling name (5310);
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了的一种自动实现电子系统设计的数据描述方法,这个数据描述方法具有唯一性和完备性,也具有简捷性,基于本发明方法实现的描述数据,可以实现一种具有如下特点的工具软件:自动的生成电路模块的符号、电路、版图以及设置其可变参数;尽可能少的键盘和鼠标等输入操作的工作量;尽可能少的EDA工具软件的使用经验要求;尽可能少的设计结果的修改和维护工作量;尽可能少的改变加工工艺的移植工作量;尽可能少的改变代加工厂家的移植工作量;尤其适用于全定制集成电路的设计。
Description
本发明一般涉及电子系统的工程设计辅助(Engineer Design Assistant,EDA)工具软件所使用数据的描述方法,诸如印刷电路板EDA工具软件、集成电路EDA工具软件等所使用数据的描述方法。具体地说,本发明涉及用数据描述一个电子系统,然后基于该数据由EDA工具软件自动生成电子系统的电路图、印刷电路板图或集成电路版图等的数据描述技术。
1946年2月,第一台电子数字计算机ENIAC在美国诞生,在其后的30多年里,计算机系统产品的硬件和软件都是由一家公司独自完成,即该公司既生产计算机系统的硬件也生产计算机系统的软件,第三方软件公司只能承接计算机系统公司外包的软件开发业务开发计算机软件,这种情况一直持续到1981年。在1981年,美国的IBM公司将其个人计算机(Personal Computer,PC)产品推向了市场并将该产品的软件、硬件资料公开,这一举措催生了独立的第三方计算机软件公司,这些公司可以自行开发计算机软件并直接在市场销售,计算机应用软件的种类和数量有了一个持续的高速增长,使对计算机系统的需求也有了一个持续的高速增长,促使集成电路的设计和加工技术、计算机的硬件和软件技术等有了一个超过30年的高速发展时期,高性能计算机的使用普及到小型企业和家庭,计算机和工程设计辅助(EDA)工具软件已经成为工程师的必备工具。
在电子系统的设计过程中,EDA工具软件被广泛使用,印刷电路设计和集成电路设计是使用EDA工具软件的一个主要领域,设计过程包括电路图设计、系统工作过程的仿真、印刷电路或集成电路的版图设计、包含版图影响的系统工作过程的仿真等,其中的电路图设计和版图设计过程在EDA工具软件的帮助下已经有很高的效率,但仍然需要耗费较多的人力资源,且对人力资源(工程师)的训练要求也比较高,本发明专利方法的目标是提供一种简捷的数据描述方法,使EDA工具软件可以自动的做更多的事务性工作,进一步降低电子系统设计过程中对人力资源的耗费及对人力资源的训练要求。
提供给EDA工具软件进行自动处理的数据,必须具有唯一性和完备性,这里的唯一性是指EDA工具软件不会基于不同的数据进行同样的操作或基于同样的数据进行不同的操作,这里的完备性是指EDA工具软件可以基于数据完成全部操作目标,在保证唯一性和完备性的前提下,尽可能的减少数据量是本发明方法的目标,减少数据量是提高设计和维护工作效率的有效手段。
名词解释
在本专利方法的描述中,以黑体隶书或文字加括弧及数字出现的下列名词均具有下列解释的含义。
设计数据(0000): 设计者为EDA工具软件准备的全部数据的集合;
工具软件(0100): EDA工具软件;
电路模块(0200): 当前设计的印刷电路或集成电路的模块;
模块名称(0201): 电路模块(0200)的名称;
模块描述(0202): 电路模块(0200)的自动生成的名称及附加信息;
模块符号(0203): 电路模块(0200)的电路图符号;
模块变量(0204): 电路模块(0200)的可变参数;
模块电路(0205): 电路模块(0200)的电路图;
模块版图(0206): 电路模块(0200)的印刷电路或集成电路版图;
单元模块(0300): 电路模块(0200)中使用的元器件;
单元名称(0301): 单元模块(0300)的例化名称;
单元描述(0302): 电路描述(0202)的例化名称及附加信息;
单元类别(0303): 电路模块(0200)或单元模块(0300)的分类信息,
包括一级分类(0401)、二级分类(0402)、三级分类(0403)等;
单元前缀(0304): 电路模块(0200)或单元模块(0300)的命名前缀;
单元例化(0305): 电路模块(0200)或单元模块(0300)的例化名称,
即单元名称(0301)或单元描述(0302);
单元符号(0306): 电路模块(0200)或单元模块(0300)的电路图符号;
单元版图(0307): 电路模块(0200)或单元模块(0300)的版图;
单元引脚(0308): 电路模块(0200)或单元模块(0300)的输入输出引脚;
元器件库(0400): 电路模块(0200)或单元模块(0300)的数据库;
一级分类(0401): 电路模块(0200)或单元模块(0300)的一级类别;
二级分类(0402): 电路模块(0200)或单元模块(0300)的二级类别;
三级分类(0403): 电路模块(0200)或单元模块(0300)的三级类别;
简捷描述(0600): 电路结构相同元器件参数不同的
电路模块(0200)的简捷描述方法;
简捷名称(0601): 简捷描述(0600)的自动生成的模块名称;
简捷列表(0602): 简捷描述(0600)的变量列表;
简捷变量(0603): 简捷描述(0600)的变量变化;
设计模块(1000): 全部电路模块(0200)的
建立请求及其命名和分类数据的集合;
设计规则(2000): 印刷电路或集成电路加工工艺的技术数据的集合;
规则分类(2001): 设计规则(2000)的分类;
规则名称(2002): 设计规则(2000)的名称;
规则数据(2003): 设计规则(2000)的名称及其赋值;
模块参数(3000): 电路模块(0200)的自定义参数的集合;
参数分类(3001): 设计参数(3000)的分类;
参数名称(3002): 设计参数(3000)的名称;
参数数据(3003): 设计参数(3000)的名称及其赋值;
参数赋值(3004): 设计参数(3000)的赋值;
参数约定(3005): 设计参数(3000)的约定值;
参数调用(3006): 设计参数(3000)的处理函数;
模块例化(4000): 电路模块(0200)中
放置单元模块(0300)的请求及数据的集合;
参数列表(4010): 模块例化(4000)的参数列表;
参数设置(4011): 模块例化(4000)的参数名称及其赋值;
引脚列表(4020): 模块例化(4000)的引脚列表;
引脚设置(4021): 模块例化(4000)的引脚名称及其连接网络的名称;
电路例化(4100): 模块例化(4000)里在模块电路(0205)中
放置一个或一组单元符号(0306)的请求及数据的集合;
版图例化(4200): 模块例化(4000)里在模块版图(0206)中
放置一个或一组单元版图(0307)的请求及数据的集合;
模块网络(5000): 模块符号(0203)、模块电路(0205)、模块版图(0206)
建立一个电气网络的请求及放置连线、布线、引脚、
标签、悬空标记等的请求及数据的集合的列表;
网络名称(5001): 模块网络(5000)的名称;
网络类型(5002): 模块网络(5000)的类型;
网络符号(5100): 模块网络(5000)里在模块符号(0203)中
网络类型及放置输入输出引脚的请求及数据的集合;
符号方位(5101): 模块符号(0203)中放置网络引脚(5400)的方位;
符号位置(5102): 模块符号(0203)中放置网络引脚(5400)的位置;
符号电平(5103): 模块符号(0203)中放置网络引脚(5400)的电平状态;
网络连线(5200): 模块网络(5000)里在模块电路(0205)中
连线的请求及数据的集合;
连线名称(5210): 网络连线(5200)的名称;
连线种类(5220): 网络连线(5200)的种类;
连线标签(5230): 网络连线(5200)的标签;
电路引脚(5240): 网络连线(5200)的输入输出引脚;
悬空标记(5250): 网络连线(5200)的无连接标记;
网络布线(5300): 模块网络(5000)里在模块版图(0206)中
布线的请求及数据的集合;
布线名称(5310): 网络布线(5300)的名称;
布线种类(5320): 网络布线(5300)的种类;
布线标签(5330): 网络布线(5300)的标签;
标签字体(5331): 布线标签(5330)的字体;
标签高度(5332): 布线标签(5330)的高度,它是一个坐标数据(9080);
布线宽度(5380): 网络布线(5300)的宽度,它是一个坐标数据(9080);
网络引脚(5400): 模块网络(5000)里在模块版图(0206)中
放置网络引脚(5400)的请求及数据的集合;
引脚名称(5410): 网络引脚(5400)的名称;
引脚长度(5420): 网络引脚(5400)的长度,它是一个坐标数据(9080);
引脚宽度(5430): 网络引脚(5400)的宽度,它是一个坐标数据(9080);
网络穿孔(5500): 模块网络(5000)里在模块版图(0206)中
放置穿孔的请求及数据的集合。
穿孔名称(5510): 网络穿孔(5500)的名称;
穿孔类型(5520): 网络穿孔(5500)的类型;
总线参数(9000): 电路例化(4100)、版图例化(4200)、模块网络(5001)、
网络连线(5200)、网络布线(5300)、
网络引脚(5400)、网络穿孔(5500)的总线参数;
总线列表(9001): 总线参数(9000)生成的列表参数;
数量参数(9010): 电路例化(4100)、版图例化(4200)、
网络连线(5200)、网络布线(5300)、
网络引脚(5400)、网络穿孔(5500)的数量参数;
分页选择(9020): 单元模块(0300)、网络连线(5200)
在模块电路(0205)中的分页设置;
图层选择(9030): 模块版图(0206)的图层选择;
对齐选择(9040): 网络引脚(5400)、网络穿孔(5500)的对齐选择;
方向选择(9050): 单元模块(0120)、网络引脚(5400)、网络穿孔(5500)、
连线标签(5230)、布线标签(5330)、
电路引脚(5240)、悬空标记(5250)等的放置方向,
可能的赋值为R0、R90、R180、R270、MX、MY、MXR90、MYR90等;
横轴坐标(9060): X方向的坐标,它是一个坐标数据(9080);
纵轴坐标(9070): Y方向的坐标,它是一个坐标数据(9080);
坐标数据(9080): 模块电路(0204)或模块版图(0206)中的坐标数据;
连接位置(9090): 网络连线(5200)或网络布线(5300)中的位置;
规则引用(9100): 规则数据(2003)的引用请求及设置;
参数引用(9110): 参数数据(3003)的引用请求及设置;
单元引用(9120): 单元引脚(0308)的引用请求及设置;
引脚引用(9130): 网络引脚(5400)的引用请求及设置;
穿孔引用(9140): 网络穿孔(5500)的引用请求及设置;
引用名称(9150): 单元引用(9120)的引脚名称;
引用方位(9160): 单元引用(9120)、
引脚引用(9130)、穿孔引用(9140)的方位;
引用排序(9170): 单元引用(9120)、
引脚引用(9130)、穿孔引用(9140)的排序;
引用比率(9180): 规则引用(9100)、参数引用(9110)、单元引用(9120)、
引脚引用(9130)、穿孔引用(9140)的比率;
引用索引(9190): 规则引用(9100)、参数引用(9110)、单元引用(9120)、
引脚引用(9130)、穿孔引用(9140)的列表索引;
引用对象(9200): 规则引用(9100)、参数引用(9110)、单元引用(9120)、
引脚引用(9130)、穿孔引用(9140)等的引用对象。
引用结果(9210): 规则引用(9100)、参数引用(9110)、单元引用(9120)、
引脚引用(9130)、穿孔引用(9140)等索引前的结果数据。
引用输出(9220): 规则引用(9100)、参数引用(9110)、单元引用(9120)、
引脚引用(9130)、穿孔引用(9140)等索引后的结果数据。
以下首先对本发明说明书的附图进行简单的介绍,然后再结合这些附图对本发明的各个实施范例进行介绍,说明本发明的原理和特征。
在以下的附图中:
图1为按照本发明的一个优选实例实现的设计数据(0000)的示意图;
图2为按照本发明的一个优选实例实现的设计模块(1000)的示意图之一;
图3为按照本发明的一个优选实例实现的设计模块(1000)的示意图之二;
图4为按照本发明的一个优选实例实现的设计模块(1000)的示意图之三;
图5为按照本发明的一个优选实例实现的简捷描述(0600)里对电路结构相同元器件参数不同的电路模块(0200)的简捷描述方法示意图;
图6为按照本发明的一个优选实例实现的设计规则(2000)的示意图;
图7为按照本发明的一个优选实例实现的模块参数(3000)的示意图;
图8为按照本发明的一个优选实例实现的模块例化(4000)的示意图之一;
图9为按照本发明的一个优选实例实现的模块例化(4000)的示意图之二;
图10为按照本发明的一个优选实例实现的电路例化(4100)的示意图;
图11为按照本发明的一个优选实例实现的版图例化(4200)的示意图;
图12为按照本发明的一个优选实例实现的模块网络(5000)列表的示意图;
图13为按照本发明的一个优选实例实现的网络连线(5200)列表的示意图;
图14为按照本发明的一个优选实例实现的网络布线(5300)列表的示意图;
图15为按照本发明的一个优选实例实现的网络引脚(5400)列表的示意图;
图16为按照本发明的一个优选实例实现的网络穿孔(5500)列表的示意图;
图17为按照本发明的一个优选实例实现的连接位置(9090)列表的示意图;
图18为按照本发明的一个优选实例实现的连线标签(5230)的示意图;
图19为按照本发明的一个优选实例实现的布线标签(5330)的示意图;
图20为按照本发明的一个优选实例实现的电路引脚(5240)的示意图;
图21为按照本发明的一个优选实例实现的悬空标记(5250)的示意图;
图22为按照本发明的一个优选实例实现的坐标数据(9080)的示意图;
图23为按照本发明的一个优选实例实现的规则引用(9100)的示意图;
图24为按照本发明的一个优选实例实现的参数引用(9110)的示意图。
图25为按照本发明的一个优选实例实现的单元引用(9120)的示意图。
图26为按照本发明的一个优选实例实现的引脚引用(9130)的示意图。
图27为按照本发明的一个优选实例实现的穿孔引用(9140)的示意图。
本发明主要涉及的是一种数据描述方法,使工程师在对工具软件(0100)了解甚少的情况下输入尽可能少的信息,就可以由工具软件自动的实现电路模块(0200)的模块符号(0203)、模块电路(0205)、模块版图(0206)和设置模块变量(0204)。
以下首先说明本发明的数据描述方法的框架(一至五),然后再说明本发明方法的特征(六至十)。
设计数据(0000)是按照本发明的方法为工具软件(0001)准备的数据的集合,图1是设计数据的示意图,由五个分类数据构成,分别是设计模块(1000)、设计规则(2000)、模块参数(3000)、模块例化(4000)、模块网络(5000)列表等。
在对设计模块、设计规则、模块参数、模块例化、模块网络列表等进行说明时,先不对多次出现的总线参数(9000)、数量参数(9010)、分页选择(9020)、图层选择(9030)、对齐选择(9040)、方向选择(9050)、横轴坐标(9060)、纵轴坐标(9070)、坐标数据(9080)、连接位置(9090)等进行说明,将在其后进行说明。
一、设计模块(1000)说明
设计模块是描述设计者设计的全部电路模块的命名和分类数据的集合。
一般的软件将电路模块称为Cell,用Library及一级或多级的Category分组,本发明的方法延续这一方法,但将信息的分组级别限制为至多4级,以电路模块称呼Cell,以元器件库(0400)称呼Library,分别以一级分类(0401)、二级分类(0402)、三级分类(0403)等称呼多级Category。在同一个元器件库里,电路模块的命名需要唯一。
图2、图3、图4是设计模块的示意图,设计模块的数据包括的模块名称(0201)、元器件库(0400)及其隶属的一级分类(0401)、二级分类(0402)、三级分类(0403),设计模块数据一般由设计者确定,电路模块、元器件库、一级分类、二级分类、三级分类的数量均没有限制。
电路模块可以存在于元器件库或一级分类或二级分类或三级分类之下。
二、设计规则(2000)说明
设计规则是印刷电路或集成电路加工工艺技术数据的集合,包括工艺物理参数、版图的设计规则(Design Rule)等信息,如电气参数、机械参数、最小和最大线宽、最小间距、等等,数据往往被分成若干个组,设计规则数据一般由代加工产家(Foundry)提供。
本发明的方法采用分组的方法进行描述,图6是设计规则的示意图,以规则分类(2001)称呼分类,以规则名称(2002)称呼规则,以规则数据(2003)称呼规则名称及数据。
三、模块参数(3000)说明
模块参数是电路模块的自定义参数的集合,在自动生成模块符号、模块电路、模块版图和设置模块变量等时使用,良好的自定义参数,有利于设计数据更简洁且可读性更好,模块参数一般由设计者定义,其数量没有限制。
本发明的方法也采用分组的方法进行描述,图7是模块参数的示意图,以参数分类(3001)称呼分类,以参数名称(3002)称呼参数,以参数数据(3003)称呼参数名称及数据。
每个参数数据除参数名称外,还有3个基本内容:参数赋值(3004)、参数约定(3005)、参数调用(3006)。
参数赋值是必须设置的内容,参数数据的类型如字符串变量(string)、整数变量(int)、浮点变量(float)、长度变量(length)、布尔变量(boolean)等由参数赋值的设置决定,其中长度变量用于版图设计中,在数据处理时需要乘以一个比例系数(以下简称长度系数),例如集成电路的设计中,长度系数可以设置为1.0e6,一个MOS晶体管的沟道长度是100.0n时,其长度变量的值为浮点数0.1。
如果设计数据中引用参数数据时给出的信息错误或欠明确,则参数约定的设置值被采用。参数调用的设置可以是系统函数,也可以是软件约定的包含参
数分类和参数名称等信息的约定函数,也可以是设计者定义的可调用函数。
参数约定和参数调用可以没有设置数据。
除参数赋值、参数约定、参数调用外,参数数据还可以包括规则引用(9100)和参数引用(9110)的内容,但参数引用不能直接或间接的自我引用,规则引用和参数引用的具体说明,请参见本说明书的后续内容中“数据引用说明”中的相关部分。
如果电路模块有模块变量(0204),在模块参数中定义一个模块变量分组,该分组的参数数据都是模块变量,工具软件自动设置电路模块的模块变量。
四、模块例化(4000)说明
模块例化是在模块电路和模块版图中放置单元模块(0300)的数据的集合。
图8、图9是模块例化的示意图,以元器件库(0400)为一级分组,以单元模块(0300)为二级分组,三级分组是以单元名称(0301)或单元描述(0302)领衔的单元例化(0305),其内容包括单元类别(0303)、单元前缀(0304)、电路例化(4100)、版图例化(4200)等。单元模块的例化由设计者确定,其数量没有限制。
图10是电路例化(4100)的示意图,相关的设置包括参数列表(4010)、参数设置(4011)、引脚列表(4020)、引脚设置(4021)、分页选择(9020)、方向选择(9030)、横轴坐标(9060)、纵轴坐标(9070)等。
图11是版图例化(4200)的示意图,相关的设置包括参数列表(4010)、参数设置(4011)、引脚列表(4020)、引脚设置(4021)、方向选择(9030)、横轴坐标(9060)、纵轴坐标(9070)等。
参数设置是需要改变的单元例化的可变参数的名称及其赋值,赋值可以直接设置,也可以是一个规则引用或参数引用,每个单元例化可以没有参数设置或有多个参数设置,参数设置的数量不能超过单元模块的可变参数数量,参数列表是参数设置的列表。
引脚设置是模块电路或模块版图中需要连接的单元引脚(0308)的名称及其连接的模块网络(5000)的名称,引脚列表是被例化的单元模块的全部单元引脚及其总线参数(9000)的列表。
横轴坐标和纵轴坐标是单元例化的参考点的坐标。
五、模块网络(5000)列表说明
模块网络是模块符号(0203)、模块电路(0205)、模块版图(0206)中一个电气网络的网络类型(5002)、总线参数(9000)、网络符号(5100)、网络连线(5200)、网络布线(5300)、网络引脚(5400)、网络穿孔(5500)等数据的集合,图12是模块网络列表的示意图,模块网络列表由设计者确定,模块网络的数量没有限制。
网络类型是模块网络的类型,有输入、输出、双向、网络、衬底(substrate)、N阱(N-well)、P阱(P-well)等选择,其中输入、输出、双向等表示该模块网络在电路符号中有引脚,网络表示该模块网络是电路模块内部的信号网络,没有外
部连接,衬底、N阱、P阱等表示该模块网络只在电路图中有连线,在版图中无布线但可能需要放置图层标志。
网络名称和网络类型在网络符号、网络连线、网络布线、网络引脚、网络穿孔等的操作中均有可能用到。
总线参数如果被设置,表示该模块网络是一个总线网络。
图12中也包含网络符号(5100)的示意图,网络符号给出电路符号中自动生成该网络引脚的设置。网络符号有三个基本的参数,其一是符号方位(5101),表示该网络引脚在电路符号中的方位,有上、下、左、右四个选择;其二是符号位置(5102),表示该网络引脚在电路符号中的位置坐标;其三是符号电平(5103),表示是否是一个低电平有效信号或负极性信号,以确定是否要在电路符号中该网络引脚上加一个小圆圈。
图13是网络连线(5200)列表的示意图,其内容包括总线参数(9000)、数量参数(9010)、分页选择(9020)、连接位置(9090)列表、连线类型(5220)、连线标签(5230)、电路引脚(5240)、悬空标记(5250)等。
连线类型有单线和总线两个选择,以便自动的用不同的宽度和颜色连线。
图18是连线标签(5230)示意图,如果被设置表示该连线需要加上网络名称(5001)的标签(Label)。
图20是电路引脚(5240)示意图,如果被设置表示该连线需要加上网络名称(5001)的引脚,引脚类型包括输入、输出、双向、分页间连接等选择。
图21是悬空标记(5230)示意图,如果被设置表示该连线是一个无连接网络,需要加上无连接标记。
图14是网络布线(5300)列表的示意图,其内容包括总线参数(9000)、数量参数(9010)、图层选择(9030)、连接位置(9090)列表、布线类型(5320)、布线标签(5330)、布线宽度(5340)等。
布线类型有矩形和走线两个选择。矩形布线需要设置一对对角的位置作为布线位置。走线布线需要设置布线宽度,还需要在布线类型数据中体现线端形状选择,连接位置列表的长度要大于或等于2。
图19是布线标签(5330)示意图,如果被设置表示该布线需要加上网络名称(5001)的标签(Label),标签字体(5331)需要设置,标签高度(5332)是一个坐标数据(9080)。
图15是网络引脚(5400)列表的示意图,其内容包括总线参数(9000)、数量参数(9010)、图层选择(9030)、对齐选择(9040)、方向选择(9050)、横轴坐标(9060)、纵轴坐标(9070)、引脚长度(5420)、引脚宽度(5430)等。
横轴坐标和纵轴坐标是网络引脚参考点的坐标。
网络引脚形状约定为矩形,引脚长度和引脚宽度,是矩形长度和宽度。
图16是网络穿孔(5500)列表的示意图,其内容包括总线参数(9000)、数量参数(9010)、对齐选择(9040)、方向选择(9050)、横轴坐标(9060)、纵轴坐标
(9070)、穿孔类型(5520)等。
横轴坐标和纵轴坐标是网络穿孔的参考点的坐标。
穿孔类型选择列表的内容一般由代加工厂家提供。
六、简捷描述(0600)说明
在设计电路模块时,会遇到需要设计多个同样电路结构但电路中元器件具有不同的参数的电路模块,本发明提供了一种简捷的描述方法,使多个电路模块共享一组描述。
例如:CMOS反相器由一只P型和一只N型MOS晶体管构成,MOS晶体管的沟道数目(finger)和沟道宽度(width)都会有多种变化,图5是本发明的提供的简捷描述对CMOS反相器描述的示意图。
假设CMOS反相器属于元器件库baseCell,其一级分类是CMOS、二级分类是driver、三级分类是inv,在baseCell/CMOS/driver/inv下,图5给出了采用本发明的实现简捷描述CMOS反相器的一个优选实例示意图。
在图5中,简捷列表(0620)给出了简捷变量(0603)的列表及电路模块的命名前缀,命名前缀是inv,有finger和width两个简捷变量,它们均为PMOS和NMOS晶体管的可变参数,finger的变化有2个,分别命名为M1和M2,width的变化也有2个,分别命名为W0和W1,自动生成4个简捷描述(0600),分别是:
invM1W0/finger=0/width=0
invM1W1/finger=0/width=1
invM2W0/finger=1/width=0
invM2W1/finger=1/width=1
上述简捷描述中,invM1W0、invM1W1、invM2W0、invM2W1分别是电路模块的命名,finger=0和finger=1等表示finger变化的序号,width=0和width=1表示width变化的序号。
Width=(“W0” “W1” “W2” “W3” “W4”)
为了设置PMOS和NMOS晶体管的finger和width参数,还需要在模块参数(3000)和模块例化(4000)中采取相应的举措,一种优化的方法如下:
在模块参数中定义:
fetF=(1 2)
pfetW=(240.0n 340.0n)
nfetW=(120.0n 170.0n)
fetF是一个int变量列表,pfetW和nfetW都是length变量列表,假设它们均属于参数分类(3001)VAR。
在PMOS管的模块例化的参数列表中添加参数设置:
finger=VAR/fetF/Cell/finger
width=VAR/pfetW/Cell/width
在PMOS管的模块例化的参数列表中添加参数设置:
finger=VAR/fetF/Cell/finger
width=VAR/nfetW/Cell/width
Cell/finger和Cell/width分别表示从简捷描述(Cell)中获得finger和width的序号,按照序号分别获得fetF、pfetW、nfetW等列表模块参数的值,在例化PMOS和NMOS晶体管等单元模块时对参数finger和width赋值,赋值方法由工具软件决定,获取参数的方法请参见后续的有关参数引用的说明。
CMOS反相器invM1W0的PMOS管的finger和width分别为1和240.0n、NMOS管的finger和width分别为1和120.0n。
CMOS反相器invM1W1的PMOS管的finger和width分别为1和340.0n、NMOS管的finger和width分别为1和170.0n。
CMOS反相器invM2W0的PMOS管finger和width分别为2和240.0n、NMOS管的finger和width分别为2和120.0n。
CMOS反相器invM2W1的PMOS管的finger和width分别为2和340.0n、NMOS管的finger和width分别为2和170.0n。
简捷描述也可以用其它类似的方法实现,但不管用什么方法实现,均需要满足下列要求:
1、保证唯一性的参数名称列表;
2、保证唯一性的与参数名称列表每个元素对应的参数变化的名称列表;
3、保证唯一性的与参数名称列表每个元素对应的参数的数据引用列表;
4、保证唯一性的与数据引用列表对应的参数数据列表;
5、可操作的按照数据引用列表内容获取参数数据的方法;
6、可操作的将参数数据的值赋给被例化的元器件的方法。
七、数据引用说明
在本发明的方法中,数据引用包括规则引用(9100)、参数引用(9110)、单元引用(9120)、引脚引用(9130)、穿孔引用(9140)等。
引用方位(9160)是单元引用、引脚引用、穿孔引用的方位设置,约定被引用的目标均为矩形,有上(矩形上边界)、下(矩形下边界)、左(矩形左边界)、右(矩形右边界)、X(矩形水平方向中点)、Y(矩形垂直方向中点)等选择,X、左、右表示引用的是横轴坐标数据,Y、上、下表示引用的纵轴坐标数据。
引用排序(9170)是对同名的单元模块、网络引脚、网络穿孔的集体引用结果的处理选择,有不设置、最小值、最大值、引用索引等选择。
在模块电路中,没有引脚引用和穿孔引用,单元引用没有引用方位和引用排序,因此需要从单元引用的结果中选择横轴坐标数据或纵轴坐标数据。
数据引用需要设置引用比率(9080),对列表数据引用还需要设置引用索引(9090),具体说明请参见引用比率和引用索引说明。
1、规则引用(9100)说明
图23是规则引用的示意图,规则引用的内容包括引用对象(9200)、引用比率、引用索引等。
引用对象的内容包括规则分类(2001)、规则名称(2002)。
2、参数引用(9110)说明
图24是参数引用的示意图,参数引用的内容包括参数分类(3001)、参数名称(2002)、引用对象(9200)、引用比率、引用索引等。
引用对象的内容包括参数分类(3001)、参数名称(3002)。
在模块参数的定义中,可以有规则引用项和参数引用项,但不能直接或间接的自我引用。
3、单元引用(9120)说明
图25是单元引用的示意图,单元引用的内容包括总线参数(9000)、图层选择(9030)、引用对象(9200)、引用名称(9150)、引用方位、引用排序、引用比率、引用索引等。
引用对象的内容包括元器件库(0400)、单元名称(0301)、单元例化(0305)、单元前缀(0304)等。
引用名称(9150)是电路例化或版图例化里引脚列表的内容之一。
4、引脚引用(9130)说明
图26是引脚引用的示意图,引脚引用的内容包括总线参数(9000)、图层选择(9030)、引用对象(9200)、引用方位、引用排序、引用比率、引用索引等。
引用对象的内容包括网络名称(5001)、引脚名称(5410)等。
5、穿孔引用(9140)说明
图27是穿孔引用的示意图,规则引用的内容包括总线参数(9000)、图层选择(9030)、引用对象(9200)、引用方位、引用排序、引用比率、引用索引等。
引用对象的内容包括网络名称(5001)、穿孔名称(5510)等。
上述数据引用的内容满足充分性和唯一性的要求,使工具软件可以正确的进行数据引用。
6、引用比率(9180)说明
在本发明的方法中,引用比率的形式是可以带一个用分隔符(例如:斜杠)隔开的前缀字符串的包含重域分隔符的浮点数或浮点数列表的字符串,为了和引用索引的值相区别,引用比率的值或列表元素的值不能是整数字符串。引用比率可以将非列表数据映射为列表数据,也可以将列表数据中的每个元素赋予不同的引用比率值。前缀字符串确定引用比率映射的重域或数据变换的重域,
请参见后续的多处数据列表说明中的相关部分。
7、引用索引(9190)说明
在本发明的方法中,引用索引是在数据引用时需要设置的一个参数,它是包含重域分隔符的整数或整数列表的字符串,如果引用结果(9210)不是一个列表,则引用索引的设置无意义。假设引用结果的长度是L,列表中第一个元素的索引值是0或1之一,由工具软件决定,引用索引的值或引用索引列表元素的值是I,则必须有0≤I≤L或1≤I≤(L-1)以保证引用索引不超出范围。由于可以对引用结果的元素重复引用,引用索引列表长度可以超过引用结果列表长度,因此引用输出(9220)列表长度可以超过引用结果列表长度。
九、数据设置说明
以下是对在多处被使用的数据进行设置的说明。
1、总线参数(9000)说明
总线参数有多种设置方法,由总线参数可以生成相关的总线列表(9001):
A.正整数K: 总线列表是<0:abs(K)-1>;
B.负整数K: 总线列表是<abs(K)-1:0>;
C.整数列表(K…E)和abs(K)<abs(E): 总线列表是<0:abs(K)-1>;
D.整数列表(K…E)和abs(K)>abs(E): 总线列表是<abs(K)-1:0>。
假设N是一个正整数,那么:
A.<0:N-1>表示<01…(N-2)(N-1)>的整数列表,列表长度是N;
B.<N-1:0>表示<(N-1)(N-2)…10>的整数列表,列表长度是N。
在本发明的方法中,总线参数是具有多重含义的参数,下面分别说明。
A.电路例化和版图例化
总线参数被设置表示需要为总线的每个子线放置一个单元模块。
B.网络连线
总线参数被设置表示需要为总线的每个子线放置一个网络连线。
C.网络布线
总线参数被设置表示需要为总线的每个子线放置一个网络布线。
D.网络引脚
总线参数被设置表示需要为总线的每个子线放置一个网络引脚。
E.网络穿孔
总线参数被设置表示需要为总线的每个子线放置一个网络穿孔。
F.单元引用
总线参数被设置表示单元模块分布在总线的每个子线上。
G.引脚引用
总线参数被设置表示网络引脚分布在总线的每个子线上。
H.穿孔引用
总线参数被设置表示网络穿孔分布在总线的每个子线上。
2、数量参数(9010)说明
在例化一个单元模块时,单元模块往往有一个整数参数,假设这个参数的名称是M、数值是N,那么表示这个单元模块在模块版图中需要重复放置N个且引脚连接完全相同,在本发明的方法中,将数值N赋予该单元模块的数量参数。在单元引用、引脚引用、穿孔引用时,数量参数大于1表示单元模块、网络引脚、网络穿孔的分布与重复放置的单元模块对应。
3、分页选择(9020)说明
一般情况下,电路图的页面大小可以设置成A0、A1、A2、A3、A4、A5等可以用绘图机输出的尺寸,几乎所有的电路图都可以在一页内完全画出,但为了使用和存档方便,A5的尺寸太小,A0、A1、A2、A3等往往不能用常见的打印机输出,A4是电路图页面尺寸的最佳选择,因此本发明的方法不支持无分页的电路图,全部模块电路均采用分页,因此电路例化和网络连线需要设置分页选择,连线标签、电路引脚、悬空标记等没有分页选择,其分页选择与对应的网络连线的分页选择相同,分页选择就是电路图分页的名称,由工具软件决定。
4、图层选择(9030)说明
网络布线和网络引脚需要设置布线或引脚所处的图层,单元引用、引脚引用、穿孔引用也需要设置引用的图层,图层选择数据由代加工厂家提供,本发明的方法在设计规则中,添加一个规则分类Layer,每个图层选择是Layer里的一个规则数据,将图层选择统一在设计规则的框架之下。
5、对齐选择(9040)说明
在模块版图中放置网络引脚、网络穿孔时,往往不能简捷的设置网络引脚或网络穿孔的参考点坐标,对齐选择是坐标设置的方位选择,有中、上、下、左、右、左/下、左/上、右/下、右/上等选择,分别表示坐标设置的方位是中点、上边中点、下边中点、左边中点、右边中点、左下角、左上角、右下角、右上角等。
6、方向选择(9050)说明
在模块电路或模块版图中放置单元模块、网络引脚、网络穿孔、连线标签、布线标签、电路引脚、悬空标记等,需要设置方向选择,有R0、R90、R180、R270、MX、MY、MXR90、MYR90等选择,分别表示放置模块时没有旋转或翻转、旋转90度角、旋转180度角、旋转270度角、以X轴为参考镜像翻转、以Y轴为参考镜像翻转、以X轴为参考镜像翻转后再旋转90度角、以Y轴为参考镜像翻转后再旋转90度角等。
7、连接位置(9090)列表说明
连接位置列表是网络连线或网络布线的坐标点列表,图17是连接位置列表的示意图,列表长度需要大于或等于2,没有最大数量的限制。
每个连接位置由横轴坐标(9060)和纵轴坐标(9070)构成,横轴坐标和纵轴坐标均为坐标数据。
8、坐标数据(9080)说明
坐标数据是在模块电路或模块版图中放置单元模块、网络引脚、网络穿孔、连线标签、布线标签、电路引脚、悬空标记等的横轴坐标或纵轴坐标,图22是坐标数据的示意图,通过规则引用、参数引用、单元引用、引脚引用、穿孔引用等,获得原始数据列表并将其元素求和后输出。
坐标数据中的引用项的数量没有限制,如果坐标数据的引用项中只有规则引用和参数引用,则需要将坐标数据与模块电路或模块版图的参考坐标的值相加后输出。
十、多重列表数据说明
以下对本发明的方法中使用的多重列表数据进行说明。
在模块例化时,如果总线参数被设置,假设总线列表的长度是B,那么需要例化B个单元模块,每个单元模块的名称由单元例化和总线列表中对应的元素值决定,如过:
A.单元前缀:nfet
B.单元名称:db
C.总线列表:[0:7]
那么第3个单元模块的例化名称可以是nfet_db2或nfet_db_2等,以下简称这样命名的模块为总线模块(9230)。
以下用B代表总线列表的长度,如果总线参数没有被设置则B为1。
在版图例化时,如果数量参数值为M=3大于1,则需要重复例化M个单元模块,例化名称也需要有区别以便识别,由工具软件决定,以下是常见的名称:
A.总线参数无设置:nfet_db.1、nfet_db.2、nfet_db.3等;
B.总线参数被设置:nfet_db2.1、nfet_db2.2、nfet_db2.3等。
以下用M代表数量参数。
有些电路模块具有总线引脚,以下用T代表某个引脚的总线列表的长度,如果总线参数没有被设置,则T为1。在模块电路中一个引脚相当于T个引脚,在模块版图中一个引脚就是T个引脚。
有些电路模块具有同名引脚,以下用P代表电路模块某个同名引脚的数量。
在电路例化中,分页选择和方向选择都是一个长度为B的列表,在版图例化中,方向选择是一个(B,M)二重列表。
在网络引脚和网络穿孔中,方向选择和对齐选择是一个(B,M,T,B)四重列
表。
在模块电路中的单元引用的结果是一个(B,P)二重列表,进行数据处理时还需要考虑其总线参数的设置。模块版图中的单元引用的结果是一个(B,M,T,P)四重列表。引脚引用和穿孔引用的结果都是一个(B,M,T,P)四重列表。B表示分布在总线模块上的同名引脚,T表示单元模块上的总线引脚。
规则引用和参数引用的结果是一个标量或列表。
引用比率可以是一个列表或二重列表或三重列表或四重列表。
因此在本发明的方法中,需要产生多种不同的列表数据,也需要对数据进行转换以便相互匹配,下面具体说明。
1、直接设置
直接设置的方法就是为多重列表的每一重域定义一个分隔符,用包含分隔符的字符串设置列表,根据分隔符决定字符串的子字符串归属于哪一重域列表,从而产生需要的列表。下面用方向选择的设置为例说明一个优选的实现方法。
方向选择有R0、R90、R180、R270、MX、MY、MXR90、MYR90等8个选择。定义四个分隔符(#,=,*,+)分别对应(B,M,T,P)四重列表的四个重域。
一个完整的方向选择设置字符串:
R0+R90*R180+R270=MX+MY*MXR90+MYR90#MYR90+MXR90*MY+MX=R270+R180*R90+R0
首先用“B”对应的分隔符“#”将字符串分成子字符串:
(R0+R90*R180+R270=MX+MY*MXR90+MYR90
MYR90+MXR90*MY+MX=R270+R180*R90+R0)
然后用“M”对应的分隔符“=”继续将字符串分开:
((R0+R90*R180+R270 MX+MY*MXR90+MYR90)
(MYR90+MXR90*MY+MX R270+R180*R90+R0))
再用“T”对应的分隔符“*”进一步将字符串分开:
(((R0+R90 R180+R270)
(MX+MY MXR90+MYR90))
((MYR90+MXR90 MY+MX)
(R270+R180 R90+R0)))
最后用“P”对应的分隔符“+”将字符串分成在字符串:
((((R0 R90)(R180 R270))
((MX MY)(MXR90 MYR90)))
(((MYR90 MXR90)(MY MX))
((R270 R180)(R90 R0))))
这样就得到了一个(B,M,T,P)四重列表的方向选择设置,如果多重列表的数据类型不是字符串类型,则需要将多重列表的每个元素转换成对应的数据类
型。
一般情况下,不需要上述的完整设置,可以使用简化的设置,没有设置重域的变化视为当该重域的变量变化时,设置没有变化。
最简单的设置是没有任何变量的分隔符出现,例如R0,表示四重重域变量变化时,方向选择设置都没有变化。
次简单的设置是只有一重重域变量的分隔符出现,例如R0#R90、R180=R270、MX*MY、MXR90+MYR90等,表示有一重重域变量变化时,方向选择有变化。
还可以只有二重或三重重域变量的分隔符出现,表示有二重或三重重域变量变化时,方向选择有变化。
对没有设置的重域则需要设置该重域的列表长度。
上述直接设置方向选择的方法,可以应用到分页选择、图层选择、对齐选择、引用比率、引用索引等的设置,不再赘述。
2、映射赋值及四则运算
在处理多重列表的的赋值或单值、列表、多重列表之间的四则运算时,本发明采取的方法如下:
A、单值数据和列表或多重列表进行四则运算时,单值数据和列表或多重列表的每个元素进行四则;
B、列表和列表进行四则运算时,两个列表的长度需要相等、每个元素分别进行四则运算;
C、多重列表和多重列表进行四则运算时,两个多重列表的多重长度需要相等、每个元素分别进行四则运算时;
D、列表和多重列表进行四则运算时,列表被映射到多重列表的一重变量的变化上进行四则运算,下面举例说明。
假设一个列表R和一个(B,M,T,P)多重列表D分别是:
R=(R0 R1)
D=((((0.0 0.5)(1.0 1.5))
((2.0 2.5)(3.0 3.5)))
(((4.0 4.5)(5.0 5.5))
((6.0 6.5)(7.0 7.5))))
当R和D进行四则运算时,R被映射到D的一个重域变量的变化上,重域选择用一个用分隔符(例如:斜杠)分开的映射前缀表示,在这个例子中映射前缀分别是B、M、T、P,下面是D和R相加四种情况。
D+B/R=((((0.0+R0 0.5+R0)
(1.0+R0 1.5+R0))
((2.0+R0 2.5+R0)
(3.0+R0 3.5+R0)))
(((4.0+R1 4.5+R1)
(5.0+R1 5.5+R1))
((6.0+R1 6.5+R1)
(7.0+R1 7.5+R1))))
D+M/R=((((0.0+R0 0.5+R0)
(1.0+R0 1.5+R0))
((2.0+R1 2.5+R1)
(3.0+R1 3.5+R1)))
(((4.0+R0 4.5+R0)
(5.0+R0 5.5+R0))
((6.0+R1 6.5+R1)
(7.0+R1 7.5+R1))))
D+T/R=((((0.0+R0 0.5+R0)
(1.0+R1 1.5+R1))
((2.0+R0 2.5+R0)
(3.0+R1 3.5+R1)))
(((4.0+R0 4.5+R0)
(5.0+R1 5.5+R1))
((6.0+R0 6.5+R0)
(7.0+R1 7.5+R1))))
D+P/R=((((0.0+R0 0.5+R1)
(1.0+R0 1.5+R1))
((2.0+R0 2.5+R1)
(3.0+R0 3.5+R1)))
(((4.0+R0 4.5+R1)
(5.0+R0 5.5+R1))
((6.0+R0 6.5+R1)
(7.0+R0 7.5+R1))))
D和R相乘的情况一样,将上面等式里的+换成*即可,D和R相减则将减数取负后相加、D和R相除则将除数取倒数后相乘即可,将R的值赋予D等效于R与元素均为0的D相加或R与元素均为1的D相乘。
上述单重映射的方法,可以应用到分页选择、图层选择、对齐选择、方向选择、引用比率、引用索引等的设置,不再赘述。
3、多重列表变换
在本发明的方法中,需要对多重列表重新排列,重新排列的形式有两种,一种形式是二个重域之间的数据对换,另一种形式是二个重域的数据合并至其
中的一个重域,被合并的重域的列表长度变为1,下面举例说明本发明的多重列表变换方法。
假设有(B,M,T,P)多重列表D如下:
D=((((0.0 0.5)(1.0 1.5))
((2.0 2.5)(3.0 3.5)))
(((4.0 4.5)(5.0 5.5))
((6.0 6.5)(7.0 7.5))))
将D的B重域数据和T重域数据进行对换的结果E如下:
E=((((0.0 0.5)(4.0 4.5))
((2.0 2.5)(6.0 6.5)))
(((1.0 1.5)(5.0 5.5))
((3.0 3.5)(7.0 7.5))))
将D的B重域的数据和P重域的数据合并至P重域的结果K如下:
K=((((0.0 0.54.0 4.5)
(1.0 1.55.0 5.5))
((2.0 2.56.0 6.5)
(3.0 3.57.0 7.5))))
上述多重列表变换的方法,可以应用到分页选择、图层选择、对齐选择、方向选择、引用比率、引用索引等的设置,与单重映射类似,在设置数据之前增加一个用分隔符(例如:斜杠)分开的变换前缀即可,不再赘述。
使用上述的直接设置、单重映射、多重列表变换等方法,满足了自动实现电路模块的模块电路和模块版图时对数据列表间相互匹配的要求。
本发明的自动实现电子系统设计的数据描述方法,唯一性和完备性已经经过验证,也具有简捷性,基于本发明方法实现的描述数据,可以实现一种具有如下特点的工具软件:
●自动的生成电路模块的符号、电路、版图以及设置其可变参数;
●尽可能少的键盘和鼠标等输入操作的工作量;
●尽可能少的EDA工具软件的使用经验要求;
●尽可能少的设计结果的修改和维护工作量;
●尽可能少的改变加工工艺的移植工作量;
●尽可能少的改变代加工厂家的移植工作量;
●尤其适用于全定制集成电路的设计。
使用本发明的数据描述方法,再加上适当的连线和(或)布线策略,就可以由工具软件自动实现模块电路的自动连线和(或)布线,进一步的减少电子系统设计的工作量。
对于电路结构相同、元器件参数相同的模块,如果版图的布局、布线、引脚、穿孔有变异的版图变异(8000),可以采用如下两种方法处理:
1、视同电路结构相同、元器件参数相同的模块一样处理,即在简捷描述(0600)中定义一个变异列表(8001)变量,变异列表的每个元素是一个变异名称(8002),即可实现版图变异(8000)。
2、以变异名称(8002)命名以区分版图变异(8000)
a)在版图例化(4000)中,一个方向选择(9050)、一个横轴坐标(9060)、一个纵轴坐标(9070)等构成一个变异布局(8003),将一个或多个变异布局(8003)归属于一个或多个变异名称(8002);
b)在网络布线(5300)中,为每个布线名称(5310)附加一个或多个变异名称(8002);
c)在网络引脚(5400)中,为每个引脚名称(5410)附加一个或多个变异名称(8002);
d)在网络穿孔(5500)中,为每个穿孔名称(5510)附加一个或多个变异名称(8002)。
这样就可以由工具软件(0100)自动生成与变异名称(8002)的数量对应的一个或多个模块版图(0206)。
Claims (20)
- 一种简捷描述多个电路结构相同但参数变化的电路模块的方法,包括:a)设置一个参数名称列表;b)设置一个或多个与参数名称列表每个元素对应的参数的变化名称列表;c)设置一个或多个与参数名称列表每个元素对应的参数的数据引用列表;d)设置一个或多个与数据引用列表对应的参数数据列表;e)可操作的按照数据引用列表内容获取参数数据的方法;f)可操作的将参数数据的值赋给被例化元器件的方法。
- 一种用字符串给多重列表直接赋值的方法,包括:a)为多重列表的每一重定义一个分隔符;b)设置一个赋值字符串;c)可操作的分步将分隔符隔开的多个数据赋值给列表的方法;d)可操作的将多重列表字符串转换成多重列表数据类型的方法。
- 一种单值、列表、多重列表等之间的赋值及四则运算的方法,包括:a)单值与单值、列表与列表、多重列表与多重列表等赋值及四则运算,直接或对应元素进行赋值及四则运算;b)单值与列表、单值与多重列表等赋值及四则运算,单值与每个元素进行赋值及四则运算;c)列表与多重列表的赋值及四则运算,列表与选定的多重列表的一个重域进行赋值及四则运算。
- 一种多重列表数据的变换方法,包括:a)可操作的多重列表的任意二个重域的数据进行交换的方法;b)可操作的将多重列表的任意二个重域的数据合并至二个重域之中的一个重域同时将另一个重域的列表长度变为1的方法。
- 一种引用技术参数或自定义参数请求的设置方法,包括:a)设置一个分组名称;b)设置一个规则或参数名称;c)可选择的设置一个映射前缀;d)可操作的如权利要求2的方法设置的引用比率;e)可操作的如权利要求2的方法设置的引用索引。
- 一种引用电路图或版图中的元器件引脚位置请求的设置方法,包括:a)设置一个元器件的例化名称;b)设置一个总线参数;c)设置一个数量参数;d)设置一个引脚名称;e)可选择的设置一个变换前缀;f)可操作的如权利要求2的方法设置的引用方位;g)可操作的如权利要求2的方法设置的引用比率;h)可操作的如权利要求2的方法设置的图层选择。i)设置一个引用排序;j)可操作的如权利要求2的方法设置的引用索引。
- 一种引用版图中的引脚位置请求的设置方法,包括:a)设置一个网络名称;b)设置一个引脚名称;c)设置一个总线参数;d)设置一个数量参数;e)可选择的设置一个变换前缀;f)可操作的如权利要求2的方法设置的引用方位;g)可操作的如权利要求2的方法设置的引用比率;h)可操作的如权利要求2的方法设置的图层选择;i)设置一个引用排序;j)可操作的如权利要求2的方法设置的引用索引。
- 一种引用版图中的穿孔位置请求的设置方法,包括:a)设置一个网络名称;b)设置一个穿孔名称;c)设置一个总线参数;d)设置一个数量参数;e)可选择的设置一个变换前缀;f)可操作的如权利要求2的方法设置的引用方位;g)可操作的如权利要求2的方法设置的引用比率;h)可操作的如权利要求2的方法设置的图层选择;i)设置一个引用排序;j)可操作的如权利要求2的方法设置的引用索引。
- 一种坐标数据的设置方法,包括:a)可选择的如权利要求5的方法设置的规则引用请求;b)可选择的如权利要求5的方法设置的参数引用请求;c)可选择的如权利要求6的方法设置的单元引用请求;d)可选择的如权利要求7的方法设置的引脚引用请求;e)可选择的如权利要求8的方法设置的穿孔引用请求;f)可操作的如权利要求3的方法将引用结果以及参考坐标值(如有必要)一起求和的方法;g)可操作的如权利要求4的方法将引用结果变换的方法。
- 一种在模块电路或模块版图中元器件的例化请求的设置方法;包括:a)设置一个总线参数;b)设置一个数量参数;c)设置一个元器件可变参数的列表;d)设置一个元器件引脚及其连接的列表;e)可操作的如权利要求2的方法设置的放置方向;f)可操作的如权利要求9的方法设置的横轴坐标和纵轴坐标。
- 一种在电路图中放置标签、引脚、无连接标记等请求的设置方法,包括:a)可操作的如权利要求2的方法设置的放置方向;b)可操作的如权利要求9的方法设置的横轴坐标和纵轴坐标。
- 一种在版图中放置标签请求的设置方法,包括:a)可操作的如权利要求2的方法设置的图层选择;b)可操作的如权利要求2的方法设置的标签字体;c)可操作的如权利要求2的方法设置的标签高度;d)可操作的如权利要求2的方法设置的放置方向;e)可操作的如权利要求9的方法设置的横轴坐标和纵轴坐标。
- 一种在电路符号中放置引脚请求的设置方法,包括:a)提供一个引脚名称;b)提供一个引脚类型;c)设置一个符号方位;d)设置一个符号位置;e)设置一个符号电平。
- 一种在电路图中放置连线及标签、引脚、无连接标记请求的设置方法,包括:a)提供一个网络名称;b)提供一个网络类型;c)设置一个总线参数;d)设置一个数量参数;e)设置一个连线类型;f)可操作的如权利要求2的方法设置的分页选择;g)可操作的如权利要求9的方法设置的连线位置列表;h)可选择的如权利要求11的方法设置的放置标签请求;i)可选择的如权利要求11的方法设置的放置引脚请求;j)可选择的如权利要求11的方法设置的放置无连接标记请求。
- 一种在版图中放置布线请求的设置方法,包括:a)提供一个网络名称;b)提供一个网络类型;c)设置一个总线参数;d)设置一个数量参数;e)设置一个布线类型;f)可操作的如权利要求2的方法设置的图层选择;g)可操作的如权利要求9的方法设置的布线位置列表;h)可选择的如权利要求12的方法设置的放置标签请求;i)可选择的如权利要求9的方法设置的布线宽度设置。
- 一种在版图中放置引脚请求的设置方法,包括:a)提供一个网络名称;b)提供一个网络类型;c)设置一个引脚名称;d)设置一个总线参数;e)设置一个数量参数;f)可操作的如权利要求2的方法设置的图层选择;g)可操作的如权利要求2的方法设置的对齐选择;h)可操作的如权利要求2的方法设置的方向选择;i)可操作的如权利要求9的方法设置的横轴坐标和纵轴坐标;j)可选择的如权利要求9的方法设置的引脚长度;k)可选择的如权利要求9的方法设置的引脚宽度。
- 一种在版图中放置穿孔请求的设置方法,包括:a)可选择的提供一个网络名称;b)可选择的提供一个网络类型;c)设置一个穿孔名称;d)设置一个总线参数;e)设置一个数量参数;f)设置一个穿孔类型;g)可操作的如权利要求2的方法设置的对齐选择;h)可操作的如权利要求2的方法设置的方向选择;i)可操作的如权利要求9的方法设置的横轴坐标和纵轴坐标。
- 一种在电路符号或电路图或版图中建立网络及放置连线、布线、引脚、穿孔、标签、无连接标记请求的设置方法,包括:a)设置一个网络名称;b)设置一个网络类型;c)可操作的如权利要求13的方法设置的符号引脚请求;d)可操作的如权利要求14的方法设置的电路连线及标签、引脚、无连接标记的放置请求;e)可操作的如权利要求15的方法设置的版图布线及标签的放置请求;f)可操作的如权利要求16的方法设置的版图引脚的放置请求;g)可操作的如权利要求17的方法设置的版图穿孔的放置请求。
- 一种自动实现电子系统设计的数据描述方法,包括:a)可操作的含权利要求1方法的设计模块的描述数据;b)印制电路或集成电路的加工工艺技术的设计规则数据;c)用户自定义的设计参数数据;d)可操作的含权利要求6方法的模块电路或模块版图中放置元器件请求的模块例化数据;e)可操作的含权利要求18方法的模块符号或模块电路或模块版图中建立网络及放置连线、布线、引脚、穿孔、标签、无连接标记等请求的模块网络数据列表。
- 一种自动实现电子系统设计的工具软件,基于如权利要求19的方法的描述数据,自动的生成电子系统的电路符号和(或)电路图和(或)版图及设置其可变参数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310535485.XA CN104615793A (zh) | 2013-11-04 | 2013-11-04 | 一种自动实现电子系统设计的数据描述方法 |
CN201310535485.X | 2013-11-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015062397A1 true WO2015062397A1 (zh) | 2015-05-07 |
Family
ID=53003306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2014/088247 WO2015062397A1 (zh) | 2013-11-04 | 2014-10-09 | 一种自动实现电子系统设计的数据描述方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104615793A (zh) |
WO (1) | WO2015062397A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117572A (zh) * | 2018-08-27 | 2019-01-01 | 珠海市微半导体有限公司 | 一种基于电路原理图的符号图引脚的自动伸线打标记方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642949B2 (en) * | 2017-06-07 | 2020-05-05 | Taiwan Semiconductor Manufacturing Co., Ltd. | Cell placement site optimization |
CN109492306B (zh) * | 2018-11-12 | 2020-04-07 | 北京华大九天软件有限公司 | 一种设计规则验证结果的关联层反标方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150430A (zh) * | 2013-03-01 | 2013-06-12 | 杭州广立微电子有限公司 | 一种测试芯片版图的生成方法 |
-
2013
- 2013-11-04 CN CN201310535485.XA patent/CN104615793A/zh active Pending
-
2014
- 2014-10-09 WO PCT/CN2014/088247 patent/WO2015062397A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150430A (zh) * | 2013-03-01 | 2013-06-12 | 杭州广立微电子有限公司 | 一种测试芯片版图的生成方法 |
Non-Patent Citations (4)
Title |
---|
ZENG, LIEGUANG ET AL., APPLICATION SPECIFIC INTEGRATED CIRCUIT DESIGN, 31 October 2008 (2008-10-31) * |
ZENG, LIEGUANG ET AL., APPLICATION SPECIFIC INTEGRATED CIRCUIT DESIGN, 31 October 2008 (2008-10-31), pages 31 * |
ZHANG, WEI ET AL., BEGINNING PROTEL 99 SE, 31 May 2008 (2008-05-31) * |
ZHANG, WEI ET AL.: "Beginning Protel 99 SE", 31 May 2008 (2008-05-31), pages 56 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117572A (zh) * | 2018-08-27 | 2019-01-01 | 珠海市微半导体有限公司 | 一种基于电路原理图的符号图引脚的自动伸线打标记方法 |
CN109117572B (zh) * | 2018-08-27 | 2023-01-10 | 珠海一微半导体股份有限公司 | 一种基于电路原理图的符号图引脚的自动伸线打标记方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104615793A (zh) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11030380B2 (en) | Synergistic design method for fabricating integrated circuit | |
US8954915B2 (en) | Structured placement of hierarchical soft blocks during physical synthesis of an integrated circuit | |
WO2015062397A1 (zh) | 一种自动实现电子系统设计的数据描述方法 | |
US11994979B2 (en) | Smart regression test selection for software development | |
CN104346502A (zh) | 一种基于odb++文件转化为可编辑pcb版图的方法 | |
US8296706B2 (en) | Handling two-dimensional constraints in integrated circuit layout | |
US20180150585A1 (en) | Method for layout generation with constrained hypergraph partitioning | |
CN108959696A (zh) | 扩展包括库的标准单元组的方法和系统 | |
CN105912723A (zh) | 一种自定义字段的存储方法 | |
CN106777612B (zh) | 一种建立pcb类型的预测模型和pcb设计的方法及装置 | |
CN115983196B (zh) | 一种通过lvs检查分析芯片物理版图噪声耦合与屏蔽的方法 | |
US20180189952A1 (en) | Method for processing the lef diagram of a layout | |
CN112561486A (zh) | 自动化立案方法、装置、电子设备及存储介质 | |
US6598207B1 (en) | Software for converting power delivery interconnect modeling connectivity maps to simulation ready input | |
CN102339342B (zh) | 一种参数化器件单元的快速实体化方法 | |
CN105160082B (zh) | 电子电路的再利用与验证方法 | |
US10984164B1 (en) | Method, system, and product for generating and maintaining a physical design for an electronic circuit having sync group constraints for design rule checking | |
CN117131824A (zh) | 自动生成芯片设计rtl代码的方法、电子设备和介质 | |
Foxvog et al. | Ontologizing EDI semantics | |
CN102708206A (zh) | 一种数据格式的描述方法 | |
CN108038274B (zh) | 一种pcb与ic封装协同设计方法及装置 | |
Crawford | An electronic design interchange format | |
CN106874587B (zh) | 用于ip参数化单元合并的动态化标签系统和实现方法 | |
CN106649895A (zh) | 一种层次化的集成电路版图短路查找方法 | |
Shelar | An algorithm for routing with capacitance/distance constraints for clock distribution in microprocessors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14857324 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205N DATED 24.08.2016) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14857324 Country of ref document: EP Kind code of ref document: A1 |