SE516166C2 - An apparatus and method relating to timing of circuits - Google Patents

An apparatus and method relating to timing of circuits

Info

Publication number
SE516166C2
SE516166C2 SE9902079A SE9902079A SE516166C2 SE 516166 C2 SE516166 C2 SE 516166C2 SE 9902079 A SE9902079 A SE 9902079A SE 9902079 A SE9902079 A SE 9902079A SE 516166 C2 SE516166 C2 SE 516166C2
Authority
SE
Sweden
Prior art keywords
cells
register
cell
register cells
alternative
Prior art date
Application number
SE9902079A
Other languages
Swedish (sv)
Other versions
SE9902079L (en
SE9902079D0 (en
Inventor
Klas Moreau
Per Ingelhag
Original Assignee
Ericsson Telefon Ab L M
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Priority to SE9902079A priority Critical patent/SE516166C2/en
Publication of SE9902079D0 publication Critical patent/SE9902079D0/en
Priority to AU54362/00A priority patent/AU5436200A/en
Priority to PCT/SE2000/001146 priority patent/WO2000075815A1/en
Publication of SE9902079L publication Critical patent/SE9902079L/en
Publication of SE516166C2 publication Critical patent/SE516166C2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

The present invention relates to an arrangement and a method of controlling time during or after layout of a digital logical circuit system comprising a number of building blocks (2b,4b,6b) each comprising a number of cells and a number of clocked first register cells (1b',3b',5b',7b'), e.g. one for each building block and responsible for activation of the cells of the building blocks. A cell library is provided containing information about available cells and at least one system clock and/or subsystem clock with a given target frequency clocking the register cells is provided. A number of alternative register cells are provided in the cell library which have a number of different setup and hold characteristics with respect to the clock arrival and means are provided for substituting first register cells through appropriate alternative register cells without changing the construction and layout of the circuit system.

Description

25 30 516 166 ett syntetiseringsprogram, exempelvis transformeras en designspecifikation från en högre abstraktionsnivå till en lägre abstraktionsnivå. Mjukvara för logisk kretssyntes transformerar således en RT-nivåkretsrepresentation av föregående nivå till en nätlistsrepresentation på grindnivå. Syntetiseringsprogrammet översätter den logiska funktionaliteten till en beskrivning som innefattar byggblock och hur dessa är sammankopplade. Denna översättning kan styras genom att verktyget förses med information om timingkrav, driveffekt osv. Nätlistan introduceras därpå i ett layoutverktyg som används för att planera konstruktionen vad avser de fysiska aspekterna. Layoutverktyget används för att anordna alla byggsblocken som innehåller celler på den givna kiselarean. när man Därefter kopplas de samman enligt nätlistan. Tidigare, arbetade med linjebredder på omkring 0,5 pm eller mera, var det jämförelsevis lätt att förutsäga resultatet efter layout både avseende timing, area och effekt. Emellertid, när man använder så kallad DSM förlita sig på förutsägelser eller resultat som erhållits före (Deep SubMicron Technologies) är det inte möjligt att layout. Inte förrän efter layout faktiskt har blivit utförd, är det möjligt att, med någon säkerhet, kunna förutsäga vilka byggblock eller celler som kommer att uppfylla de givna kraven och vilka som ej kommer att göra det. A synthesis program, for example, a design specification is transformed from a higher level of abstraction to a lower level of abstraction. Logic circuit synthesis software thus transforms an RT level circuit representation of the previous level into a gate list representation at the gate level. The synthesis program translates the logical functionality into a description that includes building blocks and how these are connected. This translation can be controlled by providing the tool with information about timing requirements, drive power, etc. The network list is then introduced in a layout tool that is used to plan the construction with regard to the physical aspects. The layout tool is used to arrange all the building blocks that contain cells on the given silicon area. when you Then they are connected according to the network list. Previously, working with line widths of about 0.5 pm or more, it was comparatively easy to predict the result by layout in terms of timing, area and power. However, when using so-called DSM rely on predictions or results obtained before (Deep SubMicron Technologies) it is not possible to layout. Not until after the layout has actually been carried out, it is possible, with some certainty, to be able to predict which building blocks or cells will meet the given requirements and which will not.

Att timingproblem först kan identifieras på ett så sent stadium i konstruktionsprocessen innebär att det blir mycket problematiskt att korrigera de timingproblem som upptäcks under eller efter layout. I allmänhet betyder det att åtskilliga tidskrävande iterationer måste utföras. Under layout och när layouten är utförs i allmänhet en verifikation av konstruktionen. att den avslutad, Detta betyder fysiskt implementerade konstruktionen analyseras vad det gäller tid, area och effekt. Två olika slag av tidsrelaterade problem kan identifieras, nämligen först att byggblocken innefattande en eller flera celler i ett programområde 10 15 20 25 30 516 166 inte har tillräcklig kapacitet att driva sina mottagare och för det andra att den tid som medges för en given funktionalitet eller för ett givet område inte kunde upprätthållas beroende på att mängden av logik är för stor.The fact that timing problems can only be identified at such a late stage in the design process means that it becomes very problematic to correct the timing problems that are discovered during or after layout. In general, this means that several time-consuming iterations must be performed. During layout and when the layout is, a verification of the design is generally performed. that it completed, This means the physically implemented design is analyzed in terms of time, area and power. Two different types of time-related problems can be identified, namely first that the building blocks comprising one or more cells in a program area 106 20 25 30 516 166 do not have sufficient capacity to operate their receivers and secondly that the time allowed for a given functionality or for a given area could not be maintained due to the amount of logic being too large.

För att lösa det första problemet används verktyg för att förändra driveffekten för en cell och på ett sådant sätt blir det möjligt att hantera problemet. Det andra problemet är mera svårt att hantera och det finns lite stöd för optimering. Ett sätt är att låta verktyget kontrollera det kritiska problemområdet för att se dvs att förändra sätt förbättra onl det är~ möjligt att omorganisera cellerna, lokaliseringen av cellerna och att pà så situationen. De metoder som är tillgängliga i existerande verktyg cell, att tillhandahålla för lastdelning eller separata drivlogikceller, om är att öka/minska driveffekten för en logisk lasten är hög att introducera repeterarceller för att hantera driften på långa avstånd, dvs att driva celler som är anordnade på långt håll och att relokera kritiska funktioner för att förbättra lokaliseringen.To solve the first problem, tools are used to change the drive power of a cell and in this way it becomes possible to handle the problem. The second problem is more difficult to deal with and there is some support for optimization. One way is to let the tool check the critical problem area to see, ie to change ways to improve onl it ~ possible to reorganize the cells, the location of the cells and to sow the situation. The methods available in existing tool cells, to provide for load sharing or separate drive logic cells, whether to increase / decrease the drive power of a logic load are high to introduce repeater cells to handle operation at long distances, ie to drive cells arranged on long distance and relocate critical features to improve localization.

De tre förstnämnda metoderna används för att lösa det problem som relaterar till otillräcklig kapacitet för att driva mottagarna.The first three methods are used to solve the problem related to insufficient capacity to drive the receivers.

Sådana operationer nätlistorna eftersom påverkar verktyget introducerar repeterarceller eller delar en signal. Sådana celler behöver då lokaliseras och anslutas vid layout vilket kräver en annan iteration som kräver en massa tid. att lösa det andra Den sista metoden används slutligen för problemet, (dvs timingproblemet). Denna operation har inte någon påverkan på nätlistan utan placeringen och sammankopplingen görs en gång till under layout vilket kräver en ytterligare iteration vilket kräver en massa tid. Således finns det idag inte några bra verktyg för att lösa timingproblem som detekteras under eller 10 15 20 25 30 516 166 - f* ~ " efter layout. Generellt löses problemen med användning av dyra, tidskrävande operationenr och det är också mycket svårt att förutsäga när ett problem faktiskt är löst eftersom, beroende på omförflyttningar, införandet av ytterligare element osv, kan nya problem introduceras och därför mäste i värsta fall layouten utföras många gånger innan man kan hitta en mer eller mindre tillfredsställande lösning.Such operations net lists because affecting the tool introduces repeater cells or divides a signal. Such cells then need to be located and connected during layout, which requires another iteration that requires a lot of time. to solve the second The last method is finally used for the problem, (ie the timing problem). This operation has no effect on the network list but the placement and connection is done again during layout which requires an additional iteration which requires a lot of time. Thus, today there are no good tools for solving timing problems detected during or after layout. In general, the problems are solved with the use of expensive, time consuming operation no and it is also very difficult to predict when a problem is actually solved because, due to relocations, the introduction of additional elements, etc., new problems can be introduced and therefore in the worst case the layout must be performed many times before one can find a more or less satisfactory solution.

REDOGÖRELSE FÖR UPPFINNINGEN Vad som behövs är därför en anordning och ett förfarande för att som detekteras under eller efter lösa timingproblem layout.DESCRIPTION OF THE INVENTION What is needed, therefore, is a device and a method for that which is detected during or after solving timing problems.

Speciellt behövs en anordning och ett förfarande genom. vilka timingproblem som detekteras under eller efter layout kan lösas vid användning av så kallade submikronteknologier, dvs när linjer används som har en linjebredd på 0,35 um eller till och med mindre än det. Speciellt behövs en anordning respektive ett förfarande genom vilka timingproblem kan lösas utan att det kräver omkonstruktion eller omallokering av celler vilket får krävande beräkningar som konsekvens. Speciellt behövs en anordning och ett förfarande som möjliggör lösandet av timingproblem utan att man behöver göra förändringar i en konstruktion eller i layouten.In particular, a device and a method are needed. which timing problems are detected during or after layout can be solved when using so-called submicron technologies, ie when lines are used which have a line width of 0.35 μm or even less than that. In particular, a device or a method is needed by which timing problems can be solved without requiring redesign or reallocation of cells, which has demanding calculations as a consequence. In particular, a device and a method are needed that enable the solution of timing problems without the need to make changes in a construction or in the layout.

Dessutom behövs en anordning och ett förfarande genom vilka det stora antalet beräkningsoperationer kan reduceras och man ändå kan få önskad prestanda för ett synkroniserat digitalt hårdvarusystem implementerat exempelvis som en ASIC. Det är också ett mål med uppfinningen att tillhandahålla en anordning och ett förfarande som möjliggör optimering av prestanda vid layout eller efter layout.In addition, a device and a method are needed by which the large number of calculation operations can be reduced and one can still obtain the desired performance for a synchronized digital hardware system implemented, for example, as an ASIC. It is also an object of the invention to provide a device and a method which enables optimization of performance at layout or after layout.

Genom föreliggande uppfinning har det insetts att, idag, speciellt med användning av submikronteknologier, är nätet eller ledningarna ytterligt viktiga vad det gäller fördröjningar. Tidigare var det 10 15 20 25 30 516 166 snarare cellfördröjningen som var begränsande för fungerandet och prestanda. Därför måste detta problem lösas. tillhandahålles en under/efter av ett digitalt, Därför anordning för att styra timing layout logiskt kretssystem som innefattar att ett antal funktionella byggblock, vardera av vilket antal och ett antal klockade första innefattar ett celler, registerceller, speciellt en för varje byggblock, som ansvarar för aktivering av byggblockens celler, där ett cellbibliotek är anordnat som innehåller information om 'tillgängliga celler och åtminstone en systemklocka eller en delsystemklocka med en given màlfrekvens för att klocka registercellerna. Ett antal alternativa registerceller tillhandahàlles i cellbiblioteket. Mera generellt tillhandahàlles ett cellbibliotek med ett antal alternativa eller modifierade registerceller. Dessa alternativa registerceller har olika interna klockfördröjningar och medel är anordnade för att ersätta en första registercell med en lämplig alternativ registercell eller med en annan första registercell om det finns någon sådan tillgänglig. Den alternativa registercellen eller den andra första registercellen har en annan, lämplig, klockfördröjning, olika setup och hållkaraktäristika med avseende på klockningen, och ersättningen uppnås utan att förändra konstruktionen eller layouten på kretssystemet. I en speciell implementering är tidsanalyseringsmedel anordnade för att utföra en tidsanalys under eller efter layout. Om det fastställes att klockningen av byggblockens celler inte sker med den màlfrekvens som är definierad av systemklockan eller alternativt av en delsystemklocka, ersätts registercellen (cellerna) av en av de alternativa registercellerna som finns i cellbiblioteket så att kravet på respektive màlfrekvens kan uppfyllas. Med en första registercell avses i denna ansökan registercell som tillhandahållits ursprungligen eller en cell som ska ersättas enligt detektering under verifikaton vid/efter layout, exempelvis 10 15 20 25 30 aförsta registercellen. 516 166 '2=.I2.' " om det upptäcks att den inte uppfyller vissa tidskrav, att optimala förhållanden inte råder, att den klockas så att det blir tid över osv. tillhandahâlles cellbiblioteket, vilka har positiva fördröjningar i jämförelse med Speciellt alternativa registerceller i respektive första registercell. Med en positiv fördröjning avses här en fördröjning som är längre än fördröjningen för den berörda Speciellt tillhandahâlles också alternativa registerceller som har en negativ fördröjning (fördröjningar) jämfört med respektive första registercell. Med en negativ fördröjning avses här en fördröjning som är kortare jämfört med fördröjningen för den första registercellen. cellerna förbundna som har en Speciellt är genom ledningar linjebredd som är smalare än eller lika med 0,35 um. I en speciell implementering används alternativa registerceller som inkluderas i cellbiblioteket vid behov för att minimera variationen i distributionen av klocksignalen från systemklockan/ delsystemklockan till olika byggblock som klockas av samma klocka att minimera variationen i cykeltid för eller speciellt för byggblocken, varvid första registerceller ersätts av alternativa registerceller (eller andra första registerceller) efter behov för att uppnå sagda minimering.Through the present invention, it has been realized that, today, especially with the use of submicron technologies, the network or wires are extremely important in terms of delays. Previously, it was rather the cell delay that was limiting its function and performance. Therefore, this problem must be solved. provided a during / after of a digital, Therefore device for controlling timing layout logic circuit system comprising a number of functional building blocks, each of which number and a number of clocked first comprises a cells, register cells, especially one for each building block, which is responsible for activation of the cells of the building blocks, where a cell library is arranged which contains information about available cells and at least one system clock or a subsystem clock with a given target frequency for clocking the register cells. A number of alternative register cells are provided in the cell library. More generally, a cell library is provided with a number of alternative or modified register cells. These alternative register cells have different internal clock delays and means are provided for replacing a first register cell with a suitable alternative register cell or with another first register cell if one is available. The alternative register cell or the second first register cell has a different, suitable, clock delay, different setup and holding characteristics with respect to the clock, and the replacement is achieved without changing the design or layout of the circuit system. In a special implementation, time analysis means are arranged to perform a time analysis during or after layout. If it is determined that the cells of the building block cells are not clocked at the target frequency defined by the system clock or alternatively by a subsystem clock, the register cell (s) is replaced by one of the alternative register cells in the cell library so that the respective target frequency can be met. By a first register cell in this application is meant a register cell which was originally provided or a cell which is to be replaced according to detection during verification at / after layout, for example the first register cell. 516 166 '2 = .I2.' "if it is discovered that it does not meet certain time requirements, that optimal conditions do not prevail, that it is clocked so that there is time left over, etc., the cell library is provided, which have positive delays compared to Special alternative register cells in each first register cell. With a positive delay. This refers to a delay that is longer than the delay for the person concerned. In particular, alternative register cells are provided which have a negative delay (delays) compared with the respective first register cell. the cells connected that have a Special is through wires line width that is narrower than or equal to 0.35 μm In a special implementation, alternative register cells are used which are included in the cell library when needed to minimize the variation in the distribution of the clock signal from the system clock / subsystem clock to different villages ggblocks clocked by the same clock to minimize the variation in cycle time for or especially for the building blocks, wherein first register cells are replaced by alternative register cells (or other first register cells) as needed to achieve said minimization.

I en speciell implementering används alternativa registerceller för att optimera timingen av klockningen av registercellerna.In a special implementation, alternative register cells are used to optimize the timing of the clocking of the register cells.

I ett annat utförande används implementering av alternativa eller modifierade registerceller för att hantera faktiska timingproblem, dvs när några delar av kretslayouten inte uppfyller de ålagda eller satta tidskraven. Alternativt kan alternativa registerceller 10 15 20 25 30 .uno-no ouøoøo 516 166 - :i - Ilšíêfš användas både för att hantera faktiska “timing”-problem och för optimering.In another embodiment, implementation of alternative or modified register cells is used to handle actual timing problems, ie when some parts of the circuit layout do not meet the imposed or set time requirements. Alternatively, alternative register cells 10 15 20 25 30 .uno-no ouøoøo 516 166 -: i - Ilšíêfš can be used both to handle actual “timing” problems and for optimization.

I en speciell implementering ersätts första registerceller som inte uppfyller den förutbestämda cykeltiden av alternativa registerceller som har en kortare fördröjning, medan celler, som väl uppfyller kraven vad det gäller cykeltid, dvs det lämnas en tidsmarginal, ersätts av alternativa registerceller soul har en längre fördröjning, så att alla registerceller får en individuell, men väsentligen samma, cykeltid.In a special implementation, first register cells that do not meet the predetermined cycle time are replaced by alternative register cells that have a shorter delay, while cells that meet the cycle time requirements, ie a time margin is left, are replaced by alternative register cells that have a longer delay. so that all register cells have an individual, but essentially the same, cycle time.

I en speciell implementering används den så kallade Gate Array (FPGA-Field Programmable Gate Array) tekniken för att konstruera kretsen. I en alternativ anordning används standardcellteknologin för att konstruera kretsen.In a special implementation, the so-called Gate Array (FPGA-Field Programmable Gate Array) technology is used to construct the circuit. In an alternative device, the standard cell technology is used to construct the circuit.

I ett utförande ersätts registercellerna av alternativa registerceller på ett sådant sätt att registerceller som inte uppfyller tidskraven, eftersom fördröjningen är för lång, ersätts av registerceller som har en kortare fördröjning, medan en annan registercell som har en fördröjning genom vilken den givna màlfrekvensen uppfylles med marginal, ersätts av en alternativ registercell som har en längre fördröjning för att minimera variationen i klockning av olika registerceller. Speciellt är kretssystemet implementerat som en ASIC.In one embodiment, the register cells are replaced by alternative register cells in such a way that register cells which do not meet the time requirements, because the delay is too long, are replaced by register cells which have a shorter delay, while another register cell which has a delay by which the given target frequency is met by margin , is replaced by an alternative register cell that has a longer delay to minimize the variation in clocking of different register cells. In particular, the circuit system is implemented as an ASIC.

Speciellt definieras registercellerna och de alternativa registercellerna i biblioteket genom, en set-up fördröjning, en hàll(hold)fördröjning och en intrinsisk fördröjning. Set-up och “hold”fördröjningarna modifieras genom en positiv eller en negativ fördröjning som tillhandahàlles på klockingången, integrerat i cellen vilket möjliggör skevning av klockningen av respektive 10 15 20 25 30 5 16 1 66 šïï* - registercell. Speciellt består registercellerna och de alternativa registercellerna av vippor eller hàllelement.In particular, the register cells and the alternative register cells in the library are defined by, a set-up delay, a hold (hold) delay and an intrinsic delay. The set-up and hold delays are modified by a positive or a negative delay provided on the clock input, integrated in the cell, which allows the clock to be skewed by the respective register cell. In particular, the register cells and the alternative register cells consist of flip-flops or holding elements.

Därför anges också ett förfarande för att styra timing för ett digitalt, logiskt kretssystem. Systemet innefattar ett antal byggblock, som vardera innefattar ett antal celler. Förfarandet innefattar speciellt stegen att utföra en layout av kretsen och definiera kriterier för klockning av registerceller för att aktivera cellerna i respektive byggblock; undersöka om registercellen (cellerna) för ett antal byggblock klockas på ett sådant sätt att givna krav uppfylles; om ej, ersätta den eller de registercellerna som inte uppfyller de givna kraven med (en) alternativ(a) registercell(er) som har en fördröjning som skiljer sig ifrån den som den ersatta cellen har så att de givna kraven kan uppfyllas utan att förändra konstruktionen och layouten av kretssystemet.Therefore, a method is also provided for controlling the timing of a digital logic circuit system. The system comprises a number of building blocks, each of which comprises a number of cells. The method includes in particular the steps of performing a layout of the circuit and defining criteria for clocking register cells to activate the cells in the respective building blocks; examine whether the register cell (s) for a number of building blocks are clocked in such a way that given requirements are met; if not, replace the register cell or cells that do not meet the given requirements with alternative (s) register cell (s) that have a delay different from that of the replaced cell so that the given requirements can be met without changing the construction and layout of the circuit system.

Speciellt består ett krav i att definiera ett målfrekvenskrav för systemet, eller för en del av systemet som utgör ett delsystem, som klockningen av registercellerna måste uppfylla; om en (första) registercell klockas på ett sådant sätt att målfrekvenskravet inte uppfylles, ersätta sagda (första) registercell med en annan registercell genom vilken klockningen åtminstone bättre uppfyller kravet på målfrekvensen. Speciellt ersätts den (första) registercellen med en alternativ registercell som har en fördröjning sådan att målfrekvenskravet faktiskt kan uppfyllas.In particular, a requirement consists in defining a target frequency requirement for the system, or for a part of the system which constitutes a subsystem, which the clocking of the register cells must meet; if a (first) register cell is clocked in such a way that the target frequency requirement is not met, replace said (first) register cell with another register cell by which the clocking at least better meets the target frequency requirement. In particular, the (first) register cell is replaced by an alternative register cell which has a delay such that the target frequency requirement can actually be met.

Enligt att annat utförande består ett krav i att fastställa en minsta variation i klockning av olika registerceller, ersätta (första) registerceller med alternativa registerceller för att minimera variationen i. klockning av registercellerna. Speciellt innefattar förfarandet stegen att tillhandahålla alternativa registerceller som har olika fördröjningar i ett cellbibliotek, 10 15 20 25 30 516 166 ç@¥Täfi3¿¥w¿WWL. använda sagda alternativa celler för att uppfylla den givna målfrekvensen och/eller för att minimera variationen i klockning av registercellerna. Speciellt ersätts registercellerna på ett sådant sätt att en (första) registercell som har en fördröjning som är för kort ersätts med en alternativ registercell som har en längre fördröjning, medan en (första) registercell som har en fördröjning som är kortare än den fördröjning som krävs för att kravet på målfrekvensen skall uppfyllas, ersätts med en registercell som har en längre fördröjning.According to another embodiment, a requirement consists in determining a minimum variation in clocking of different register cells, replacing (first) register cells with alternative register cells in order to minimize the variation in clocking of the register cells. In particular, the method includes the steps of providing alternate register cells having different delays in a cell library,. use said alternative cells to meet the given target frequency and / or to minimize the variation in clocking of the register cells. In particular, the register cells are replaced in such a way that a (first) register cell which has a delay which is too short is replaced by an alternative register cell which has a longer delay, while a (first) register cell which has a delay which is shorter than the required delay in order to meet the target frequency requirement, is replaced by a register cell that has a longer delay.

Cellbiblioteken (eller teknologibiblioteken) som idag används tillhandahålles av leverantören och de beskriver den teknologi som är tillgänglig för användning. I cellbiblioteken finns det ett antal olika beskrivningar av cellerna så att de kan användas av åtskilliga olika verktyg. Biblioteken innefattar i allmänhet omkring 50 olika unika funktionaliteter som kan implementeras med olika driveffekt så att de kan användas för att driva exempelvis en mottagare som är belägen på mycket kort avstånd likaväl som flera mottagare som är belägna på långt avstånd. Därigenom blir det, möjligt för verktygen att välja lämplig funktionalitet med lämplig driveffekt för varje speciellt fall. till möjliggöra lösning av timingproblem som detekteras under eller cellbiblioteket här med en ytterligare dimension, nämligen möjligheten att använda Emellertid kommer, såsom hänvisat ovan, dessa olika alternativ inte att efter layout. Därför förses, enligt uppfinningen, modifierade (alternativa) registerceller för att ersätta registerceller för vilka de givna kriterierna inte uppfylles.The cell libraries (or technology libraries) currently in use are provided by the vendor and they describe the technology available for use. In the cell libraries, there are a number of different descriptions of the cells so that they can be used by several different tools. Libraries generally include about 50 different unique functionalities that can be implemented with different drive power so that they can be used to drive, for example, a receiver that is located at a very short distance as well as several receivers that are located at a long distance. This makes it possible for the tools to select the appropriate functionality with the appropriate drive power for each particular case. to enable the solution of timing problems detected under or the cell library here with an additional dimension, namely the ability to use However, as referred to above, these various options will not be after layout. Therefore, according to the invention, modified (alternative) register cells are provided to replace register cells for which the given criteria are not met.

KORTFATTAD FIGURBESKRIVNING Uppfinningen kommer i det följande att ytterligare beskrivas på ett icke begränsande sätt, under hänvisning till bifogade figurer, i vilka: Fig 1 schematiskt illustrerar olika nivåer i konstruktionen/ 10 15 20 25 30 Fig 2 Fig 3A Fig 3B Fig 4A Fig 4B Fig 4C Fig 5 Fig 6 ..- u.. u .o u o n uno o nu :nu o n. o a n nu nano-n o o . .vunna 515 156 -.:=§..- - Ä? fz- ' fÃÉIïI 10 ett implementerat som en ASIC, byggandet av synkront, digitalt hårdvarusystem schematiskt illustrerar ett utförande i vilket timing- problem detekteras under layout, visar ett utförande i vilket det detekteras under layout att det föreligger en skillnad i klockningstid för olika registerceller, visar en registercell med modifierad data för användning i utförandet i Fig 3A, schematiskt illustrerar en konstruktion med timingproblem som detekteras under layout, schematiskt illustrerar konstruktionen i. Fig 4A efter tidsoptimering vid layout, schematiskt illustrerar registercellen med modifierad data för användning i konstruktionen i Fig 4A, är ett förenklat flödesdiagram som beskriver hanteringen av timingproblem som detekteras vid layout,och är ett flödesdiagram som schematiskt illustrerar användningen av alternativa registerceller för optimeringsändamàl.BRIEF DESCRIPTION OF THE DRAWINGS The invention will be further described in the following in a non-limiting manner, with reference to the accompanying figures, in which: Fig. 1 schematically illustrates different levels in the construction / Fig. 20 Fig. 2 Fig. 3A Fig. 3B Fig. 4A Fig. 4B Fig. 4C Fig 5 Fig 6 ..- u .. u .ouon uno o nu: nu o n. Oan nu nano-n oo. .vunna 515 156 -.:=§..- - Ä? fz- 'fÃÉIïI 10 an implemented as an ASIC, the construction of synchronous, digital hardware system schematically illustrates an embodiment in which timing problems are detected during layout, shows an embodiment in which it is detected during layout that there is a difference in clock time for different register cells, shows a register cell with modified data for use in the embodiment of Fig. 3A, schematically illustrates a construction with timing problems detected during layout, schematically illustrates the construction i. Fig. 4A after time optimization at layout, schematically illustrates the register cell with modified data for use in the construction of Fig. 4A , is a simplified flow chart describing the handling of timing problems detected during layout, and is a flow chart schematically illustrating the use of alternative register cells for optimization purposes.

DETALJERAD BESKRIVNING AV UPPFINNINGEN Fig 1 illustrerar schematiskt konstruktion och byggande av ett synkront, digitalt hårdvarusystem implementerat som en ASIC. 10 15 20 25 30 516 166 ll Detta är väl känt inom teknikområdet. Först kommer en konstruktionsfas eller en konstruktionsnivå på vilken syntetiseringsnivån följer, såsom diskuterats tidigare i ansökan.DETAILED DESCRIPTION OF THE INVENTION Fig. 1 schematically illustrates the design and construction of a synchronous digital hardware system implemented as an ASIC. This is well known in the art. First comes a design phase or a design level at which the synthesis level follows, as discussed earlier in the application.

Fel som detekteras under eller efter de första två stegen får som en följd att en omkonstruktion måste utföras svarande mot slinga 1.Efter syntetiseringssteget utförs en “timing”analys och en verifikation utföres. Fel som detekteras, dvs att tidskraven som initialt satts upp inte kan uppfyllas, leder också till en omkonstruktion, svarande mot slinga 2, vilket betyder att syntetiseringsfasen måste repeteras osv.Faults detected during or after the first two steps result in a reconstruction having to be performed corresponding to loop 1.After the synthesis step, a “timing” analysis is performed and a verification is performed. Errors that are detected, ie that the time requirements that were initially set up cannot be met, also lead to a reconstruction, corresponding to loop 2, which means that the synthesis phase must be repeated, and so on.

Uppfinningen berör inte denna del av konstruktionsarbetet. Efter tidsanalysen äger en planplanering (“floor planning”) rum och därefter följer “place and route” eller layoutfasen. Om en “timing”analys utförs och det upptäcks att några delar av konstruktionen inte uppfyller kraven vad det gäller timing, kommer detta att få som en följd att omkonstruktion måste utföras svarande mot slinga 3. Emellertid är detta dyrt, det kräver en massa tid och många beräkningar. Dessutom är det svårt att förutsäga när problemet i själva verket kommer att vara löst eftersom många nya fel kan introduceras, vilket får som en följd att timingkraven inte kommer att uppfyllas, fel kan introduceras i andra områden vilket skapar nya problemområden vilket får som en följd att det blir nödvändigt att utföra slinga 3 om igen osv.The invention does not concern this part of the construction work. After the time analysis, a floor planning takes place and then follows the “place and route” or layout phase. If a “timing” analysis is performed and it is discovered that some parts of the design do not meet the requirements in terms of timing, this will result in a redesign having to be performed corresponding to loop 3. However, this is expensive, it requires a lot of time and many calculations. In addition, it is difficult to predict when the problem will in fact be solved because many new errors can be introduced, which has the consequence that the timing requirements will not be met, errors can be introduced in other areas which creates new problem areas which has the consequence that it becomes necessary to perform loop 3 again, etc.

Detta är givetvis inte önskvärt. Föreliggande uppfinning befattar sig således med en lösning genom vilken slinga 3 kan undvikas och således kan, såsom kan inses genom figuren, en massa besparas om tidsproblem som detekteras under layout kan lösas vid layoutfasen.This is of course not desirable. The present invention thus deals with a solution by which loop 3 can be avoided and thus, as can be seen from the figure, a lot can be saved if time problems detected during layout can be solved in the layout phase.

Detta uppnås genom tillhandahållande av alternativa registerceller i cellbiblioteket för vilka tiden/klockningen är modifierad.This is achieved by providing alternative register cells in the cell library for which the time / clock is modified.

Registercellerna som idag tillhandahàlles i cellbiblioteken är de funktionaliteter som används för att lagra värden mellan 10 15 20 25 30 516 166 12 klockcyklerna. Registercellerna beskrivs genom ett antal värden, av vilka de mest intressanta för föreliggande uppfinning är set- up-fördröjningen, hålltidsfördröjningen och den intrinsiska fördröjningen. Dessa värden är ganska lika oberoende av vilken som är driveffekten på de olika cellerna. Dessa registerceller förses enligt föreliggande uppfinning med fördröjningar på klockingàngen integrerat i cellen. Genom att tillhandahålla en fördröjning på hålltids- fördröjningen att modifieras enligt den fördröjning som ålägges. klockingàngen, kommer set-up-fördröjningen och Detta gör det möjligt att skeva klockningen av en registercell i tiden.The register cells currently provided in the cell libraries are the functionalities used to store values between the clock cycles. The register cells are described by a number of values, of which the most interesting for the present invention are the set-up delay, the holding time delay and the intrinsic delay. These values are quite equal regardless of the driving effect on the different cells. According to the present invention, these register cells are provided with delays on the clock input integrated in the cell. By providing a delay on the holding time delay to be modified according to the delay imposed. clock input, the set-up delay will and This makes it possible to skew the clock of a register cell in time.

Det skulle vara möjligt att skeva klockningen av register i konstruktioner som är tillgängliga skeva tillhandahålles alla Det är emellertid svårt och dessutom inte önskvärt idag genom att distributionen av klockan som till registerceller. för leverantören. Skälet till detta är att fördröjningarna som introduceras tillhandahålles som en cell i konstruktionen precis som alla andra celler och deras uppträdande kommer därför att bli svårt att förutsäga. Om emellertid fördröjningen är integrerad i de existerande klockningselementen i. enlighet, med uppfinningen, blir det möjligt att få mycket god kontroll över uppträdande och karaktäristika.It would be possible to skew the clock of registers in constructions that are skewed provided all However, it is difficult and moreover not desirable today by distributing the clock as to register cells. for the supplier. The reason for this is that the delays introduced are provided as one cell in the construct just like all other cells and their behavior will therefore be difficult to predict. However, if the delay is integrated in the existing clock elements in accordance with the invention, it becomes possible to have very good control over behavior and characteristics.

Fig 2 visar ett första utförande i vilket en klocka CLK via registerceller 1,3,5,7 klockar byggblock 2,4,6. Det antas här att en cykeltid på 10 ns önskas (svarande mot en màlfrekvens på 100 MHz). Som kan ses är cykeltiden för byggblock 2 10 ns, vilket är i enlighet med kraven. Cykeltiden för byggblock 6 är* 8 ns vilket också är inom de givna kraven och det ger till och med en vinst pà 2 ns. Emellertid får byggblock 4 en cykeltid svarande mot 12 ns och tidskraven kan således ej uppfyllas för denna del av konstruktionen. Speciellt detekteras detta när en timinganalys 10 15 20 25 30 616 166 13 utföres. Enligt uppfinningen tillhandahålles ett verktyg som automatiskt (även om det inte behöver vara automatiskt) kontrollerar cellbiblioteket för att se om det finns några alternativa registerceller som har en fördröjning sådan att tidskraven kan uppfyllas för alla byggblock. Således ersätts i detta fallet registercell 3 av en alternativ registercell som har en fördröjning som är 2 ns kortare. Dessutom ersätts registercell 5 här av en alternativ registercell med en positiv fördröjning, dvs speciellt en fördröjning som är 2 ns längre än fördröjningen Det skulle emellertid också vara skulle för den första registercellen 5. möjligt att bara ersätta cell 3, även om tid då inte distribueras om i systemet.Fig. 2 shows a first embodiment in which a clock CLK via register cells 1,3,5,7 clocks building blocks 2,4,6. It is assumed here that a cycle time of 10 ns is desired (corresponding to a target frequency of 100 MHz). As can be seen, the cycle time for building blocks is 2 10 ns, which is in accordance with the requirements. The cycle time for building block 6 is * 8 ns, which is also within the given requirements and it even gives a gain of 2 ns. However, building block 4 has a cycle time corresponding to 12 ns and the time requirements can thus not be met for this part of the construction. This is especially detected when a timing analysis is performed. According to the invention, a tool is provided which automatically (although need not be automatically) checks the cell library to see if there are any alternative register cells which have a delay such that the time requirements can be met for all building blocks. Thus, in this case, register cell 3 is replaced by an alternative register cell which has a delay which is 2 ns shorter. In addition, register cell 5 is here replaced by an alternative register cell with a positive delay, i.e. especially a delay which is 2 ns longer than the delay. However, it would also be possible for the first register cell 5 to only replace cell 3, even if time is not distributed about in the system.

Fig 3A visar ett annat utförande i vilket konstruktionen har en målfrekvens på 200 MHz svarande mot en cykeltid på 5 ns. I figuren illustreras och byggblocken 2a, 4a, 6a registercellerna är betecknade la, 3a, 5a, 7a. Vid layout konstrueras ledningen som är formad som ett träd och som distribuerar klockan på chipet. Ett problem som man ofta stöter på är att skillnaden i fördröjning mellan de olika ändpunkterna kommer att ha en spridning som är för stor. Detta refereras också till såsom klockskevning. Det är önskvärt att ha en variation som är Inaximalt +/- 2% (i detta fallet), vilket här skulle få som ett resultat en skevning på +/- 0,l ns (5 ns x 0,02 = +/- 0,1 ns). antalet ändpunkter inte så stort, chipet var mindre, målfrekvensen I äldre konstruktioner var var i allmänhet lägre och därför var detta inte ett allvarligt problem. Dessutom, vilket man har insett enligt föreliggande hade fördröjningen beroende på ledningarna inte något Emellertid med de uppfinning, större inflytande på den totala fördröjningen. idag användna DSM-teknologierna har konstruktionsarbetet vad det gäller klockningen blivit mycket komplicerat och tidskrävande. Det är inte möjligt att analysera den slutliga variationen i klockning förrän layouten av konstruktionen har fullbordats. Om det antas 10 15 20 25 30 516 166 14 att det detekteras under analys att variationen är +/- 5% , ger detta en klockskevning på 5ns x 0,05 = +/- 0,25 ns. Detta betyder att den tid det tar för klocksignalen att nå exempelvis registercell 7a (c) är 0,25 ns längre än det tar för klocksignalen att nå exempelvis registercell Ba (a). Följaktligen ersätts de första registercellerna med modifierade registerceller som är tillgängliga i cellbiblioteket. Det är således enkelt att reparera de timingproblem som detekteras under layout utan att ändra läget för några av cellerna eller ledningarna vilket betyder att det inte finns någon risk för att nya problem skall introduceras.Fig. 3A shows another embodiment in which the structure has a target frequency of 200 MHz corresponding to a cycle time of 5 ns. The figure illustrates and the building blocks 2a, 4a, 6a the register cells are designated 1a, 3a, 5a, 7a. In layout, the wire is designed which is shaped like a tree and which distributes the clock on the chip. A problem that is often encountered is that the difference in delay between the different endpoints will have a spread that is too large. This is also referred to as clock warping. It is desirable to have a variation that is Inaximal +/- 2% (in this case), which here would result in a skew of +/- 0, 1 ns (5 ns x 0.02 = +/- 0 , 1 ns). the number of endpoints was not so large, the chip was smaller, the target frequency In older constructions was was generally lower and therefore this was not a serious problem. In addition, as has been realized in the present invention, the delay due to the wires had no However, with the invention, greater influence on the overall delay. The DSM technologies used today, the design work in terms of clocking has become very complicated and time consuming. It is not possible to analyze the final variation in clocking until the layout of the design has been completed. Assuming that it is detected during analysis that the variation is +/- 5%, this gives a clock skew of 5ns x 0.05 = +/- 0.25 ns. This means that the time it takes for the clock signal to reach, for example, register cell 7a (c) is 0.25 ns longer than it takes for the clock signal to reach, for example, register cell Ba (a). Consequently, the first register cells are replaced with modified register cells available in the cell library. It is thus easy to repair the timing problems detected during layout without changing the position of any of the cells or wires, which means that there is no risk of new problems being introduced.

Fig 3B visar registercell , exempelvis en vippa med modifierade set-up respektive hålltider, som kan användas i utförandet enligt Fig 3A.Fig. 3B shows a register cell, for example a rocker with modified set-up and holding times, respectively, which can be used in the embodiment according to Fig. 3A.

Fig 4A visar ett utförande med en konstruktion för vilken timingproblemen detekteras under layout. Målfrekvensen antas vara 100 MHz vilket tids(timing)analys utförs efter layout, fastställes att en del av svarar mot en cykeltid på 10 ns. När en konstruktionen, nämligen de byggblock som innehåller den logiska cellen 4b, har en cykeltid på 15 ns. Byggblocken 2b och 6b har en cykeltid som svarar mot 9 ns respektive 6 ns, d.v.s dessa delar av konstruktionen kommer att uppfylla tidskraven.Fig. 4A shows an embodiment with a construction for which the timing problems are detected during layout. The target frequency is assumed to be 100 MHz, which time (timing) analysis is performed according to layout, it is determined that a part of corresponds to a cycle time of 10 ns. When a structure, namely the building blocks containing the logic cell 4b, has a cycle time of 15 ns. Building blocks 2b and 6b have a cycle time corresponding to 9 ns and 6 ns, respectively, i.e. these parts of the construction will meet the time requirements.

Cellbiblioteket innehåller emellertid alternativa registerceller.However, the cell library contains alternative register cells.

I detta fall ersattes således registercell 3b med en alternativ registercell 3b' som har en negativ fördröjning i jämförelse med den första registercellen 3b vilket betyder att cykeltiden kommer att bli 9+1=l0 ns. Registercell 5b ersätts på ett liknande sätt med en alternativ registercell 5b' med en kortare fördröjning på 4 ns jämfört med den ordinarie eller första registercellen 5b.In this case, register cell 3b is thus replaced by an alternative register cell 3b 'which has a negative delay in comparison with the first register cell 3b, which means that the cycle time will be 9 + 1 = 10 ns. Register cell 5b is similarly replaced by an alternative register cell 5b 'with a shorter delay of 4 ns compared to the ordinary or first register cell 5b.

Således kommer cykeltiden för det logiska byggblocket 4b att bli 15-4-l=l0 ns. Cykeltiden för byggblock 6b kommer på motsvarande 10 15 20 25 30 516 166 15 sätt att bli 6+4=l0 ns. Således är det möjligt att, med användnig av ett optimeringsverktyg såsom föreslås genom föreliggande uppfinning, reparera de tids(timing)problem som detekteras under layout eller efter layout utan att vare sig ändra läget för några celler eller att ändra ledningsstrukturen.Thus, the cycle time of the logic building block 4b will be 15-4-1 = 10 ns. The cycle time for building block 6b will in the corresponding manner be 6 + 4 = 10 ns. Thus, using an optimization tool as proposed by the present invention, it is possible to repair the timing problems detected during layout or after layout without changing the position of any cells or changing the line structure.

Det är således, enligt uppfinningen, möjligt att fördröja klockan och distribuera tid som inte används till problemområden där tid behövs.Thus, according to the invention, it is possible to delay the clock and distribute time that is not used to problem areas where time is needed.

Fig 4C visar en registercell av vipptyp med modifierade set-up och hålltider som kan användas.Fig. 4C shows a tilt type register cell with modified set-ups and hold times that can be used.

Fig 5 visar ett flödesdiagram som relaterar till kretsdesign startande med en layout, 100, eftersom de föregående stegen ej är av intresse för föreliggande uppfinning.Fig. 5 shows a flow chart relating to circuit design starting with a layout, 100, since the foregoing steps are not of interest to the present invention.

På layoutsteget följer en tidsanalys eller en verifikation, 101. I detta utförande används analysen för att jämföra cykeltiden tj för Bj;j=l,m,M cykeltid TC,l02. som är definierad för konstruktionen och alla block bör uppfylla byggblocken som utgör konstruktionen med önskad Den önskade cykeltiden TC ges av den målfrekvens kraven vad det gäller den önskade cykeltiden. För varje byggblock 103. söker man efter alternativa registerceller i cellbiblioteket genom undersöks således vilka TC ej skulle överskridas, 104. När man har hittat en sådan, företrädesvis en alternativ registercell genom vilken man kommer emellertid är också andra alternativ det block för Registercellen, TC så nära som möjligt; möjliga, exempelvis om finns många vilka tidskravet(kraven) ej uppfylles. som också kallas en första registercell eftersom den redan var på plats vid layout (första) eller när en verifikation utfördes under/efter layout, ersätts då av en alternativ registercell, 105. 10 15 20 25 30 516 166 16 Därefter kontrolleras de följande byggblocken Bp¿ (i vilken önskad ordning som helst, eller också väsentligen samtidigt; huvudsaken är att detekteringen görs för alla byggblock).The layout step is followed by a time analysis or a verification, 101. In this embodiment, the analysis is used to compare the cycle time tj for Bj; j = 1, m, M cycle time TC, 10 2. which is defined for the construction and all blocks should meet the building blocks that make up the construction with the desired The desired cycle time TC is given by the target frequency requirements with regard to the desired cycle time. For each building block 103. you search for alternative register cells in the cell library by examining which TCs would not be exceeded, 104. Once you have found one, preferably an alternative register cell through which you come, however, other alternatives are also the block for the register cell, TC so as close as possible; possible, for example if there are many for whom the time requirement (requirements) are not met. which is also called a first register cell because it was already in place at layout (first) or when a verification was performed during / after layout, is then replaced by an alternative register cell, 105. 10 15 20 25 30 516 166 16 Then the following building blocks Bp are checked ¿(In any desired order, or also substantially simultaneously; the main thing is that the detection is done for all building blocks).

Det är emellertid också möjligt att bara kontrollera ett antal byggblock, såsom exempelvis de byggblock som man antar vara kritiska för fördröjningar eller enligt några andra kriterier. Om det emellertid detekterades att tj ej överskred TC, görs en kontroll för att se om tj allmänhet inte nâgra åtgärder. Om tj undersökas för att se om det finns några alternativa registerceller som har en fördröjning genom vilka tj kommer närmare TC, 106. Om ja, kan en sådan alternativ cell användas,l07.However, it is also possible to check only a number of building blocks, such as the building blocks that are assumed to be critical for delays or according to some other criteria. However, if it was detected that tj did not exceed TC, a check is made to see if tj generally does not take any action. If tj is examined to see if there are any alternative register cells that have a delay through which tj gets closer to TC, 106. If yes, such an alternative cell can be used, l07.

På detta sätt kan tid omdistribueras utöver konstruktionen på ett sådant sätt att problemområden kan sägas tilldelas tid som är tillgänglig från andra områden. När, i detta utföringsexempel, alla byggblock har undersökts, 108, avslutas proceduren, 109. Då kan t ex en ytterligare verifikation utföras.In this way, time can be redistributed in addition to the design in such a way that problem areas can be said to be allocated time that is available from other areas. When, in this exemplary embodiment, all building blocks have been examined, 108, the procedure is terminated, 109. Then, for example, an additional verification can be performed.

Fig 6 visar ett flödesdiagram som illustrerar ett utförande för minimering av variationen i klockning av olika registerceller.Fig. 6 shows a flow chart illustrating an embodiment for minimizing the variation in clocking of different register cells.

Fig 5 och Fig 6 relaterar till två olika utföranden, nämligen relaterande till att hantera fallet när ett givet tidskrav ej uppfylles och för att minimera variationen i klockning. Det senare kan gälla oavsett om cykeltiden uppfylles för alla byggblock eller ej; det kan fortfarande finnas en variation. Utförandena kan också kombineras.Fig. 5 and Fig. 6 relate to two different embodiments, namely related to handling the case when a given time requirement is not met and to minimize the variation in clocking. The latter can apply regardless of whether the cycle time is met for all building blocks or not; there may still be a variation. The designs can also be combined.

Också här inleds med en layout, 200. En timinganalys (verifikation) utförs därpå, 201. Klockningen av registercell Ci jämförs därpå med ett förutbestämt maximalt skevningsvärde, &mx, 202. Detta görs i det att skevningen för respektive registercell jämförs med absolutvärdet på ämx. Om skevningen är mindre än &mx, 10 15 20 25 30 516 166 âï* - ~ i 17 behålles registercellen Ci, 203A. Om emellertid skevningen överskrider |&mx|, söks efter en alternativ registercell Ca(i) i cellbiblioteket, 204. Om, eller när, den hittas, ersätts Ci av Ca(i), 205. Därpå fortsätts med följande registercell (i vilken ordning som helst eller väsentligen samtidigt) CU4, osv vilken undersöks, 206. Därpå avslutas proceduren, 207, även om en ytterligare verifikation kan utföras liksom andra steg som inte är relevanta för föreliggande uppfinning. Detta faller emellertid utanför ramen för föreliggande uppfinning.Here, too, it begins with a layout, 200. A timing analysis (verification) is then performed, 201. The clocking of register cell Ci is then compared with a predetermined maximum skew value, & mx, 202. This is done by comparing the skew for each register cell with the absolute value of emx. If the skew is less than & mx, 10 15 20 25 30 516 166 âï * - ~ i 17 the register cell Ci, 203A is retained. However, if the skew exceeds | & mx |, an alternative register cell Ca (i) is searched in the cell library, 204. If, or when, it is found, Ci is replaced by Ca (i), 205. Then proceed with the following register cell (in which order preferably or substantially simultaneously) CU4, etc. which is examined, 206. Thereafter, the procedure, 207, is terminated, although a further verification may be performed as well as other steps not relevant to the present invention. However, this falls outside the scope of the present invention.

Det är en fördel med föreliggande uppfinning, utöver de fördelar som redan omnämnts ovan, att ingen krävande omkonstruktion behövs vilket i sig skulle involvera långa och tunga beräkningar.It is an advantage of the present invention, in addition to the advantages already mentioned above, that no demanding redesign is needed which in itself would involve long and heavy calculations.

Dessutom kan redan existerande verktyg användas, och dessa behöver inte förses med några ytterligare funktionaliteter, vilket betyder att det verktyg som används för att analysera konstruktionen relaterande till tid, område och effekt kan användas. Förklaringen till detta är att de används med värden som redan beskrivs i cellmodellerna. Emellertid kan implementering av stöd för en sådan optimeringsteknik i verktygen för tidsoptimering i layouten krävas. Ytterligare registerceller tillhandahålls som har modifierade klockfördröjningar.In addition, existing tools can be used, and these do not need to be provided with any additional functionalities, which means that the tool used to analyze the design related to time, area and power can be used. The explanation for this is that they are used with values already described in the cell models. However, implementation of support for such an optimization technique in the time optimization tools in the layout may be required. Additional register cells are provided which have modified clock delays.

Således kan de allvarliga problem som relaterar till tids(timing)krav för en konstruktion, som ofta först upptäckts efter layout, lösas. Genom användningen av det uppfinningsmässiga konceptet blir sannolikheten hög att en konstruktör kan komma igenom layouten redan vid det första försöket.Thus, the serious problems related to timing requirements for a design, which are often first discovered after layout, can be solved. Through the use of the inventive concept, the probability becomes high that a designer can get through the layout already at the first attempt.

Uppfinningen är givetvis inte begränsad till de explicit illustrerade utföringsexemplen utan den kan varieras på ett antal sätt inom ramen för vidhängande patentkrav.The invention is of course not limited to the explicitly illustrated embodiments, but it can be varied in a number of ways within the scope of the appended claims.

Claims (24)

10 15 20 25 30 516 166 çfiäwïëfifiyfihwfiëfi 18 PATENTKRAV10 15 20 25 30 516 166 ç fi äwïë fifi y fi hw fi ë fi 18 PATENTKRAV 1. l. En anordning för styrning av timing under/efter layout av ett digitalt, (funktionella) innefattar ett antal (2,4,6;2a,4a,6a;2b,4b,6b), och ett antal klockade första (1,3,5,7;la,3a,5a,7a;lb,3b,5b,7b;lb',3b',5b',7b'), exempelvis en för varje byggblock, cellen (cellerna) i byggblocken (2,4,6;2a,4a,6a;2b,4b,6b), där ett cellbibliotek är logiskt kretssystem som byggblock som vardera innefattar ett antal celler, registerceller ansvariga för aktivering av information om och/eller som klockar anordnat som innehåller tillgängliga celler och åtminstone en systemklocka (frekvenser) de första registercellerna (l,3,5,7;la,3a,5a,7a;lb,3b,5b,7b; lb',3b',5b',7b'), k ä n n e t e c k n a d d ä r a v delsystemklocka med en given màlfrekvens att ett antal alternativa registerceller som har ett antal olika fördröjningar tillhandahålles i cellbiblioteket och att medel är anordnade för att ersätta en eller flera första registerceller (l,3,5,7;1a,3a,5a,7a;1b,3b,5b,7b;lb',3b',5b',7b') alternativa med lämpliga, registerceller som har en annorlunda, lämplig, fördröjning utan att förändra konstruktionen och layouten av kretssystemet.A device for controlling the timing during / after layout of a digital, (functional) comprises a number (2,4,6; 2a, 4a, 6a; 2b, 4b, 6b), and a number of clocked first ( 1,3,5,7; 1a, 3a, 5a, 7a; lb, 3b, 5b, 7b; lb ', 3b', 5b ', 7b'), for example one for each building block, the cell (s) in the building blocks ( 2,4,6; 2a, 4a, 6a; 2b, 4b, 6b), where a cell library is a logic circuit system as a building block each comprising a number of cells, register cells responsible for activating information about and / or clocks arranged containing available cells and at least one system clock (frequencies) the first register cells (1, 3,5,7; 1a, 3a, 5a, 7a; 1b, 3b, 5b, 7b; lb ', 3b', 5b ', 7b'), k A subset clock with a given target frequency indicates that a number of alternative register cells having a number of different delays are provided in the cell library and that means are provided for replacing one or more first register cells (1, 3,5,7; 1a, 3a, 5a , 7a; 1b, 3b, 5b, 7b; lb ', 3b', 5b ', 7b') alternative with leave duty, register cells that have a different, appropriate, delay without changing the design and layout of the circuit system. 2. En anordning enligt patentkrav l, k ä n n e t e c k n a d d ä r a v utföra en ett antal att tidsanalyseringsmedel är anordnade för att tidsanalys vid/efter layout och att om cellerna i byggblock ej uppfyller kravet på målfrekvens, såsom definierad av systemklockan/delsystemklockan klockar ersätts den/de alternativa registerceller som innehålles i. cellbiblioteket och som cellerna, åtminstone registercell(er) som aktiverar dem med som har annorlunda fördröjningar så att respektive málfrekvenskrav kan uppfyllas. 10 15 20 25 30 s 16 166 ä* ~ 19A device according to claim 1, characterized in that a number of time analysis means are arranged for time analysis at / after layout and that if the cells in building blocks do not meet the target frequency requirement, as defined by the system clock / subsystem clock, it is replaced / the alternative register cells contained in the cell directory and by which the cells, at least register cell (s) which activate those with different delays so that the respective target frequency requirements can be met. 10 15 20 25 30 s 16 166 ä * ~ 19 3. En anordning enligt patentkrav 1 eller 2, k ä n n e t e c k n a d d ä r a v i jämförelse med åtminstone ett antal första registerceller, tillhandahàlles alternativa registerceller i cellbiblioteket vilka nar en positiv eller längre fördröjning jämfört med den respektive första registercellen.A device according to claim 1 or 2, characterized in that in comparison with at least a number of first register cells, alternative register cells are provided in the cell library which have a positive or longer delay compared to the respective first register cell. 4. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a V ' att i jämförelse med åtminstone ett antal första registerceller, tillhandahålles alternativa registerceller i cellbiblioteket vilka har en negativ eller kortare fördröjning jämfört med respektive första registercell.A device according to any one of the preceding claims, characterized in that in comparison with at least a number of first register cells, alternative register cells are provided in the cell library which have a negative or shorter delay compared with the respective first register cell. 5. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att cellerna är förbundna genom ledningar som har en linjebredd på mindre än eller lika med 0,35 pm.A device according to any one of the preceding claims, characterized in that the cells are connected by wires having a line width of less than or equal to 0.35 μm. 6. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att alternativa registerceller som inkluderas i cellbiblioteket distributionen av till används för att minimera variationen i klocksignalen från systemklockan/delsystemklockan olika byggblock som klockas av samma klocka.A device according to any one of the preceding claims, characterized in that alternative register cells included in the cell library distribution of to are used to minimize the variation in the clock signal from the system clock / subsystem clock to different building blocks clocked by the same clock. 7. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att de alternativa används registercellerna för att optimera timing av klockningen av registercellerna. 10 15 20 25 30 51 6 166 * 20A device according to any one of the preceding claims, characterized in that the alternatives use the register cells to optimize the timing of the clocking of the register cells. 10 15 20 25 30 51 6 166 * 20 8. En anordning enligt patentkrav 7, k ä n n e t e c k n a d d ä r a v att första registerceller som klockas för sent i förhållande till màlfrekvensen ersätts med andra första registerceller som har en kortare fördröjning, så att alla registerceller klockas på ett sådant sätt att åtminstone kravet på màlfrekvensen uppfylles.A device according to claim 7, characterized in that first register cells which are clocked too late in relation to the target frequency are replaced by other first register cells which have a shorter delay, so that all register cells are clocked in such a way that at least the target frequency requirement is met. . 9. En anordning enligt något av patentkraven 1-7, k ä n n e t e c k n a d d ä r a v att första registerceller som klockas för sent i förhållande till en given målfrekvens ersätts med alternativa registerceller som har en kortare fördröjning och att celler som klockas för tidigt i förhållande till den givna màlfrekvensen ersätts med alternativa registerceller som har en alla längre fördröjnig, så att registerceller klockas väsentligen vid samma tidpunkt.A device according to any one of claims 1-7, characterized in that first register cells which are clocked too late in relation to a given target frequency are replaced by alternative register cells which have a shorter delay and that cells which are clocked too early in relation to the given target frequency is replaced by alternative register cells which have an all longer delay, so that register cells are clocked substantially at the same time. 10. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att Gate Array (FPGA)-tekniken används för att konstruera kretsen.A device according to any one of the preceding claims, characterized in that the Gate Array (FPGA) technique is used to construct the circuit. 11. En anordning enligt något av patentkraven l-9, k ä n n e t e c k n a d d ä r a v att standardcellteknologin används för att konstruera kretsen.A device according to any one of claims 1 to 9, characterized in that the standard cell technology is used to construct the circuit. 12. En anordning enligt något av patentkraven 1-9 eller ll, k ä n n e t e c k n a d d ä r a v att kretsen implementeras som en ASIC.A device according to any one of claims 1-9 or 11, characterized in that the circuit is implemented as an ASIC. 13. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v alternativa att registercellerna och de biblioteket bl.a. registercellerna i definieras genom en set-up fördröjning, en hålltidsfördröjning och en intrinsisk fördröjning och att set-up 10 15 20 25 30 1 000 nu »n II*'° : , q q 0 0 0 516 166 ~ - ilÉišÉi= 21 och hålltidsfördröjningarna modifieras genom en positiv eller negativ fördröjning som möjliggör skevning av klockningen av registercellerna.A device according to any one of the preceding claims, characterized in that the register cells and the library e.g. the register cells i are defined by a set-up delay, a hold-time delay and an intrinsic delay and that set-up 10 15 20 25 30 1 000 nu »n II * '°:, qq 0 0 0 516 166 ~ - ilÉišÉi = 21 and the hold-time delays modified by a positive or negative delay that allows the clock cells to be skewed. 14. En anordning enligt patentkrav 13, k ä n n e t e c k n a d d ä r a v registercellerna och de alternativa registercellerna består av vippor eller hållelement.A device according to claim 13, characterized in that the register cells and the alternative register cells consist of rockers or holding elements. 15. Ett förfarande för att styra timing i ett digitalt, logiskt kretssystem, innefattande ett antal (2,4,6;2a,4a,6a;2b,4b,6b), celler, under layout, där förfarandet kännetecknas genom stegen att: byggblock som vardera innefattar ett antal - utföra en layout av kretsen, - definiera krav för klockning av registerceller för aktivering (cellerna) i innehåller av cellen respektive byggblock som sagda celler, - undersöka om den eller de (första) registercellerna i ett antal byggblock klockas pà ett sådant sätt att de givna kraven uppfylles; om ej, - ersätta den eller de (första) registercellen (cellerna) som ej uppfyller de givna kraven med andra registercell(er) som har en fördröjning som skiljer sig ifrån den som den ersatta cellen har så att tidskraven kan uppfyllas utan att förändra konstruktionen och layouten av kretssystemet.A method for controlling timing in a digital logic circuit system, comprising a plurality (2,4,6; 2a, 4a, 6a; 2b, 4b, 6b), cells, under layout, the method being characterized by the steps of: building blocks that each comprise a number - perform a layout of the circuit, - define requirements for clocking register cells for activation (the cells) in contains of the cell and building blocks as said cells, - examine whether the (first) register cells in a number of building blocks are clocked in such a way that the given requirements are met; if not, - replace the register cell (s) that do not meet the given requirements with other register cell (s) that have a delay different from that of the replaced cell so that the time requirements can be met without changing the design and the layout of the circuit system. 16. k ä n n e t e c k n a t d ä r a v Förfarandet enligt patentkrav 15, att ett krav består i att; - definiera en målfrekvens för systemet, eller för en del av systemet som bildar ett delsystem, som klockningen av qøoonu n 10 15 :o 25 30 .n n. n - n .vas-_ Ja." .un no .,.. nun. Û I É-Ü... v ~. e. gu; z ":' ,' '. n ' ° ' .o- un. .un I* 0' ' ' ' ' " . a o 22 registercellerna måste uppfylla; om en registercell klockas på ett sådant sätt att kravet på målfrekvens ej uppfylles, - ersätta den (första) registercellen med en alternativ registeroell så att klockningen åtminstone bättre uppfyller kravet på målfrekvensen.16. The method of claim 15, wherein a claim comprises that; - define a target frequency for the system, or for a part of the system which forms a subsystem, such as the clock of qøoonu n 10 15: o 25 30 .n n. n - n .vas-_ Ja. ".un no., .. nun. Û I É-Ü ... v ~. e. gu; z ": ',' '. n '°' .o- un. .un I * 0 '' '' "" ao 22 register cells must meet; if a register cell is clocked in such a way that the target frequency requirement is not met, - replace the (first) register cell with an alternative register cell so that the clock at least better meets the requirement for the target frequency. 17. Förfarandet enligt patentkrav 16, k ä n n e t e c k n a t d ä r a v att en (första) ersätts med alternativ registercell en registercell så att målfrekvenskravet uppfylles.The method according to claim 16, characterized in that a (first) is replaced by an alternative register cell, a register cell so that the target frequency requirement is met. 18. Förfarandet enligt något av patentkraven 15-17, k ä n n e t e c k n a t d ä r a v att ett krav består i, - fastställa en minimivariation för klockning av olika registerceller, - ersätta (första) registerceller med alternativa registerceller för att åtminstone bättre kunna uppfylla kraven relaterande till minimivariation för klockning av registerceller.The method according to any one of claims 15-17, characterized in that a requirement consists of, - establishing a minimum variation for clocking different register cells, - replacing (first) register cells with alternative register cells in order to at least better meet the requirements related to minimum variation for clock cell register. 19. Förfarandet enligt något av patentkraven 15-17, k ä n n e t e c k n a t d ä r a v att ett krav består i att minimera variationen i klockning av registerceller.The method according to any one of claims 15-17, characterized in that a requirement consists in minimizing the variation in clocking of register cells. 20. Förfarandet enligt något av patentkraven 15-19, k ä n n e t e c k n a t d ä r a v att det innefattar stegen att: - tillhandahålla fördröjningar i ett cellbibliotek, alternativa registerceller som har olika 10 15 20 25 30 s 1 s 166 šïâ m1- 23 - använda sagda alternativa celler för att uppfylla det givna målfrekvenskravet och/eller för att minimera variationen i klockning av de (första) registercellerna.The method according to any one of claims 15-19, characterized in that it comprises the steps of: - providing delays in a cell library, alternative register cells having different said uses. alternative cells to meet the given target frequency requirement and / or to minimize the variation in clocking of the (first) register cells. 21. Förfarandet enligt något av patentkraven 15-20, k ä n n e t e c k n a t d ä r a v att första ersätts med en eller flera andra som klockar byggblock för att och/eller för att registerceller registerceller andra uppfylla variationen i tillhandahållande målfrekvenkravet minimera klockning av registerceller, således för en omfördelning av tid i systemet.The method according to any one of claims 15-20, characterized in that the first is replaced by one or more others which clock building blocks in order to and / or for register cells register cells second meet the variation in the provision target frequency requirement minimize clocking of register cells, thus for a reallocation of time in the system. 22. Förfarandet enligt patentkrav 20 eller 21, k ä n n e t e c k n a t d ä r a v att om en första registercell klockas för sent, ersätts den av en alternativ registercell eller av en annan registercell för klockning av ett annat byggblock, som har en för lång fördröjning, om en sådan är tillgänglig, och vice versa.The method according to claim 20 or 21, characterized in that if a first register cell is clocked too late, it is replaced by an alternative register cell or by another register cell for clocking another building block, which has a too long delay, if a such is available, and vice versa. 23. Förfarandet enligt något av patentkrav 16-22, k ä n n e t e c k n a t d ä r a v att registercellerna innefattar vippor eller hållelement.The method according to any one of claims 16-22, characterized in that the register cells comprise flip-flops or holding elements. 24. Förfarandet enligt något av patentkraven 15-23, k ä n n e t e c k n a t d ä r a v att det används för att minimera spridningen i klockning av olika byggblock i ett och samma system eller delsystem och för att få så många registerceller som möjligt att uppfylla ett givet krav på målfrekvens. ønaøuoThe method according to any one of claims 15-23, characterized in that it is used to minimize the spread in clocking of different building blocks in one and the same system or subsystem and to get as many register cells as possible to meet a given requirement of target frequency. ønaøuo
SE9902079A 1999-06-04 1999-06-04 An apparatus and method relating to timing of circuits SE516166C2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
SE9902079A SE516166C2 (en) 1999-06-04 1999-06-04 An apparatus and method relating to timing of circuits
AU54362/00A AU5436200A (en) 1999-06-04 2000-06-02 An arrangement and a method relating to design of circuits
PCT/SE2000/001146 WO2000075815A1 (en) 1999-06-04 2000-06-02 An arrangement and a method relating to design of circuits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9902079A SE516166C2 (en) 1999-06-04 1999-06-04 An apparatus and method relating to timing of circuits

Publications (3)

Publication Number Publication Date
SE9902079D0 SE9902079D0 (en) 1999-06-04
SE9902079L SE9902079L (en) 2000-12-05
SE516166C2 true SE516166C2 (en) 2001-11-26

Family

ID=20415907

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9902079A SE516166C2 (en) 1999-06-04 1999-06-04 An apparatus and method relating to timing of circuits

Country Status (3)

Country Link
AU (1) AU5436200A (en)
SE (1) SE516166C2 (en)
WO (1) WO2000075815A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7302657B2 (en) 2001-10-29 2007-11-27 Telefonaktiebolaget L M Ericsson (Publ) Optimization of the design of a synchronous digital circuit
DE60139260D1 (en) * 2001-10-29 2009-08-27 Ericsson Telefon Ab L M Optimizing the design of a synchronous digital circuit
US6647540B2 (en) * 2001-11-08 2003-11-11 Telefonaktiebolaget Lm Ericsson(Publ) Method for reducing EMI and IR-drop in digital synchronous circuits
WO2007029051A1 (en) * 2005-09-07 2007-03-15 Freescale Semiconductor Inc. Method and a computer readable medium for analyzing a design of an integrated circuit

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455931A (en) * 1993-11-19 1995-10-03 International Business Machines Corporation Programmable clock tuning system and method
US5507029A (en) * 1995-01-11 1996-04-09 International Business Machines Corporation Method for minimizing the time skew of electrical signals in very large scale integrated circuits
US5778216A (en) * 1995-06-30 1998-07-07 Cadence Design Systems, Inc. Method for hierarchical time drive circuit layout by rebudgeting timing constraints of plurality of logical blocks after placement
US5724250A (en) * 1996-02-07 1998-03-03 Unisys Corporation Method and apparatus for performing drive strength adjust optimization in a circuit design
JPH1063703A (en) * 1996-08-26 1998-03-06 Toshiba Corp Method for designing low power consumption circuit

Also Published As

Publication number Publication date
SE9902079L (en) 2000-12-05
SE9902079D0 (en) 1999-06-04
AU5436200A (en) 2000-12-28
WO2000075815A1 (en) 2000-12-14

Similar Documents

Publication Publication Date Title
CN110377922B (en) Method, device and equipment for repairing hold time violations
EP3943960B1 (en) Method and apparatus for testing a chip, and chip thereof
US7069523B2 (en) Automated selection and placement of memory during design of an integrated circuit
US7251803B2 (en) Memory re-implementation for field programmable gate arrays
US8860458B2 (en) Integrated circuits with logic regions having input and output bypass paths for accessing registers
US8201130B1 (en) Parallel signal routing
US20200333872A1 (en) Methods and apparatus for selectively extracting and loading register states
US7900163B2 (en) Method and apparatus for identifying redundant scan elements
WO2014130097A1 (en) Software debugging of synthesized hardware
US9298866B1 (en) Method and system for modeling a flip-flop of a user design
US10068048B1 (en) Generating clock trees for a circuit design
US10891413B1 (en) Incremental initialization by parent and child placer processes in processing a circuit design
US10218358B2 (en) Methods and apparatus for unloading data from a configurable integrated circuit
US8522185B1 (en) Method for placement and routing of a circuit design
US10262096B2 (en) Component placement with repacking for programmable logic devices
US9773083B1 (en) Post-placement and pre-routing processing of critical paths in a circuit design
US20040001296A1 (en) Integrated circuit, system development method, and data processing method
US9230047B1 (en) Method and apparatus for partitioning a synthesis netlist for compile time and quality of results improvement
US8196081B1 (en) Incremental placement and routing
US10664561B1 (en) Automatic pipelining of memory circuits
US9965581B1 (en) Fanout optimization to facilitate timing improvement in circuit designs
US9792395B1 (en) Memory utilization in a circuit design
SE516166C2 (en) An apparatus and method relating to timing of circuits
US9710583B2 (en) Information processing apparatus, state machine dividing method, and computer-readable recording medium
US7797666B1 (en) Systems and methods for mapping arbitrary logic functions into synchronous embedded memories

Legal Events

Date Code Title Description
NUG Patent has lapsed