DE102007017850A1 - Complex circuits partitioning method for e.g. verilog, involves successively providing essential influence on decision point of partitioning process during complete processing of process algorithm - Google Patents

Complex circuits partitioning method for e.g. verilog, involves successively providing essential influence on decision point of partitioning process during complete processing of process algorithm Download PDF

Info

Publication number
DE102007017850A1
DE102007017850A1 DE102007017850A DE102007017850A DE102007017850A1 DE 102007017850 A1 DE102007017850 A1 DE 102007017850A1 DE 102007017850 A DE102007017850 A DE 102007017850A DE 102007017850 A DE102007017850 A DE 102007017850A DE 102007017850 A1 DE102007017850 A1 DE 102007017850A1
Authority
DE
Germany
Prior art keywords
partitioning
algorithm
abstract
routing
resources
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
DE102007017850A
Other languages
German (de)
Inventor
Tobias Strauch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EDAPTABILITY E K
EDAPTABILITY EK
Original Assignee
EDAPTABILITY E K
EDAPTABILITY EK
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 EDAPTABILITY E K, EDAPTABILITY EK filed Critical EDAPTABILITY E K
Priority to DE102007017850A priority Critical patent/DE102007017850A1/en
Publication of DE102007017850A1 publication Critical patent/DE102007017850A1/en
Ceased legal-status Critical Current

Links

Classifications

    • 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

Abstract

The method involves separating complex circuits in abstract characteristics language into individual constituents. Static and dynamic connection resources of a target system are used, and an essential influence on a decision point of a partitioning process is successively provided during complete processing of a process algorithm. Partitioning of the complex circuits in the abstract characteristics language is implemented.

Description

Die Erfindung bezieht sich auf ein Verfahren mit dem komplexe Schaltungen auf abstrakter Ebene partitioniert werden, und optimale Ergebnisse zum einen hinsichtlich der sich ergebenen Systemfrequenz und zum anderen hinsichtlich der Ausnutzung vorhandener Verbindungsressourcen ergeben. Das Ergebnis der Partitionierung wird entsprechend der Verhaltenssprache des Eingabe Codes ausgegeben.The The invention relates to a method with the complex circuits partitioned at the abstract level, and optimal results on the one hand with regard to the resulting system frequency and the others regarding the use of existing connection resources result. The result of the partitioning is according to the behavioral language of the input code.

Stand der TechnikState of the art

Logische Schaltungen werden in verschiedenen abstrakten Sprachen (Verilog, VHDL, SystemC, ...) beschrieben und mittels eines SP&R (Synthese, Place und Route)-Verfahrens auf programmierbare Bausteine geladen oder zu Chips (bzw. ASICs) gefertigt. Bei der Verwendung von programmierbaren Bausteinen ist es meist nötig, die komplexe Schaltung auf mehrere dieser Bausteine aufzuteilen.logical Circuits are written in different abstract languages (Verilog, VHDL, System C, ...) and using an SP & R (Synthesis, Place and route) method loaded on programmable devices or manufactured to chips (or ASICs). When using programmable devices it is usually necessary to divide the complex circuit into several of these components.

Stand der Technik ist, dass die Schaltung in abstrakter Verhaltenssprache in eine Netzliste durch einen Synthese-Prozess umgewandelt wird. Die Schaltung in abstrakter Verhaltenssprache besteht ebenfalls aus abstrakten Elementen, die durch den Synthese Prozess in jeweils vielfache Einzelelemente aufgeteilt wird. Es besteht also ein direkter Zusammenhang zwischen einem Element in einer abstrakten Verhaltenssprache und dessen Repräsentation mit vielfachen Einzelelementen, die jedoch meistens nicht mehr schlüssig mit der Ausgangsbeschreibung in Verbindung gebracht werden können. Diese Netzliste besteht dann aus mehreren Millionen Einzelelementen, sog. Gatter und wird nun auf das entsprechende Zielsystem partitioniert.was standing The technique is that the circuit is in abstract behavioral language is converted into a netlist by a synthesis process. The circuit in abstract behavioral language exists as well from abstract elements through the synthesis process in each case multiple individual elements is divided. So there is a direct one Relationship between an element in an abstract behavioral language and its representation with multiple individual elements, but mostly no longer conclusive with the description of the source. These Netlist then consists of several million individual elements, so-called. Gate and is now partitioned to the appropriate target system.

Nach Aufteilung der Gatter werden die Verbindungsressourcen des Zielsystems so eingestellt, dass das partitionierte System optimal abgebildet werden kann. Es findet hier der im folgenden als Routing bezeichnete Vorgang statt, also das Verknüpfen von Schaltungssignalen mit Routingressourcen zwischen programmierbaren Bausteinen (auf einer Platine). Durch statische Zeit-Analyse wird die sich ergebene maximale Systemfrequenz festgestellt.To Division of the gates become the connection resources of the target system adjusted to optimally map the partitioned system can. It takes here the process referred to below as routing instead of linking Circuit signals with routing resources between programmable Building blocks (on a circuit board). By static time analysis is the resulting maximum system frequency detected.

Der im Schutzanspruch 1 angegebenen Erfindung liegt das Problem zugrunde, dass die Aufteilung von mehreren Millionen Einzelelementen/Gattern zeitaufwendig und rechenintensiv ist und meistens zu nicht optimalen Ergebnissen führt. Weitere Probleme ergeben sich durch die Partitionierung nach dem Synthese-Schritt dadurch, dass Busse in Einzelsignale zerlegt werden, sowie Einzelelemente nicht mehr eindeutig identifiziert werden und in ihrer Beschreibung von der ursprünglichen, dem menschlichen Verständnis angelehnten Benennungen abweichen.Of the in claim 1 protection invention is based on the problem that the division of several million individual elements / gates time consuming and computationally intensive and mostly not optimal Results. Further problems result from the partitioning after the Synthesis step by splitting buses into individual signals as well as individual elements can no longer be clearly identified and in their description of the original, the human understanding different names.

Das Problem der Partitionierung von mehreren Millionen Einzelgatter wird mit den im Schutzanspruch 1.2.1 aufgeführten Merkmalen gelöst.The Problem of partitioning of several million single gates is solved with the features listed in the protection claim 1.2.1.

Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, dass die Partitionierung auf abstrakter Ebene geschieht. Durch die Partitionierung auf abstrakter Ebene wird sie auf einem wesentlich kompakteren Datensatz durchgeführt, da die Anzahl der Elemente, die zur Partitionierung herangezogen werden nur einem Bruchteil einer Netzliste entspricht. Somit kann ein automatisches Partitionierungs-Verfahren auf diesen kleineren und vom Informationsgehalt optimalen Datensatz aufsetzen. Zudem kann bei einem halbautomatischen Verfahren der Anwender die einzelnen Elemente nach menschlichen Verständnis identifizieren und diese Information in den Entscheidungsprozess mit einbeziehen. Es können voll- und halb-(Anwender) automatische Partitionierung verbunden werden.The particular advantages of the invention are Partitioning happens on an abstract level. By the Partitioning at the abstract level will make it essential more compact record done, because the number of elements used for partitioning are equivalent to only a fraction of a netlist. Thus, can an automatic partitioning method on this smaller one and set the optimal information record from the information content. moreover In a semiautomatic process, the user can do the individual Elements according to human understanding identify and use this information in the decision-making process to include. It can full and half (user) automatic partitioning connected become.

Der im Schutzanspruch 1 angegebenen Erfindung liegt das Problem zugrunde, dass bei einer Partitionierung vom Anwender definierte Randbedingungen hinsichtlich der Platzierung und des Routings eingehalten werden müssen. Ebenso gibt es Platzierungs- und Routingentscheidungen, die aufgrund ihrer Vielzahl nach einem formalen Algorithmus abgearbeitet werden sollten, um ein bestmögliches Ergebnis zu erreichen. Stand der Technik ist, dass der Routingalgorithmus erst nach einem abgeschlossenen Platzierungsalgorithmus folgt. Entspricht dann die Partitionierung nicht den gewünschten Ergebnissen, so wird eine neue Partitionierung gestartet.Of the in claim 1 protection invention is based on the problem in case of a partitioning the user defined boundary conditions in terms of placement and routing have to. Likewise, there are placement and routing decisions that are due to their variety are processed according to a formal algorithm should be to the best possible To reach the result. The state of the art is that of the routing algorithm only after a completed placement algorithm follows. Complies then the partitioning does not get the desired results, so will started a new partitioning.

Das Problem des jeweils unabhängigen Platzierungs- und Routingalgorithmen wird mit den im Schutzanspruch 1.2.2 aufgeführten Merkmalen gelöst.The Problem of each independent Placement and routing algorithms with the protection claim 1.2.2 listed Characteristics solved.

Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, dass nach jedem Platzierungsschritt der Routingalgorithmus unter Beachtung anwendungsspezifischer Routingbedingungen durchgeführt wird. Sind bereits bei einem der früheren Partitionierungs-Schritte anwendungsspezifische Routingbedingungen nicht mehr einzuhalten, so kann die Partitionierung rechtzeitig abgebrochen und alternative Partitionierungs-Prozesse betrachtet werden.The particular advantages of the invention are that after each placement step the routing algorithm under Attention to application-specific routing conditions. Are already at one of the earlier Partitioning steps no longer comply with application-specific routing conditions, so the partitioning can be canceled in time and alternative Partitioning processes are considered.

Der im Schutzanspruch 1 angegebenen Erfindung liegt das Problem zugrunde, dass die Berechnung der maximale Systemfrequenz bei einer partitionierten Netzliste mit erheblichen rechnerischen Aufwand verbunden ist. Dies bewirkt, dass die maximale Systemfrequenz erst am Ende eines jeden Partitionierungs-Prozesses errechnet wird. Wird am Ende eines Partitionierungs-Prozesses ein maximaler Wert überschritten, so wird eine neue Partitionierung gestartet.The protection specified in claim 1 invention is based on the problem that the calculation of the maximum system frequency is connected in a partitioned netlist with considerable computational effort. This causes the maximum system frequency to be calculated at the end of each partitioning process. If a maximum value is exceeded at the end of a partitioning process, a new partition is created started.

Das Problem der komplexen Berechnung der maximalen Systemfrequenz wird mit den im Schutzanspruch 1.2.3 aufgeführten Merkmalen gelöst.The Problem of the complex calculation of the maximum system frequency will be solved with the features listed in the protection claim 1.2.3.

Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, dass aufgrund der Partitionierung auf abstrakter Ebene im Zusammenspiel mit den dadurch möglichen Vereinfachungen die maximale Systemfrequenz innerhalb eines Bruchteils der Zeit berechnet werden kann, die für die Berechnung ausgehend von einer Netzliste benötigt wird. Somit kann diese nach jedem einzelnen Partitionierungs-Schritt neu berechnet werden. Wird bereits bei einem der früheren Partitionierungs-Schritte der maximale Wert überschritten, so kann die Partitionierung rechtzeitig abgebrochen und alternative Partitionierungs-Prozesse betrachtet werden.The particular advantages of the invention are that due to the partitioning at the abstract level in interaction with the thereby possible Simplifications the maximum system frequency within a fraction of the Time can be calculated based on the calculation needed from a netlist becomes. Thus, this can after every single partitioning step be recalculated. Already at one of the earlier partitioning steps the maximum value was exceeded, so the partitioning can be canceled in time and alternative Partitioning processes are considered.

Der im Schutzanspruch 1 angegebenen Erfindung liegt das Problem zugrunde, dass erst am Ende einer Partitionierung die statischen und dynamischen Verbindungsressourcen angepasst werden, nicht jedoch schon während des Partitionierungs-Prozesses. Das optimale Ausnutzen der Verbindungsressourcen hat aber wesentlichen Einfluss auf die maximale Schaltfrequenz. Wird auch hier am Ende eines Partitionierungs- und Routing-Prozesses ein maximaler Wert überschritten, so wird eine neue Partitionierung gestartet.Of the in claim 1 protection invention is based on the problem that only at the end of a partitioning the static and dynamic Connection resources are adjusted, but not during the Partitioning process. The optimal use of the connection resources but has a significant influence on the maximum switching frequency. Is also here at the end of a partitioning and routing process maximum value exceeded, so a new partitioning is started.

Das Problem des nachgelagerten Routing-Prozesses wird mit den im Schutzanspruch 1.2.4 aufgeführten Merkmalen gelöst.The Problem of the downstream routing process is with the protection claim 1.2.4 listed Characteristics solved.

Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, dass die statischen und dynamischen Verbindungsressourcen schon während des Partitionierens in die Berechnung der maximalen Schaltfrequenz mit einbezogen werden. Somit kann das Ergebnis optimiert werden, bzw. eine weniger vielversprechende Partitionierung, die die maximale Schaltfrequenz überschreitet, bereits am Anfang abgebrochen werden.The particular advantages of the invention are that the static and dynamic connection resources already while of partitioning in the calculation of the maximum switching frequency be included. Thus, the result can be optimized or less promising partitioning, which is the maximum Switching frequency exceeds, already be broken off at the beginning.

Der im Schutzanspruch 1 angegebenen Erfindung liegt das Problem zugrunde, dass das Ergebnis der Partitionierung in Form einer Netzliste vorliegt, die nicht mehr dem ursprünglichen Beschreibungscharakter besitzt (abstrakte Verhaltenssprache), und somit auch nicht mehr mit den gleichen Verifikationsmethoden auf ihre Korrektheit hin überprüft werden kann.Of the in claim 1 protection invention is based on the problem that the result of the partitioning is in the form of a netlist, which is no longer the original one Has descriptive character (abstract behavioral language), and thus no longer using the same verification methods their correctness are checked can.

Das Problem, dass das Ergebnis der Verifikation nur mit zusätzlichen Aufwand überprüft werden kann, wird mit den im Schutzanspruch 1.2.5 aufgeführten Merkmalen gelöst.The Problem that the result of verification only with additional Effort to be checked can, is with the features listed in the protection claim 1.2.5 solved.

Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, dass das Ergebnis der Partitionierung wieder in derselben Verhaltenssprache vorliegt. Somit kann die gleiche Verifikationsmethode, die auch zur Verifikation des Ausgangscodes verwendet wurde, benützt werden.The particular advantages of the invention are that the result of partitioning again in the same behavioral language is present. Thus, the same verification method can, too used to verify the output code.

Der im Schutzanspruch 1 angegebenen Erfindung liegt das Problem zugrunde, dass heutige SP&R (Synthese, Place- und Route)-Verfahren zusammenhängend optimiert sind. Ein Verfahren mit vorgelagertem Synthese-Prozess, der für die Partitionierung einer Netzliste nötig ist, mit einem dann folgenden P&R(Place- und Route)-Prozess erreicht suboptimale Ergebnisse.Of the in claim 1 protection invention is based on the problem that today's SP & R (Synthesis, place and route) methods are contiguously optimized. A procedure with upstream synthesis process, which is responsible for partitioning a Netlist necessary with a subsequent P & R (place- and route) process achieves suboptimal results.

Das Problem der suboptimalen Ergebnisse bei einem eigenständigen Synthese-Prozess und anschließendem P&R-Prozesses wird mit den im Schutzanspruch 1.2.5 aufgeführten Merkmalen gelöst.The Problem of suboptimal results in a stand-alone synthesis process and then P & R process is solved with the features listed in the protection claim 1.2.5.

Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, dass die Partitionierung vor dem Synthese-Prozess geschieht. Somit kann für jede Ressource ein lokaler, geschlossener SP&R-Prozess gestartet werden.The particular advantages of the invention are that the partitioning happens before the synthesis process. Consequently can for each Resource a local, closed SP & R process will be started.

Der im Schutzanspruch 1 angegebenen Erfindung liegt das Problem zugrunde, dass kleine Änderungen am Sourcecode bereits zur Folge haben, dass die gesamte Schaltung synthetisiert werden muss. Die neu entstehende Netzliste beinhaltet keine Informationen mehr darüber, an welcher Stelle die Änderung vorgenommen wurde. Dies hat meist zur Folge, dass der gesamte P&R Prozess (entsprechend für jede Ressource) neu gestartet werden muss.Of the in claim 1 protection invention is based on the problem that little changes at the source code already entail that the whole circuit must be synthesized. The newly created netlist includes no information about it, where the change is was made. This usually results in the entire P & R process (corresponding to for every Resource) must be restarted.

Das Problem, dass Änderungen im Sourcecode einen Synthese-Schritt der Gesamtschaltung sowie einen oder mehrere neue P&R-Schritte zur Folge haben, wird mit den im Schutzanspruch 1.2.5 aufgeführten Merkmalen gelöst.The Problem that changes in the source code a synthesis step of the overall circuit and a or several new P & R steps entail, is with the features listed in the protection claim 1.2.5 solved.

Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, dass nur die Ressource, die den geänderten Sourcecode als Grundlage zugeordnet wurde, einen lokalen SP&R Schritt durchführen muss. Die heutigen SP&R-Verfahren sind auch hinsichtlich inkrementeller Änderungen des Sourcecodes optimiert, so dass dieser Vorteil aufgrund der Erfindung genutzt werden kann. Somit kann eine Änderung im Sourcecode aufgrund der Erfindung in einem Bruchteil der Zeit eingearbeitet werden, die bisher für derartige Änderungen benötigt wurden.The particular advantages of the invention are that only the resource that uses the changed source code as a basis has been assigned to perform a local SP & R step. Today's SP & R procedures are optimized for incremental source code changes, so that this advantage can be used due to the invention. Thus, a change in source code due to the invention in a fraction of the time be incorporated, which so far for such changes needed were.

Ein Ausführungsbeispiel der Erfindung wird im Folgenden näher beschrieben.One embodiment The invention will be described in more detail below.

Es zeigenIt demonstrate

1: Beispiel für abstrakten Code 1 : Example of abstract code

2: Code Repräsentation aus Einzelelementen 2 : Code representation of single elements

3: Netzliste bestehend aus Gattern 3 : Netlist consisting of gates

4: Aufteilung in Einzelelemente 4 : Division into individual elements

5: Vereinfachte Berechnung der maximalen Schaltfrequenz 5 : Simplified calculation of the maximum switching frequency

1 zeigt ein Beispiel eines abstrakten Codes sowie dessen Elemente (1). 2 zeigt deren Repräsentation aus Einzelelementen (2) vor dem Synthese-Schritt. Hier besteht noch ein eindeutiger, leicht verständlicher Zusammenhang zwischen ursprünglichem Code und der graphischen Darstellung. So sind Prozesse, Signalzuweisungen und Busse als jeweils einzelnes Element klar ersichtlich. 1 shows an example of an abstract code and its elements ( 1 ). 2 shows their representation from individual elements ( 2 ) before the synthesis step. Here is still a clear, easy-to-understand relationship between the original code and the graphical representation. Thus, processes, signal assignments and buses are clearly visible as a single element.

In 3 wird die ungefähre Darstellung in Einzelgatter (3) nach dem Synthese-Schritt gezeigt. Die Zusammenhang zwischen ursprünglichen Code und graphischer Repräsentation fehlt hier überwiegend, zumal auch die Einzelgatter nach einem Zufallsprinzip durchnummeriert sind.In 3 is the approximate representation in single gate ( 3 ) after the synthesis step. The connection between original code and graphical representation is missing here predominantly, especially as the individual gates are numbered randomly.

Der erste Schritt des Partitionierungs-Verfahrens ist es, die Gesamtschaltung soweit in Einzelelemente zu unterteilen, bis keines der Elemente die Kapazität einer Platzierungsressource (z. B. programmierbare Bausteine) überschreitet. Diese sich somit ergebene Liste von Einzelelementen bildet dann den Ausgangspunkt für die Partitionierung. Sollte kein geeignetes Ergebnis am Ende des Verfahrens erreicht werden, so wird diese Liste derart erweitert, dass geeignete Einzelelemente weiter aufgeteilt werden. 4 gibt den Überblick hierfür. Dieser erste Schritt (s1) der Bestimmung der Liste (I1, I2, ..., In) der Einzelelemente oder dessen sukzessive Wiederholung (s2, s3, ...) kann vollautomatisch ablaufen oder vom Anwender geleitet werden.The first step of the partitioning method is to divide the overall circuit into individual elements until none of the elements exceeds the capacity of a placement resource (eg, programmable devices). This resulting list of individual elements then forms the starting point for the partitioning. If no suitable result is reached at the end of the procedure, then this list is expanded in such a way that suitable individual elements are further subdivided. 4 gives the overview for this. This first step (s1) of the determination of the list (I1, I2,..., In) of the individual elements or of their successive repetition (s2, s3,...) Can be fully automatic or conducted by the user.

Der zweite Schritt des Verfahrens besteht darin, die Liste der Einzelelemente auf die gegeben Ressourcen aufzuteilen, d. h. zu platzieren. Zunächst werden anwendungsspezifische Randbedingungen berücksichtigt. Es kann also definiert sein, dass gewisse Einzelelemente auf bestimmte Ressourcen verteilt werden müssen. Danach wird die verbleibende Liste der Größe nach, beginnend mit dem größten Einzelelement, abgearbeitet. Aufgrund der vergleichbar geringen Datenmenge können alle n! Möglichkeiten analysiert werden. Beim Platzieren ist darauf zu achten, dass die maximale zur Verfügung stehende Kapazität der Ressource nicht überschritten wird. Dieses Kriterium sorgt dafür, dass von den n! Möglichkeiten nur ein geringer Teil an Platzierungsmöglichkeiten übrig bleibt.Of the second step of the procedure is the list of individual elements to divide up the given resources, d. H. to place. First, be considered application-specific boundary conditions. It can be defined be that certain individual elements distributed to specific resources Need to become. After that, the remaining list will resize, starting with the largest single element, processed. Due to the comparably small amount of data, all can n! options to be analyzed. When placing, make sure that the maximum available standing capacity the resource is not exceeded becomes. This criterion ensures that that of the n! options only a small amount of placement options remains.

Nach jedem einzelnen Platzierungsschritt können Signal-Verbindungen zwischen den Ressource-Elementen entstehen. Diese sich ergebene Verbindungsstruktur kann von diesem Verfahrensschritt an als fix angesehen werden und wird nur im Ausnahmefall verändert. Diese Verbindungsstruktur kann Einfluss auf das zeitliche Verhalten der Schaltung haben. Deshalb werden nach jedem einzelnen Platzierungsschritt die Routing-Ressourcen optimiert und mittels Zeit-Analyse die maximale Schaltfrequenz berechnet. Die jeweils bestimmten Verbindungen zwischen den Ressource-Elementen müssen auf die gegebenen statischen und/oder dynamischen Verbindungsressourcen aufgeteilt werden. Dabei wird das später beschriebene Routing-Verfahren angewendet.To Each individual placement step can signal connections between arise from the resource elements. This resulting connection structure can be considered as fixed from this step on and is changed only in exceptional cases. This connection structure can influence the temporal behavior have the circuit. Therefore, after every single placement step the routing resources are optimized and the maximum through time analysis Switching frequency calculated. The particular connections between the resource elements to the given static and / or dynamic connection resources be split. Here, the later-described routing method applied.

Wird die maximale Schaltfrequenz mit der Platzierung eines Elements und der anschließenden Routing-Optimierung überschritten, so wird die Platzierung der dann noch ausstehenden Elemente in der Liste nicht weiter in Betracht gezogen. Es werden vielmehr nach den oben angegebenen Formalismus weitere Partitionierungs-Möglichkeiten berechnet. Wird jedoch die maximale Schaltfrequenz nicht überschritten, so kann die Partitionierung weiterfahren, und für den Fall, dass sämtliche Einzelelemente auf die Ressourcen verteilt sind, kann diese Partitionierung in die Liste der möglichen Partitionierungen aufgenommen werden. Diese Liste kann dann auch limitiert werden, z. B. hinsichtlich der 10 besten Platzierungsergebnisse.Becomes the maximum switching frequency with the placement of an element and exceeded the subsequent routing optimization, so will the placement of the then remaining items in the List not further considered. It is rather after the above formalism more partitioning options calculated. However, if the maximum switching frequency is not exceeded, so partitioning can continue, and in the event that all Individual elements are distributed to the resources, this can be partitioning in the list of possible Partitioning be included. This list can also be be limited, z. In terms of the top 10 placement results.

Desweiteren wird das Routing-Verfahren beschrieben. Es hat zur Aufgabe, die sich ergebenen Signal-Verbindungen auf die vorhandenen Routing-Ressourcen abzubilden. Dabei wird zwischen statischen Verbindungs-Ressourcen, also direkte Verbindungen zwischen zwei Ressource-Elementen, und den dynamischen Verbindungs-Ressourcen, also Verbindungen, die über das entsprechende Setzen- und Nicht-Setzen von Schaltelementen Routing-Verbindungen entstehen lassen, bzw. eine Verbindung verhindern, unterschieden.Furthermore the routing procedure is described. It is up to the task resulting signal connections to the existing routing resources map. It involves choosing between static connection resources, ie direct connections between two resource elements, and the dynamic connection resources, that is, connections through the corresponding setting and non-setting of switching elements Routing connections arise, or prevent a connection, distinguished.

Eine Signalverbindung muss nicht mittels einer direkter Routing-Verbindung abgebildet werden. Es ist auch möglich ein Signal über ein oder mehrere weitere Ressourcen zum eigentlichen Ziel umzuleiten. Ebenso können mehrere Signal durch bekannte Zeit-Multiplex-Verfahren von einer zur anderen Ressource übermittelt werden.A Signal connection does not have to be via a direct routing connection be imaged. It is also possible a signal over redirect one or more additional resources to the actual destination. Likewise several signals by known time-division multiplexing of a transmitted to the other resource become.

Nachfolgend wird das Routing-Verfahren beschrieben. Zunächst werden anwendungsspezifische Routingbedingungen eingearbeitet. Danach werden alle noch zu routenden Signalverbindungen festgestellt. Hiervon werden die charakteristischen Routinggruppen, dass heißt alle 1-1-Verbindungen, 1-2-Verbindungen, ..., 1-n-Verbindungen bestimmt, wobei auch hinsichtlich der betreffenden Ressourcen unterschieden wird. Von diesen Gruppen wird jeweils das zeitkritischste Signal geroutet.The following describes the routing procedure. First, application-specific routing conditions are incorporated. Thereafter, all signal connections still to be routed are detected. From this the characteristic Rou tinggruppen, that is, all 1-1-connections, 1-2-connections, ..., 1-n-connections determined, whereby also with regard to the respective resources one differentiates. Of these groups, the time-critical signal is routed in each case.

Nachdem aus diesen Gruppen das jeweils zeitkritischste Signal geroutet ist, werden sämtliche noch nicht gerouteten Signale hinsichtlich ihrem Zeitkriterium geordnet. Diese Liste wird nun abgearbeitet. Kann ein Signal nicht mehr geroutet werden, so wird für diese Gruppe das Zeit-Multiplex Verfahren eingeführt, insofern für diese Gruppe nicht schon dieses Verfahren eingeführt wurde. Werden bei einem dieser Signale definierte zeitliche Parameter überschritten, so wird dieser Partitionierungsschritt abgebrochen.After this from these groups the most time-critical signal is routed, all are still non-routed signals in terms of their time criterion. This list is now processed. Can a signal no longer be routed become, so will for this group the time multiplex Procedure introduced, in that sense for this group has not already introduced this procedure. Be at one of these Signals defined time parameters exceeded, so this is Partitioning step aborted.

Hinsichtlich der Optimierung der statischen, bzw. dynamischen Verbindungsressourcen werden die Routinggruppen geordnet nach ihrer Komplexität abgearbeitet, beginnend mit der am meisten komplexen Verbindung. Steht hierfür keine genau übereinstimmende statische Verbindungsressource zur Verfügung, so werden die dynamischen Verbindungsressourcen überprüft. Ergibt sich hier eine geeignete Verbindung, so werden die entsprechenden Schaltelemente hinsichtlich ihres Zustandes (offen/geschlossen) festgelegt. Kann auch mit einer dynamischen Verbindung das Signal nicht geroutet werden, so wird überprüft ob komplexere statische Verbindungen die gewünschte Signalverbindung abbilden können. Ist auch das nicht der Fall, so wird versucht, mittels alternative Verbindungen über andere Ressourcen hinweg, entsprechen dem eben beschriebenen Verfahren das Signal abzubilden. Wird kein mögliches Signalrouting gefunden, so wird dieser Partitionierungsschritt abgebrochen.Regarding the optimization of static or dynamic connection resources the routing groups are processed according to their complexity, starting with the most complex connection. Does not stand for this exactly matching static connection resource available, so are the dynamic Connection resources checked. results If there is a suitable connection, then the corresponding Switching elements with regard to their condition (open / closed) established. Can also with a dynamic connection the signal are not routed, so it checks for more complex static connections the desired Can map signal connection. If this is not the case, then an attempt is made by means of alternative Connections via other resources, correspond to the method just described to reproduce the signal. If no possible signal routing is found, so this partitioning step is aborted.

Wie bereits erwähnt wir nach jedem Partitionierungs-Schritt, sowie nach jedem Routing-Schritt mittels einem bekannten Verfahren der statischen Zeit-Analyse die maximale Schaltfrequenz errechnet und mit den gegebenen zeitlichen Parameter in Beziehung gebracht. Während des Partitionierung- und Routing-Verfahrens wird eine Vereinfachung vorgenommen (6). Da anzunehmen ist, dass sich das zeitliche Verhalten innerhalb der eigentlichen Ressourcen (5) nicht verändert, unabhängig davon, ob die Schaltung auf mehrere Ressourcen verteilt ist, kann dieses als gegeben gelten. Zudem sind die Signallaufzeiten zwischen den Ressourcen (6) wesentlich größer, womit Signallaufzeit-Variationen zu vernachlässigen sind. Somit ergibt sich die maximale Schaltfrequenz aus der maximalen Schaltfrequenz bei ausschließlicher Platzierung auf einer unendlich großen Ressource, plus der jeweiligen Signallaufzeit zwischen den Ressourcen. Dies ist eine zulässige Vereinfachung und macht die Berechnung der maximalen Schaltfrequenz des Gesamtschaltung extrem schnell. Diese Vereinfachung gilt auch für Signale, die mehrmals zwischen verschiedenen Ressourcen laufen. Vergleichbare Berechnungen können für Signallaufzeiten bei Verwendung von Zeit-Multiplex-Verfahren der Datenübertragung angestellt werden.As already mentioned, after each partitioning step, as well as after each routing step, the maximum switching frequency is calculated by means of a known method of static time analysis and related to the given temporal parameters. During the partitioning and routing process, a simplification is made ( 6 ). Since it can be assumed that the temporal behavior within the actual resources ( 5 ), regardless of whether the circuit is distributed over several resources, this can be considered as given. In addition, the signal transit times between the resources ( 6 ) significantly larger, which signal propagation time variations are negligible. Thus, the maximum switching frequency results from the maximum switching frequency with exclusive placement on an infinite resource, plus the respective signal propagation time between the resources. This is a permissible simplification and makes the calculation of the maximum switching frequency of the overall circuit extremely fast. This simplification also applies to signals that run several times between different resources. Comparable calculations can be made for signal propagation times using time multiplexing data transmission.

11
Elemente des abstrakten Codes einer Schaltungelements the abstract code of a circuit
22
Abstraktes Elementeabstract elements
33
Einzelelement der NetzlistSingle element the netlist
44
Hierarchisches Schaltungselement oder Clusterhierarchical Circuit element or cluster
55
Signallaufzeit innerhalb einer RessourceSignal propagation time within a resource
66
Signallaufzeit bedingt durch Routing zwischen RessourcenSignal propagation time conditioned by routing between resources

Claims (1)

Voll- und halb- automatisches Verfahren zur Partitionierung von komplexen Schaltungen in abstrakter Verhaltenssprache unter Beachtung zeitlicher Parameter und gegebener dynamischer und statischer Verbindungsressourcen bestehend aus 1.1.1 einer komplexen Schaltung in abstrakter Verhaltenssprache, 1.1.2 einer Ansammlung zeitlicher Parameter, 1.1.3 einer Beschreibung des Zielsystems, 1.1.4 sowie einem voll- und halb- automatischen Verfahren, dadurch gekennzeichnet, dass 1.2.1 die komplexe Schaltung in abstrakter Verhaltenssprache in Einzelbestandteile zerlegt wird, 1.2.1.1 wobei neben hierarchischen Elementen, zusätzlich 1.2.1.2 jeweils Prozesse zu einem Cluster zusammengefasst werden, sowie 1.2.1.3 Signalzuweisungen jeweils zu einem Cluster zusammengefasst werden und 1.2.1.4 als Einzelbestandteil angesehen werden, 1.2.2 das Verfahren die Einzelbestandteile der Schaltung auf das Zielsystem verteilt, wobei die Aufteilung 1.2.2.1 durch schrittweise Anweisungen des Anwenders geschieht oder 1.2.2.2 von einem vollautomatischen Algorithmus 1.2.2.3 teilweise oder 1.2.2.4 komplett bewerkstelligt wird, und 1.2.2.5 der Routingalgorithmus durchgehend während der vollständigen Abarbeitung des Platzierungsalgorithmus wiederholt angewendet wird, 1.2.3 für die Bestimmung der maximalen Systemfrequenz 1.2.3.1 das zeitliche Verhalten der komplexen Schaltung vereinfacht wird, und 1.2.3.2 zusammen mit den definierten zeitlichen Parameter 1.2.3.3 sukzessive während der vollständigen Abarbeitung des Verfahrensalgorithmus einen wesentlichen Einfluss auf die Entscheidungspunkte des Partitionierung-Prozesses haben, 1.2.4 das Verfahren die gegebenen Verbindungsressourcen effizient nutzt, wobei 1.2.4.1 die statischen sowie dynamischen Verbindungsressourcen des Zielsystems 1.2.4.2 sukzessive während der vollständigen Abarbeitung des Verfahrensalgorithmus einen wesentlichen Einfluss auf die Entscheidungspunkte des Partitionierung-Prozesses haben, und 1.2.5 die neu entstehende Partitionierung der komplexen Schaltung mit der jeweiligen abstrakten Verhaltenssprache des Ausgangscodes übereinstimmend, wieder ausgegeben wird.Full- and semi-automatic method for partitioning complex circuits in abstract behavioral language considering temporal parameters and given dynamic and static connection resources consisting of 1.1.1 a complex circuit in abstract behavioral language, 1.1.2 a collection of temporal parameters, 1.1.3 a description of the target system, 1.1.4, as well as a fully automatic and semi-automatic method, characterized in that: 1.2.1 the complex circuit is broken down into individual components in abstract behavioral language, 1.2.1.1 where in addition to hierarchical elements, additionally 1.2.1.2 processes to one Cluster 1.2.1.4 are considered as a single component, 1.2.2 the method distributes the individual components of the circuit to the target system, the division 1.2.2.1 is done by step by step instructions of the user or 1.2.2.2 is fully accomplished by a fully automatic algorithm 1.2.2.3 partial or 1.2.2.4, and 1.2.2.5 the routing algorithm is consistently applied throughout the complete processing of the placement algorithm, 1.2.3 for the determination of the maximum system frequency 1.2.3.1 the temporal Behavior of the complex circuit is simplified, and 1.2.3.2 together with the defined time parameters 1.2.3.3 successively during the full Abar 1.2.4 the method efficiently uses the given connection resources, 1.2.4.1 the static and dynamic connection resources of the target system 1.2.4.2 successively during the complete execution of the algorithm process a significant impact on the decision points of the partitioning process, and 1.2.5 the newly arising partitioning of the complex circuit with the respective abstract behavioral language of the output code matching, is reissued.
DE102007017850A 2007-04-16 2007-04-16 Complex circuits partitioning method for e.g. verilog, involves successively providing essential influence on decision point of partitioning process during complete processing of process algorithm Ceased DE102007017850A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102007017850A DE102007017850A1 (en) 2007-04-16 2007-04-16 Complex circuits partitioning method for e.g. verilog, involves successively providing essential influence on decision point of partitioning process during complete processing of process algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102007017850A DE102007017850A1 (en) 2007-04-16 2007-04-16 Complex circuits partitioning method for e.g. verilog, involves successively providing essential influence on decision point of partitioning process during complete processing of process algorithm

Publications (1)

Publication Number Publication Date
DE102007017850A1 true DE102007017850A1 (en) 2008-10-23

Family

ID=39767772

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007017850A Ceased DE102007017850A1 (en) 2007-04-16 2007-04-16 Complex circuits partitioning method for e.g. verilog, involves successively providing essential influence on decision point of partitioning process during complete processing of process algorithm

Country Status (1)

Country Link
DE (1) DE102007017850A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145117A (en) * 1998-01-30 2000-11-07 Tera Systems Incorporated Creating optimized physical implementations from high-level descriptions of electronic design using placement based information
US20060053401A1 (en) * 1999-05-17 2006-03-09 Mcelvain Kenneth S Methods and apparatuses for designing integrated circuits

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145117A (en) * 1998-01-30 2000-11-07 Tera Systems Incorporated Creating optimized physical implementations from high-level descriptions of electronic design using placement based information
US20060053401A1 (en) * 1999-05-17 2006-03-09 Mcelvain Kenneth S Methods and apparatuses for designing integrated circuits

Similar Documents

Publication Publication Date Title
DE60118973T2 (en) METHOD FOR INQUIRING A STRUCTURE OF COMPRESSED DATA
DE2222855A1 (en) Rail transport system for selection information and data
DE3015875A1 (en) MEMORY ACCESS SYSTEM AND METHOD FOR ACCESSING A DIGITAL MEMORY SYSTEM
DE2031040A1 (en) Procedure for specifying the access prion acts in data processing systems as well as a priority control for carrying out the procedure
EP1069731A2 (en) Network and Procedure to exchange messages
DE2133638C3 (en) Method for operating an adaptive system made up of adaptive data processing units connected in cascade and suitable for non-linear data processing
EP2122382B1 (en) Method for increasing the availability of a global navigation system
WO2006103177A1 (en) Method for arranging object data in electronic maps
DE102006014022A1 (en) Hearing aid system with binaural data logging and corresponding procedure
DE202014011350U1 (en) FFT accelerator
EP3812949A1 (en) Configurable digital twin
DE102007017850A1 (en) Complex circuits partitioning method for e.g. verilog, involves successively providing essential influence on decision point of partitioning process during complete processing of process algorithm
DE102014110590A1 (en) Parallel tree labeling apparatus and method for processing an XML document
DE3113189C2 (en) Device for converting digital character codes that are received or supplied by a data processing system
DE10084462B4 (en) Shared buffer
DE3806428C2 (en) Method and circuit arrangement for determining a bit combination contained in a series bit stream
DE4416143A1 (en) Process for designing pipeline stages in a computer-aided design system
DE19624614A1 (en) Process for designing or adapting a fuzzy controller or a system of linked fuzzy controllers
DE3118818A1 (en) METHOD AND CIRCUIT FOR TRANSMITTING A REQUEST FOR A PROCESSOR TO A MEMORY MODULE IN A MULTIPROCESSOR SYSTEM WITH MULTIPLE MEMORY MODULES
DE2554430C2 (en) Device for forming channels with the aid of detectors evenly distributed on a circular line
DE19640502A1 (en) Method for determining an acoustic model for a word
DE19710463C2 (en) Process for automatic differentiation on a computer, in particular for simulating electronic circuits
DE102015121128A1 (en) Method and device for accelerated access to signals of a programmable logic device
EP1429254B1 (en) Interrupt handling in a CAN node
EP1116107B1 (en) Method for executing individual algorithms by means of a reconfigurable circuit and device for carrying out such a method

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection