Synchronous Parallel Controller Synthesis from Behavioural. z Dept of Computer Engineering & Electronics. system.

Similar documents
Binary Decision Diagram with Minimum Expected Path Length

Assign auniquecodeto each state to produce a. Given jsj states, needed at least dlog jsje state bits. (minimum width encoding), at most jsj state bits

An Ecient Verication Algorithm for Parallel Controllers. K. Bilinski, J. M. Saul, E. L. Dagless, J. Szajna y

Łabiak G., Miczulski P. (IIE, UZ, Zielona Góra, Poland)

Don't Cares in Multi-Level Network Optimization. Hamid Savoj. Abstract

Petri Nets ee249 Fall 2000

Set Manipulation with Boolean Functional Vectors for Symbolic Reachability Analysis

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations.

PARALLEL PERFORMANCE DIRECTED TECHNOLOGY MAPPING FOR FPGA. Laurent Lemarchand. Informatique. ea 2215, D pt. ubo University{ bp 809

Synthesis of Systems Specified as Interacting VHDL Processes

A Schedulability-Preserving Transformation Scheme from Boolean- Controlled Dataflow Networks to Petri Nets

A BDD-based Frontend for Retargetable Compilers. Rainer Leupers, Peter Marwedel

Petri Nets and PNeS in Modeling and Analysis of Concurrent Systems

High-Level Test Synthesis. Tianruo Yang and Zebo Peng. Department of Computer and Information Science

Timer DRAM DDD FM9001 DRAM

Parallel Logic Synthesis Optimization for Digital Sequential Circuit

Proc. XVIII Conf. Latinoamericana de Informatica, PANEL'92, pages , August Timed automata have been proposed in [1, 8] to model nite-s

opa opa opa opa opb opb opb op op ins) opa opb opb op ins) 8,9, 10,11 opa

Esterel Code. Boolean Eq. Syst. Sorted B.E.S

to automatically generate parallel code for many applications that periodically update shared data structures using commuting operations and/or manipu

Application of an Exact Transversal Hypergraph in Selection of SM-Components

A Controller Testability Analysis and Enhancement Technique

History: Combinational Logic! single FSM! Hierarchy. Facilities for managing networks of FSMs MISII. Facilities for handling latches

The 17th International Conference on Safety, Reliability and Security (SAFECOMP 98) LNCS, Heidelberg, 1998

and therefore the system throughput in a distributed database system [, 1]. Vertical fragmentation further enhances the performance of database transa

Outline. Petri nets. Introduction Examples Properties Analysis techniques. 1 EE249Fall04

From Task Graphs to Petri Nets

A BIST Approach to. count for an n-input circuit under test (CUT) is 2 n (2 n 1), exhaustive TPG methods are limited to

Algorithms for an FPGA Switch Module Routing Problem with. Application to Global Routing. Abstract

under Timing Constraints David Filo David Ku Claudionor N. Coelho, Jr. Giovanni De Micheli

B2 if cs < cs_max then cs := cs + 1 cs := 1 ra

Lazy Group Sifting for Efficient Symbolic State Traversal of FSMs

TRANSPARENCY ANALYSIS OF PETRI NET BASED LOGIC CONTROLLERS A MEASURE FOR SOFTWARE QUALITY IN AUTOMATION

TIMED PETRI NETS FOR SOFTWARE APPLICATIONS

SIS: A System for Sequential Circuit Synthesis

Centre for Parallel Computing, University of Westminster, London, W1M 8JS

PPS : A Pipeline Path-based Scheduler. 46, Avenue Felix Viallet, Grenoble Cedex, France.

State Machine Specification. State Minimization. State Assignment. Logic Synthesis. Tech Mapping. Test Generation

KeyNote: Trust Management for Public-Key. 180 Park Avenue. Florham Park, NJ USA.

Sequential Logic Synthesis

History: Combinational Logic! single FSM! Hierarchy. Facilities for managing networks of FSMs MISII. Facilities for handling latches

Transistors NODES. Time (sec) No. of Nodes/Transistors

A Fast Recursive Mapping Algorithm. Department of Computer and Information Science. New Jersey Institute of Technology.

A Linear-C Implementation of Dijkstra's Algorithm. Chung-Hsing Hsu and Donald Smith and Saul Levy. Department of Computer Science. Rutgers University

KRON: An Approach for the Integration of Petri Nets in Object Oriented Models of Discrete Event Systems

Constraint-Directed Backtracking Algorithm. Wanlin Pang. Scott D. Goodwin. May 1996

INFORMATION RETRIEVAL USING MARKOV MODEL MEDIATORS IN MULTIMEDIA DATABASE SYSTEMS. Mei-Ling Shyu, Shu-Ching Chen, and R. L.

160 M. Nadjarbashi, S.M. Fakhraie and A. Kaviani Figure 2. LUTB structure. each block-level track can be arbitrarily connected to each of 16 4-LUT inp

Server 1 Server 2 CPU. mem I/O. allocate rec n read elem. n*47.0. n*20.0. select. n*1.0. write elem. n*26.5 send. n*

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC

Abstraction Techniques for Validation Coverage Analysis and. Test Generation 1. Review Category: Design Verication, Test Generation

An Ecient Approximation Algorithm for the. File Redistribution Scheduling Problem in. Fully Connected Networks. Abstract

Rearrangement of DNA fragments: a branch-and-cut algorithm Abstract. In this paper we consider a problem that arises in the process of reconstruction

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

Introduction to Electronic Design Automation. Model of Computation. Model of Computation. Model of Computation

WEEK 5 - APPLICATION OF PETRI NETS. 4.4 Producers-consumers problem with priority

Desynchronisation Technique using Petri nets

Achilles: A High-Level Synthesis System. for Asynchronous Circuits. Jordi Cortadella, Rosa M. Badia, Enric Pastor, and Abelardo Pardo y

Qualitative Analysis of WorkFlow nets using Linear Logic: Soundness Verification

VHDL: RTL Synthesis Basics. 1 of 59

Petri Nets ~------~ R-ES-O---N-A-N-C-E-I--se-p-te-m--be-r Applications.

Autolink. A Tool for the Automatic and Semi-Automatic Test Generation

System-Level Specication of Instruction Sets. Department of Electrical and Computer Engineering. Department of Computer Science

Telecommunication and Informatics University of North Carolina, Technical University of Gdansk Charlotte, NC 28223, USA

Optimal FPGA Mapping and Retiming with. Jason Cong and Chang Wu. problem which is in general NP-complete.

Quick Introduction to SystemVerilog: Sequental Logic

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1

Seamless design methodology of manufacturing cell-control software based on activity-control-condition and object diagram

DISCRETE-event dynamic systems (DEDS) are dynamic

I N. k=1. Current I RMS = I I I. k=1 I 1. 0 Time (N time intervals)

Computing Binary Decision Diagrams for VHDL Data Types. Ronald Herrmann y Hergen Pargmann zx. University of Oldenburg

Worst-case running time for RANDOMIZED-SELECT

General Models for Optimum Arbitrary-Dimension FPGA Switch Box Designs

Abstract formula. Net formula

A New Optimal State Assignment Technique for Partial Scan Designs

Experiences with OWL-S, Directions for Service Composition:

Finding a winning strategy in variations of Kayles

Type T1: force false. Type T2: force true. Type T3: complement. Type T4: load

LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS. Gary D. Hachtel University of Colorado. Fabio Somenzi University of Colorado.

An Algorithm to Compute a Basis of Petri Net Invariants

Synchronization Expressions: Characterization Results and. Implementation. Kai Salomaa y Sheng Yu y. Abstract

such internal data dependencies can be formally specied. A possible approach to specify

VHDL Modeling Behavior from Synthesis Perspective -Part B - EL 310 Erkay Savaş Sabancı University

Let v be a vertex primed by v i (s). Then the number f(v) of neighbours of v which have

EE 249 Discussion: Synthesis of Embedded Software using Free- Choice Petri Nets

P I P O C 1. Miter Out C 2 CUT

Using Synthesis Techniques in SAT Solvers

Abstract. Programs written in languages of the Oberon family usually. contain runtime tests on the dynamic type of variables.

VLSI System Design Part II : Logic Synthesis (1) Oct Feb.2007

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

where is a constant, 0 < <. In other words, the ratio between the shortest and longest paths from a node to a leaf is at least. An BB-tree allows ecie

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers

when a process of the form if be then p else q is executed and also when an output action is performed. 1. Unnecessary substitution: Let p = c!25 c?x:

a = 4.0 r = r = -4.0

35 th Design Automation Conference Copyright 1998 ACM

Petri Nets. Petri Nets. Petri Net Example. Systems are specified as a directed bipartite graph. The two kinds of nodes in the graph:

Discrete-event simulation of railway systems with hybrid models

computer science department technical report no. 386 A Case Study of the Use of Formal Techniques to Achieve June 1993

i=1 i=2 i=3 i=4 i=5 x(4) x(6) x(8)

Enhancing Integrated Layer Processing using Common Case. Anticipation and Data Dependence Analysis. Extended Abstract

Transcription:

Synchronous Parallel ontroller Synthesis from Behavioural Multiple{process VHDL Description Krzysztof Bilinski y Jaroslaw Mirkowski z Erik L. Dagless y y Dept of Electrical & Electronic Eng. University of Bristol Bristol BS8 TR, United Kingdom Abstract A unied framework and associated algorithms for a behavioural synthesis of parallel controllers from a multiple{process VHDL specication is presented. An extension to FSMs, based on Petri nets, is used asan internal representation of an concurrent system during the synthesis. The VHDL simulation cycle implications are explicitly implemented into the Petri net model. This model is next decomposed into a set of well formed sub{ controllers and a state assignments is generated. Introduction A performance of digital systems can be increased by applying ecient tools which explore parallelism within the design. VHDL supports process level parallelism. However, some of its simulation{oriented characteristics make VHDL dicult to apply in synthesis, namely: Signals are updated only at the beginning of the next simulation cycle. Thus, the postponement of signals update has to be reected in the internal representation. VHDL processes execute asynchronously and are synchronized using wait statements. As a result most of the high level synthesis systems restrict themselves to single process and variables only [2]. The system which follows the implication of the the VHDL simulation cycle in compilation is AMAD [2], where the internal representation is realised in terms of extended timed Petri net (ETPN). The solution applied in AMAD has a major drawback in case of signal assignment, namely the assignment is done implicitly (i.e. is not represented in the control structure of the representation) and is done at the end of the actual simulation cycle instead of at the beginning of the next one. The primary focus in the area of controller synthesis has been in developing ecient techniques for the state assignment for nite state machines (FSM). The FSM techniques do not support any explicit representation of the multiple{process systems. An alternative approach is to use Petri nets as a formal specication of the design. Behavioural analysis of the controller can be performed, using well dened techniques from Petri net theory based on a symbolic net execution. The Petri net symbolic traversal techniques have originated from z Dept of omputer Engineering & Electronics Higher ollege of Engineering 65{246 Zielona Gora, Poland the methods which are used in sequential circuit verication []. The reported methods prove to be capable of dealing with large nets, due to the ecient data representation provided by BDDs. The decomposition of the controller specication into a set of linked sub{controllers may yield several advantages [5]: The reduced critical path delay through the distributed controller and shorter control lines between each sub{controller and its data{path promote faster clocking. The smaller number of cells in each sub{controller shortens the routing lines, thus may result in a decrease of the overall area of the controller, it also assists with automatic layout. The objectives of the work presented here can be formulated as follows: Formulate a methodology for compilation a multiple{process VHDL specication into a Petri net in such a way that the simulation cycle implication are fully followed and represented in the control and data ow representation of the specied system. Dene the decomposition method for the Petri net specication of the controller. The method should comply with the following constraints: (i) the communication between sub{controllers should be minimised to improve routability of the entire design; (ii) places should be grouped so as to promote an optimum state assignment in each sub{controller. 2 Preliminaries For a formal introduction to Petri nets refer to [4]. The use of a Petri net as a hardware description language has resulted in the introduction of some dedicated extensions to Petri net interpretation. A predicate which is a Boolean function of the controller's input signals may be attached to each transition. Thus, transition is enabled when all of its input places are marked, and its predicate, if present, is asserted. Moore outputs are associated with places, and they are asserted whenever the associated places have tokens. Mealy outputs are associated with transitions, and they are asserted whenever the associated transitions are enabled. EURO-DA 96 with EURO-VHDL 96-8979-848-7/96 $4. 996 IEEE

To model the systems with priority and shared resources the modeling power of Petri nets has been increased by introducing inhibitor and enabling arcs [4]. The enabling arc adds ability to test presents of tokens in a place while the inhibitor arc adds ability to test the absence of tokens in a place. Unlike ordinary arcs, no tokens are moved through an inhibitor or enabling arc when the transition res. To model synchronous systems a new transition ring rule has to be introduced. All transitions are synchronized by a global clock, and so all enabled transitions re simultaneously. APetri net with above extensions is said to be a synchronous interpreted Petri net (SIPN). 3 Synthesis methodology The design ow of the proposed synthesis system is show in Figure. The synthesis methodology consists of the following steps: The synthesis starts from the behavioral VHDL specication of a controller. First, this specication is translated into an SIPN. The translation method is described in detail in Section 4. Next, the SIPN is veried and the BDD representation of the net state{space is generated using symbolic traversal techniques [6]. Since the net analysis and traversing methods are well described in literature, they will not be discussed here. The symbolic representation of the net state{space is then used to behavioral decomposition of the SIPN into a set well formed sub{nets (i.e. sub{ controllers). The net can be decomposed into a set of purely sequential sub{nets or sub{nets with limited concurrency. The method is presented in Section 5. Finally, each component is encoded separately using a unique set of ip{ops and the logic level description of the controller is produced. 4 VHDL to SIPN transformation The compilation process of a VHDL specication into an SIPN consists of three main steps, the last two are consequences of the simulation cycle requirements. Transforming the operations of all processes into their respective SIPN representation. At this stage also parallelism extraction is being performed. Synchronisation of wait statements of all the processes. orrect postponement of signal assignment (signal update). Each VHDL operation, notied as N i, is dened as a 6-tuple: N i =(In i ;Out i ;Op i ;Pr i ;Su i ;on i ); where: In i is a set of input variables of N i ; Out i is a set of output variables of N i ; Op i is a set of operands of N i ; Pr i is a set of predecessors of N i ; Su i is a set of successors of N i ; on i is a predicate of N i. The transformation procedure is performed as follows. Graphical interface BDD representation of the net state space Sequential components Symbolic traversal & behavioural analysis Sequential state assignment Behavioural multiple-process VHDL Synchronous interpreted Petri net Behavioural decomposition Logic synthesis ompilation Figure : Design ow. Parallel components Parallel state assignment. Determine all predicates; 2. Extract data and/or control dependencies and remove redundant dependencies; 3. Dene type of a module for each operation, connect modules to obtain a Petri Net and reduce the net. Predicates, are logical conditions of executing operations. They are used to determine control dependencies, but are also reected in the resulting SIPN. A predicate of an operation is a logical product of conditions which must be fullled to execute an operation. To determine predicates the input specication is transformed in such away, that comparisons from conditional operations are extracted and changed into operations with a logical variable on an output, for example: before: if x > then y := 2 k; after: c := x> if c then y := 2 k; end if; else y := y ; if not c then y := y ; end if; end if; An operation N k is called dependent on N j if N j prepares data for N k (data dependency) or its execution must be completed before N k 's execution can be started (control dependency), e.g. if N j then N k construct. List of dependencies can be easily transformed into set of predecessors and successors for each operation: if N h is dependent onn g, then N g is a predecessor of N h and N h is a successor of N g. Removing redundant dependencies prevents the net form unnecessary growth as every such a dependency may result in additional place and/or transition, e.g. considering the following fragment of VHDL:

if x > then y := 2 k; y := y ; endif; 2 3 operation 3 in this example is dependent on and 2. Meanwhile, operation 2 is dependent on. Dependency of operation 3 on operation is therefore redundant. While an operation is represented by a place, it is additionally augmented with an input transition, starting execution of the operation. However, such modules cannot be directly connected because this would lead to a dead and/or unsafe net. Thus, additional places and/or transitions are added to the modules in order to keep the safeness and liveness of the net, which is crucial for proper functioning of designed system. Additions to modules depend on predicates of predecessors and successors of given operation. They can be divided into two groups - relating to inputs and outputs: Inputs: A - one predecessor; B - several predecessors, non-conict predicates; - several predecessors, conict predicates; D - several predecessors, mixing B and types. Outputs: A - one successor, B - several successors, conict predicates; - several successors, non-conict predicates, D - several successors, mixing B and types. This forms 6 possibilities, 6 dierent modules of SIPN, each denoted by two letters: rst relating to inputs and second - to outputs, e.g. module type AB has only one input to the enabling transition and more than one successors with conict predicates. Predicates are said to be in conict if they mutually exclude each other, e.g. x and x. An example of modules of an operation N with a predicate is shown in Figure 2. BB N N B Figure 2: An example of the operating modules. 4. VHDL simulation cycle onsidering the denition of a simulation cycle [9] two conclusions, which are described in more details in this section, can be drawn: No process can be resumed until all active processes suspend. Signal assignment can be executed physically when respective process is resumed but before execution of any of its operations. Moreover, the process may not be suspended by a signal assignment operation. B N 4.. Synchronisation of processes Any VHDL process is synchronized in such a way that no process can resume its execution until all other active processes suspend. Such a synchronisation is introduced as a transition connecting all the wait statements [2]. TW Qn Qn TS Figure 3: Synchronisation of a wait statement. Figure 3 presents a synchronisation of a wait statement, represented by the transition TW, in one process. The synchronisation transition connecting all the processes is denoted as TS; is a predicate which is true when any of the signals from the wait sensitivity list changed during recent simulation cycle. The marking of the place N denotes that next simulation cycle is started and the process is resumed. 4..2 Signal update A signal can be updated when two conditions are met: Respective operation has been selected during the execution of the process. The process resumed for the next simulation cycle (place N from Figure 3 is marked). The correct location of a place representing signal assignment operation is determined by a parallelism extraction step. Physical execution has to be postponed until the next simulation cycle begins. Handling both requirements can be done by substituting an original place with a new subnet as illustrated in the following example. Let OP k be a signal assignment operation, its predicate is p and its direct predecessor is OP g, the direct implementation is shown in Figure 4(a). Figure 4(b) on the other hand illustrates the implementation which results from the implications of the VHDL simulation cycle. Place N is the same as in the Figure 3. 4..3 Resuming the process When the process has to be resumed rst the signals must be updated. It is not possible, however, to determine which of them will be updated in any particular simulation cycle as this depends on external conditions. Thus, the input transition enabling execution of the signal assignment has an enabling arc from the place denoting the beginning of next cycle. Furthermore, the marking can be removed from this place only after all necessary signals are updated. If none of the signals has been updated, the marking is removed immediately. In order to support such information a small subnet is constructed. It consists of two places and two transitions. The marking of the place A denoted that no signal is being updated and the A2 denotes updating of at least N

a) b) OP g c) OPg p OPk next operation p next operation OPk N beginning of the proces OPg p next operation OP k N A beginning of the proces p A2 Figure 4: Signal assignment: a) without simulation cycle implementation; b) postponed according to the simulation cycle requirements; c) postponed according to the simulation requirements with correct signal updating. one signal. Depending on this information the marking of the place N is removed in one of the above mentioned ways as it is illustrated on Figure 4(c), which is an updated version of Figure 4(b). 5 Behavioural decomposition Having an SIPN constructed and its properties veri- ed the behavioural decomposition of the SIPN is performed. Let PN be a safe Petri net and the set of all markings of PN. A set of markings of PN can be represented as an vector M = fm ;m 2 ; :::; m k g, where m i =( 2 ::: n ), and i represents numberoftokens in the place p i, which can be or. A set of all markings reachable from the initial marking M is denoted [M i. The characteristic function M of a set of markings M is a Boolean function: M :!f;g, that evaluates to on the vertices belonging to M, otherwise it is [6]. The characteristic function can be eciently represented using BDDs Figure 5. p3 p5 p2 p6 p8 p χ M p5 p8 p9 p3 p6 p2 p,..., p9 M = {,,,,,,,, } Figure 5: BDD representation of the set [M i. The Petri net decomposition algorithm operates on the characteristic function [M i. To simplify the decomposition process, the characteristic function [M i is simplied prior to the decomposition. 5. haracteristic function simplication. The simplication algorithm consists of the following steps. First, a pair p i and p j is identied, such that both p i and p j has the same marking relationship with all other places, i.e: for all p k 2 P : [M i p i p k 6=, [M i p j p k 6= [M i p i p k =, [M i p j p k = () Next, p i and p j are merged by forming their Boolean product or sum and replaced by a new variable p i : p i = pi :p j if [M i p i p j = (a) p i +p j if [M i p i p j 6= (b) (2) Finally, p j is removed from the characteristic function. The algorithm is reiterated until no further simplication can be achieved. Figure 6 shows the the simplied characteristic function R of the function [M i shown in Figure 5. For simplicity, the expressions representing Boolean product or sum will be explicitly used, instead of using the variables by which they are replaced, e.g. p 5 :p 6 instead of p 5. χ R p.p2.p3 Figure 6: The reduced characteristic function. 5.2 Decomposition algorithm. Let G =(V; E) be a weighted relation graph, where: V is a set of vertices, each of which represents a variable of the R ; E is a set of arcs, where an arc connects two vertices if the matching variables of R comply with the following criterion (i.e. two places are sequential related to each other): R p i p j = (3) To each vertex a weight is assigned. If a variable of R represents a product or sum of other variables then the weight equals the number of ip{ops needed to implement the variable, otherwise the weight is. An example of the weighted relation graph is shown in Figure 7(a). a) p.p2.p3 2 b) c) Figure 7: Weighted relation graphs. A clique of a graph G is a subset of vertices V such that if vertices c i ;c j 2 then there is an arc e k 2 E which connect these two vertices. Each clique

in the graph denes one component (i.e. sub{net) of the SIPN. The problem of nding a maximum clique is known to be a NP{complete [7]. Here, a heuristic algorithm, which works in polynomial time to nd out the rst good irredundant solution, with respect to the decomposition constraints is presented:. Identify a vertex v i, such that for all v k 2 V : wg(v k )+jv k j wg(v i )+jv i j (4) where: wg(v) returns the vetrex's weight and jvj is the number of arcs connected to the vertex. 2. Add the identied vertex to the clique l. 3. Identify another vertex v j, which is not in the l, satises the criterion (4) and the following condition: 8 9 v i 2 l e 2 E v e i vj (5) if the vertex v j cannot be identied then the construction of the clique l is completed, otherwise go to the Step 2. Applying these steps to the graph in Figure 7(a), the vertex p :p 2 :p 3 is selected rst. Next the vertex p 4 is also identied in Step 3. The rst identied clique is denoted using thick circles in Figure 7(a). 4. Remove from the graph all vertices constituting the clique l. 5. Repeat the above steps until all vertices have been removed from the graph. Employing the above algorithm to the graph shown in Figure 7(a), the three cliques have been selected: = fp :p 2 :p 3 ; p 4 g; 2 = fp 5 :p 6 ; p 7 g; 3 = fp 8 :p 9 g. Elements of each clique are sequentially related to each other. A clique (component) is said to be complete if its elements comply with X the following criterion: R bdd variable(v i )= R (6) v i2 where: bdd variable(v) returns the bdd variable corresponding to the vertex v. If elements of any clique do not comply with criterion (6), an extra vertex must be added to the clique, which represents an idle state of a component (i.e. a state in which no places have a token). In the presented example, the elements of 2 and 3 do not comply with criterion (6), thus extra elements have been added to these cliques. The three components are dened as follows: = fp :p 2 :p 3 ;p 4 g 2 =fp 5 :p 6 ;p 7 ;p idle g 3 = fp 8 :p 9 ;p idle2 g The p idle places do not eect the operation of the controller, since they do not have outputs attached to them, but they may increase the number of ip{ops required during a state assignment. The algorithmic complexity of the graph generation procedure is O(n 2 ), while clique construction is done in O(n 2 +2n) steps, where n is the number of variables of characteristic function R (i.e. the number of places of the reduced SIPN). 5.3 State assignment State assignment assigns a state code to each place in the decomposed SIPN. Every component is encoded using a separate set of ip{ops. Two encoding approaches have been implemented: If the SIPN is decomposed into a set of sequential components, i.e. only criterion (2.a) was applied then sequential state assignment techniques such as one{hot{code, Gray or binary encoding are used. If the SIPN is decomposed into a set of well formed concurrent components, i.e. both (2.a) and (2.b) were applied. Then the places in each components can share state variables to reduce the number of ip{ops in the state register, subject to the following constraint: the places which hold tokens simultaneously must have non{orthogonal codes. Two codes are said to be non{orthogonal if they dier by at least one state variable. The nal state assignment for the current example is shown in Table. p p 2 p 3 p 4 p 5 p 6 p 7 p 8 p 9 Q Q 2 Q 3 Q 4 Q 5 Q 6 Table : Final state assignment. 6 Experimental results All presented algorithms have been implemented in and a AD system for high{level synthesis of parallel controller was created. In this section, the synthesis results are described. All benchmarks were run on a Sun SPAR{Station2 computer with 64 MByte of memory. In Table 2 the translation results obtained using the presented approach (SIPN) and those produced by the use of the AMAD system are shown. The cost function (cf) of the parallelism extraction is dened as follows: 8 p i p j 2 supp( [M [M i p i p j 6= ) par = par +; i ) cf =(jsupp( [M i)j 2 par)=(jsupp( [M i)j 2 ) ; where: supp( [M i) is a support of [M i. The AMAD system produces a slightly smaller nets due to the lack of the correct signal assignment procedure, e.i. signal assignment is done at the end of the VHDL SIPN AMAD name ln pr wt pl tr cf pl tr cf armstr 39 5 5 95 2 69 79 88 49 move mc 48 3 3 53 49 59 38 45 4 rs232 66 2 2 44 45 42 38 46 3 mark 7 3 2 8 24 ln: number of lines; lr: number of processes; wt: number of waits; pl/tr: places/transitions; Table 2: Translation results.

BDD decomposition Place encoding # area delay T cpu # area delay T cpu name in out pl tr j[m ij [M i { [m 2 ] [ns] [s] { [m 2 ] [ns] [s] frcntr 5 2 62 64 257585 886 37 565 7.82 972 - - - -y minctr 3 7 46 48 93242 26 24 39593 7.22 658 - - - -y armstr 2 9 2 54933 263 46 487864 6.59 432 47 5436 9.23 52 sm7 6 8 56 42 2856 879 38 478949 5. 47 38 487784 6.3 2627 bar 9 2 3 3 8797 38 8 282246 4.29 35 8 28365 4.88 35 rascas 8 4 28 28 24 487 6 332678 4. 7 9 37922 3.8 24 gf2 4 2 2 485 6 2 7336 4.39 65 2 57783 4.6 95 rs232 24 44 45 65 248 24 88699 7.6 32 23 257.95 23 am29 34 9 3 53 3 257 8 5879 6.28 2 8 6662 6.3 spool 4 9 28 24 77 64 6 256 5.86 95 9 35662 7.57 9 ythe computation cannot be completed within 24 hour time limit. in/out: number of inputs/outputs, : number of ip{ops, area: area of the nal implementation, delay: max. critical path delay, T cpu: synthesis cpu run{time. Table 3: Synthesis results. present simulation cycle instead of at the beginning of the next one. Thus, dierent result are produced by VHDL simulator and AMAD simulator. Further, the SIPNs are signicantly more parallel then their AMAD counterparts. To evaluate the eciency of decomposition method the synthesis results were compared with an alternative parallel implementation based on a hierarchical place encoding approach presented in [3]. Each of the examples, after the state assignment, was optimized using the Berkeley synthesis system SIS ver..2 [8] and synthesized using the adence Framework II design system with the ES2 EPD m cell libraries. Table 3 shows the synthesis results. Summarizing the experimental results we can observe, that for all the examples the decomposition implementations produce better results when compared to their encoding counterparts mainly because of the better grouping of ip{ops during the state assignment and shorter routing lines. The presented method is also able to handle the synthesis of much more complex controllers than the alternative approaches. 7 onclusion A novel approach to high{level synthesis of parallel controllers from VHDL specications has been presented. Its novelty lies in direct implementation of all implications of the VHDL simulation cycle into the internal Petri net representation of the controller. This net is next decomposed into a set set of well formed sub{controllers using a method based on symbolic manipulation of the controller state{space. The application of the proposed methodology ensures a one-to-one correspondence between the results of a VHDL simulator (applied to the input specication) and the results of the synthesis. The experimental results clearly demonstrate the advantages of the method over the alternative methods. References [] O. oudert, J.. Madre, and. Berthet. Verifying Temporal Properties of Sequential Machines without Building their State Diagrams. In E.M. larke and R.P. Kurshan, editors, Proceedings of omputer-aided Verication 2nd International onference AV'9, volume 53 of Lecture Notes in omputer Science, pages 23 { 32. Springer-Verlag, June 99. [2] P. Eles, K. Kuchcinski, Z. Peng, and M. Minea. Synthesis of VHDL oncurrent Processes. In Proceedings of the European Design Automation onference EURO{ DA'94, pages 54 { 545, Grenoble, September 9{23, 994. [3] T. Kozlowski, E. Dagless, J. Saul, M. Adamski, and J. Szajna. Parallel ontroller Synthesis using Petri Nets. IEE Proceedings { omputers and Digital Techniques, 42(4):263 { 27, July, 995. [4] T. Murata. Petri Nets: Properties, Analysis and Applications. Proceedings of the IEEE, 77(4):548 { 58, 989. [5] J. Pardey and M Bolton. Logic Synthesis of Synchronous Parallel ontrolers. In Proceedings of the IEEE International onference on omputer Design, pages 454{457. IEEE omputer Society Press, 99. [6] E. Pastor, O. Roig, J. ortadella, and R. Badia. Petri Net Analysis Using Boolean Manipulation. In R. Valette, editor, Proceedings of 5th International onference: Application and Theory of Petri Nets, volume 85 of Lecture Notes in omputer Science, pages 46 { 435. Springer-Verlag, June 994. [7] E.M. Reingold, J. Nievergelt, and N. Deo. ombinatorial Algorithms, Theory and Practice. Prentice Hall, 977. [8] E.M. Sentovich, K.J. Singh, L. Lavagno,. Moon, R. Murgai, A. Saldanha, H. Savoj, P.R. Stephan, R.K. Brayton, and A. Sangiovanni-Vincentelli. SIS: A System for Sequential ircuit Synthesis. University of alifornia, Berkelay, May 992. Memorandum No. UB/ERL M92/4. [9] IEEE Standard VHDL Language Reference Manual. IEEE, New York, 988.