This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2019-053313, filed Mar. 20, 2019, the entire contents of which are incorporated herein by reference.
Embodiments described herein relate generally to a circuitry design method and a storage medium.
In general, in implementation of an LSI, a multi-bit flip-flop (hereinafter “MBFF”) is used from the standpoint of reduction in power. By putting a plurality of flip-flops together into the MBFF (i.e. by converting flip-flops into the MBFF), the number of signal lines for a clock, scan enable, etc. can be decreased, and the dynamic power and the area of use can be reduced. In designing an LSI, the conversion of flip-flops into the MBFF is performed at a time of logical synthesis with a high conversion ratio.
On the other hand, there is a case where a wrapper logic is implemented for a hierarchical scan or a logic built-in self-test (LBIST). The wrapper logic is a boundary logic for shutting off an influence of the inside and outside of hierarchy, and is generally formed by utilizing existing FFs (including MBFFs) as much as possible.
For example, when a shared wrapper logic, by which an MBFF for use in normal system operation is also used for a test, is to be implemented, if an element that cannot be used in constituting the wrapper logic is included in a part of the MBFF, the MBFF cannot become a wrapper logic. Thus, a new flip-flop or the like is added, and a dedicated wrapper logic is formed. In this case, a decrease occurs in the advantageous effects of the reduction in power and the reduction in area of use, which are obtained by the use of the MBFF and the sharing of the wrapper logic.
Hereinafter, embodiments will be described with reference to the accompanying drawings.
In general, according to one embodiment, there is provided a circuitry design method. The method includes determining flip-flops for use in constituting a wrapper logic, based on a netlist of circuitry, and forming, after the determining, a multi-bit flip-flop including the flip-flops for use in constituting the wrapper logic, such that a flip-flop which is not used in constituting the wrapper logic is not included in the multi-bit flip-flop.
To begin with, a first embodiment will be described.
(Configuration)
An information processing apparatus 100 illustrated in
For example, as various tools applied to semiconductor test facilitation design of a large-scale integrated circuit (LSI) or the like, a synthesis tool 11, a scan tool 12, etc. are prepared, and these tools are stored in the storage medium 3. These tools operate under the control of the processor 4. The processor 4 reflects information that is input from the input device 1 onto data that is used by the various tools, causes the output device 2 to display the information processed by the various tools, and causes the storage medium 3 to store the information processed by the various tools.
The synthesis tool 11 includes a function of performing logical synthesis, and also includes a function of performing physical synthesis.
The synthesis tool 11 executes, by the logical synthesis, a development from a function description sentence of a register transfer level (RTL) (i.e. a program by RTL description) into circuitry connection information of a gate level (i.e. synthesis netlist). In addition, the synthesis tool 11 can generate, by the physical synthesis, arrangement information of design exchange format (DEF) description, which represents the physical arrangement positions of respective circuitry elements, from the synthesis netlist. The logical synthesis or physical synthesis is implemented by also taking into account the restriction conditions which a designer presets (restriction conditions of a chip area, power consumption, delay time, etc.)
Note that when it is preferable to add a change to the logical configuration of circuitry in consideration of the arrangement information generated by the physical synthesis, a corresponding part of the above-described function description sentence (program by RTL description) may be changed as needed, the logical synthesis may be executed once again to update the synthesis netlist, and the physical synthesis may further be executed to update the arrangement information of the DEF description.
On the other hand, the scan tool 12 illustrated in
As illustrated in
Each of the two wrapper logics 21 and 23 is constituted by using a multi-bit flip-flop (hereinafter “MBFF”). In addition, in some cases, an internal logic 22 disposed between the wrapper logics 21 and 23 is constituted by using an MBFF. Each MBFF is composed of a plurality of flip-flops.
The MBFF that constitutes the internal logic 22 is composed of a plurality of flip-flops which are connected between the flip-flops in the input-side wrapper logic 21 and the flip-flops in the output-side wrapper logic 23. The switching of signal inputs to the flip-flops in the internal logic 22 is controlled by a scan enable signal se for the internal logic.
On the other hand, the MBFF that constitutes the input-side wrapper logic 21 is composed of a plurality of flip-flops which are connected directly, or via combinational circuitry, to a plurality of input terminals PI0 to PI2. The switching of signal inputs to these flip-flops is controlled by a scan enable signal Iwrap_se for the input-side wrapper logic.
Furthermore, the MBFF that constitutes the output-side wrapper logic 23 is composed of a plurality of flip-flops which are connected directly, or via combinational circuitry, to a plurality of output terminals PO0 to PO2. The switching of signal inputs to these flip-flops is controlled by a scan enable signal Owrap_se for the output-side wrapper logic.
Note that the above-described scan enable signals se, Iwrap_se and Owrap_se are independently controlled on a logic-by-logic basis. A clock signal is identical to a clock signal of the internal logic in the case of a shared wrapper logic.
Each of
As commonly illustrated in
Note that the scan enable signal, which is input from the SE port, corresponds to the scan enable signal se when the MBFF constitutes the internal logic 22, corresponds to the scan enable signal Iwrap_se when the MBFF constitutes the input-side wrapper logic 21, and corresponds to the scan enable signal Owrap_se when the MBFF constitutes the outside-side wrapper logic 23.
In the example of
In the example of
Depending on the purpose of use, either of the configurations illustrated in
(Operation)
Next, referring to
To start with, a process of synthesis (step S1) is executed by the synthesis tool 11. Here, based on the program by RTL description, logical synthesis is executed, and a synthesis netlist is generated (step S1). In this synthesis process (step S1), conversion of flip-flops into an MBFF (MBFF banking) is not executed.
Next, a process (step S2) for enabling a scan test by the scan tool 12 is executed. Here, based on the synthesis netlist generated by the synthesis tool 11, a netlist (scan netlist) of circuitry, in which a wrapper logic is formed and a scan enable signal line, a scan chain, etc. are added, is generated. A concrete process of this will be described below.
In step S12, the netlist of circuitry generated by the synthesis tool 11 is analyzed, and a process of determining flip-flops, which constitute a wrapper logic (each of the input-side wrapper logic 21 and output-side wrapper logic 23), is executed.
The determination of flip-flops, which are used for constituting the wrapper logic, includes “selection” from existing flip-flops that are prepared in advance for the normal system operation, and “addition” of a new flip-flop.
The “addition” includes, for example, a process in which when any one of one or more elements, which are directly connected to an arbitrarily selected external terminal of a hierarchy block, is not a flip-flop, a new flip-flop that is connected closer to the external terminal side than any of these elements is added as a flip-flop for use in constituting the wrapper logic.
For example, as illustrated in
On the other hand, the “selection” includes a process in which when each of one or more elements, which are directly connected to an arbitrarily selected external terminal of a hierarchy block, is a flip-flop, each of these elements is selected as a flip-flop for use in constituting a wrapper logic.
For example, as illustrated in
Note that a flip-flop that is not used for a test is not a target of the above-described “selection” or “addition”.
For example, as illustrated in
As described above, the wrapper logics include the input-side wrapper logic 21 and output-side wrapper logic 23. For example, a procedure may be adopted in which all elements connected to the output terminals of the hierarchy block are first searched and the flip-flops for use in constituting the output-side wrapper logic 23 are determined, and thereafter the flip-flops for use in constituting the input-side wrapper logic 21 are determined. In this case, the flip-flops which were determined as flip-flops for use in constituting the output-side wrapper logic 23 are excluded from the targets of flip-flops which are to be determined as flip-flops for use in constituting the input-side wrapper logic 21. By executing processing by the above procedure, since the number of branch paths decreases at the time of searching from the output terminal side of the hierarchy block, the load and time of the search process can be reduced.
In step S13, grouping is performed by using the information acquired by the process of step S12. In the grouping, the flip-flops that are used in constituting the wrapper logics (the input-side wrapper logic 21 and output-side wrapper logic 23) and the flip-flops that are not used in constituting the wrapper logics are grouped. Specifically, the grouping is performed to group the existing flip-flops selected for use in constituting the wrapper logics, the newly added flip-flops for use in constituting the wrapper logics, and the flip-flops that are not used in constituting the wrapper logics.
The information of flip-flops of each group formed by the grouping is collected as an additional netlist, and is used for forming each MBFF, as will be described later.
In step S14, using the information acquired in the process of step S13, the conversion (MBFF banking) of flip-flops into an MBFF is executed. Specifically, with respect to the individual groups formed by the grouping, the MBFF for constituting the input-side wrapper logic 21 and the MBFF for constituting the output-side wrapper logic 23 are formed. Besides, the MBFF for constituting the internal logic 22 or the like is formed. Each MBFF is formed by using, for example, flip-flops which are logically close to each other.
For example, as illustrated in
In the example of
In step S15, stitching of a scan chain (hereinafter “wrapper chain”) for a wrapper logic is executed for the MBFF that constitutes the wrapper logic. In step S16, stitching of a scan chain (hereinafter “internal scan chain”) for an internal logic is executed for the MBFF that constitutes the internal logic. Note that the order of processes of steps S15 and S16 may be reversed.
For example, as illustrated in
On the other hand, in the MBFF 42 that does not constitute a wrapper logic, the internal scan chain is connected to the SI port and SO port. A signal line for inputting a scan enable signal se for the internal logic is connected to the SE port.
In step S17, the information acquired in the process of steps S14 to S16 is collected as a scan netlist, and the scan netlist is output to the output device 2 or the like.
Note that, in
In addition, in
In general technology, a plurality of flip-flops are first converted to an MBFF (MBFF banking), and then selection and addition of flip-flops necessary for constituting a wrapper logic are examined. In this case, there often occurs a process of adding a flip-flop which is normally unnecessary in the formation of the wrapper logic. For example, when a shared wrapper logic is to be implemented, if an element that cannot constitute a wrapper logic is included in a part of the MBFF, the MBFF cannot become the shared wrapper logic. Thus, a new flip-flop is added, and a dedicated wrapper logic is formed. In this case, a decrease occurs in the advantageous effects of the reduction in power and the reduction in area of use, which are obtained by the use of the MBFF and the sharing of the wrapper logic.
For example, as illustrated in
By contrast, according to the present embodiment, after determining the flip-flops that are used for constituting the wrapper logic, a multi-bit flip-flop including the flip-flops for use in constituting the wrapper logic is formed such that a flip-flop that is not used for constituting the wrapper logic is not included. It is thus possible to reduce the occurrence of the situation in which a flip-flop or the like, which is normally unnecessary in the formation of the wrapper logic, is added. Therefore, it is possible to enhance the advantageous effects of the reduction in power and the reduction in area of use, which are obtained by the use of the MBFF and the sharing of the wrapper logic.
Next, a second embodiment will be described. Hereinafter, a description of parts overlapping the first embodiment is omitted, and different parts will mainly be described.
The basic configuration is the same as illustrated in
In step S11, arrangement information (DEF) is generated by physical synthesis, from the synthesis netlist generated by logical synthesis.
In step S12, analysis using the arrangement information is performed, and a process of determining (selecting or adding) flip-flops, which constitute a wrapper logic, is executed.
In step S13′, arrangement information of DEF description (hereinafter “wrapper FF (def) information”) representing the physical arrangement positions of the flip-flips for use in constituting the wrapper logic is also generated by using the information acquired in the process of step S12.
In step S14, using the arrangement information acquired in the process of step S11 and the information including “wrapper FF (def) information” acquired in the process of step S13′, the conversion (MBFF banking) of flip-flops into MBFFs is executed. For example, when it has become clear, from the arrangement information and the wrapper FF (def) information, that there exists an MBFF in which a flip-flop and a flip-flop are physically spaced apart by a predetermined distance or more, this MBFF is de-banked. In addition, after the de-banking, banking may be performed once again.
In step S15, stitching of a wrapper chain is executed for the MBFF that constitutes the wrapper logic. In step S16, stitching of an internal scan chain is executed for the MBFF that constitutes the internal logic.
In step S17, the information acquired in the process of steps S14 to S16 is collected as a scan netlist, and the scan netlist is output to the output device 2 or the like.
According to the present embodiment, in addition to the advantageous effects obtained in the first embodiment, since the information processing using the arrangement information is executed, it is possible to understand, for example, the physical arrangement position of each flip-flop that is used in constituting the wrapper logic, and more suitable MBFF banking can be performed.
Hereinafter, a description will be given of modifications of the processes described in the first embodiment and the second embodiment.
[Modification 1]
A process may be performed in which, among the MBFFs formed in the process of MBFF banking of step S14, an arbitrarily selected MBFF (e.g. an MBFF including a flip-flop for use in constituting a wrapper logic) is divided into two parts, and scan enable signal lines and scan chains, which are used in the respective parts, are separately formed. This process is effective when the operations of the two parts are to be tested individually.
For example, when the MBFF corresponds to the configuration illustrated in the example of
[Modification 2]
When it turns out that, among the individual MBFFs formed in the process of the MBFF banking of step S14, an arbitrarily selected MBFF (e.g. an MBFF including a flip-flop for use in constituting a wrapper logic) includes a flip-flop that cannot be used in constituting the wrapper logic (i.e. only a part of flip-flops is a flip-flop that can be used in constituting the wrapper logic), a process of canceling (de-banking) the formation of this MBFF may be executed. This process is effective, for example, when a flip-flop that cannot be used in constituting the wrapper logic is unexpectedly included in the flip-flops for use in constituting the wrapper logic. After the above-described de-banking, banking may be executed once again.
[Modification 3]
In the synthesis process of step S1, a process of describing a matter, which specifies flip-flops for use in constituting the wrapper logic, in the program by RTL description that is the basis of the synthesis netlist, may be executed in advance. This process is effective when the flip-flops that are used in constituting the wrapper logic can be estimated in advance, or are clearly understood. This process can realize further facilitation of design, and further reduction in design time.
As described above in detail, according to the embodiments, it is possible to reduce the occurrence of the situation in which a flip-flop or the like, which is unnecessary in the formation of the wrapper logic, is added, and to improve the advantageous effect of the reduction in power and the reduction in area of use.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope of the inventions.
Number | Date | Country | Kind |
---|---|---|---|
2019-053313 | Mar 2019 | JP | national |