首页    期刊浏览 2024年11月10日 星期日
登录注册

文章基本信息

  • 标题:Canonical representations of high-level decision diagrams/Korgtaseme otsustusdiagrammide kanooniline esitus.
  • 作者:Karputkin, Anton ; Ubar, Raimund ; Raik, Jaan
  • 期刊名称:Estonian Journal of Engineering
  • 印刷版ISSN:1736-6038
  • 出版年度:2010
  • 期号:March
  • 语种:English
  • 出版社:Estonian Academy Publishers
  • 摘要:As the complexity of digital systems continues to increase, the traditional gate level modelling of systems, especially for verification and test generation purposes, has become obsolete. Economical and practical reasons have pushed the designers to apply automatic test pattern generation at higher abstraction levels to implement functional or hierarchical test strategies, or to approach design validation with the goal to early identify and remove design errors at higher functional levels, saving time and money. Thus many functional automated test pattern generators (ATPG) have been proposed in the literature to generate effective test sequences at the higher [1-3], behaviour [4,5] or functional register-transfer levels [6,7]. A special case of functional techniques are ATPGs, based on perturbation of statements in the digital circuit model using VHDL or RTL [8,9]. Hierarchical approach [10,11], compared to pure functional approach, lies in the possibility of constructing test plans on higher levels and modelling faults on more detailed lower levels, which results in better test quality.
  • 关键词:Computer hardware;Computers;Decision analysis

Canonical representations of high-level decision diagrams/Korgtaseme otsustusdiagrammide kanooniline esitus.


Karputkin, Anton ; Ubar, Raimund ; Raik, Jaan 等


1. INTRODUCTION

As the complexity of digital systems continues to increase, the traditional gate level modelling of systems, especially for verification and test generation purposes, has become obsolete. Economical and practical reasons have pushed the designers to apply automatic test pattern generation at higher abstraction levels to implement functional or hierarchical test strategies, or to approach design validation with the goal to early identify and remove design errors at higher functional levels, saving time and money. Thus many functional automated test pattern generators (ATPG) have been proposed in the literature to generate effective test sequences at the higher [1-3], behaviour [4,5] or functional register-transfer levels [6,7]. A special case of functional techniques are ATPGs, based on perturbation of statements in the digital circuit model using VHDL or RTL [8,9]. Hierarchical approach [10,11], compared to pure functional approach, lies in the possibility of constructing test plans on higher levels and modelling faults on more detailed lower levels, which results in better test quality.

The efficiency of high-level test generation for complex digital systems depends essentially on selecting the diagnostic model of the system and the way how to represent and handle the faults of the system. High-level functional ATPGs can be divided into two main categories: random-based and deterministic. The first set adopts simulation-based strategies, guided by genetic algorithms or other probabilistic techniques [2,3]. They rely on functional fault models and simulation of HDL descriptions (e.g. SystemC, VHDL, Verilog, etc.) of the design. These ATPGs are fast, but they cannot guarantee high fault coverage and they tend to generate very long test sequences. Deterministic ATPGs are based on mathematical strategies to allow a complete exploration of the system's state space [4,6,7,10,11], thus covering corner cases, but they require a larger amount of timing and memory resources.

In search for efficient high-level models, recently a number of papers has been published on implementing assignment decision diagram (ADD) models [12] combined with SAT methods to address register-transfer level (RTL) test pattern generation [6,7]. A promising approach is to use high-level decision diagrams (HLDD) [13] that, unlike ADDs, can be viewed as a generalization of binary decision diagrams (BDDs). HLDDs allow modelling of different abstraction levels from RTL to behavioural while ADDs are limited to RTL only. HLDDs have proven to be an efficient model for simulation [14], fault modelling [15] and test generation [10,11] as they provide for fast evaluation by graph traversal and for easy identification of cause-effect relationships. Further improvements in using HLDDs for high-level functional test generation were reached by combining HLDDs with extended finite state machines (EFSM) [16,17].

Within the last two decades binary decision diagrams (BDD) have become the state-of-the-art data structure in VLSI CAD for representation and manipulation of Boolean functions [18-25]. They were introduced first in 1959 by C. Y. Lee in the form of binary decision programs for representing digital circuits [18]. In 1976 the same model, called alternative graphs [19,20], was introduced for test generation purposes. Independently the same model was introduced into the field of test generation by Akers [21] under the name of BDDs. Today the theory of BDDs is developing quickly with the main purpose of efficient manipulation of logic expressions. The subset of BBDs, called structurally synthesized binary decision diagrams (SSBDDs), represent directly in the graph the structural features of circuits [19,20,26,27]. While traditionally BDDs are generated by Shannon's expansions, which allow to extract only the Boolean function of the logic circuit, the SSBDDs are generated by a superposition procedure that extracts both, function and data about structural paths of the circuit. This feature makes them preferable for diagnosis related tasks like fault modelling, simulation, test generation and fault location. 40

HLDDs represent a generalization of SSBDDs for modelling the functions and structure of digital systems on higher behaviour, functional or RTL abstraction levels. HLDDs are an excellent way to represent cause-effect and effect-cause relationships at higher levels of system abstraction as a basis for fault diagnosis in technical systems. They allow to skip dedicated low-level technical problems, related to semiconductor technology and to concentrate only on the high-level logic abstractions to carry out diagnostic reasoning. This is the only way how to handle today's complex systems. Moreover, the test related procedures, developed for SSBDDs, can be easily generalized for HLDDs to handle digital systems, represented at higher levels. In [28] two methods for synthesis of HLDDs were proposed. The first method is based on symbolic execution of procedural descriptions, which corresponds to functional representation of the system, e.g. on the behavioural level. The second one is based on iterative superposition of HLDDs, and the created model corresponds to the high-level structural representation of the system. The second method can be regarded as the generalization of the superposition of SSBDDs [29].

An example of a structurally synthesized HLDD, which represents a RTL data path of a digital system shown in Fig. 1 with functions of the components in Table 1, is depicted in Fig. 2. Variables [R.sub.1] and [R.sub.2] represent registers, IN represents the input bus, integer variables [y.sub.1], [y.sub.2], [y.sub.3], [y.sub.4] represent control signals, [M.sub.1],[M.sub.2],[M.sub.3] are multiplexers, and the functions [R.sub.1] + [R.sub.2] and [R.sub.1] * [R.sub.2] represent adder and multiplier, respectively. Each node in the HLDD represents a subcircuit of the system (e.g. the nodes [y.sub.1], [y.sub.2], [y.sub.3], [y.sub.4] represent multiplexers and decoders). The whole DD describes the behaviour of the input logic of the register [R.sub.2]. The bold path in Fig. [member of] shows the active mode of the system in the case of input control vector ([y.sub.1], [y.sub.2], [y.sub.3], [y.sub.4]) = (1, 0, 3, 2), which means that during this clock cycle the system calculates the multiplication [R.sub.2] = [R.sub.1] * [R.sub.2]. The structural relationships between the HLDD and the original system are highlighted by dotted lines in Fig. 2. The area in Fig. [member of] denoted by [R.sub.2] corresponds to the DD for the subcircuit [R.sub.2], consisting of register [R.sub.2] with its input logic in Fig. 1; the area denoted by [R.sub.2]+[M.sub.3] corresponds to the composite DD for the subcircuit, consisting of components [M.sub.2], multiplier, [M.sub.3] and [R.sub.2], highlighted by dark colour in Fig. 1; the area, denoted by c([M.sub.1]), corresponds to the DD for the subcircuit consisting of the components [M.sub.1] and adder; finally, the area denoted by d([M.sub.2]) corresponds to the DDs for the subcircuit, consisting of the components [M.sub.2] and multiplier.

[FIGURE 1 OMITTED]

[FIGURE 2 OMITTED]

In the HLDDs the internal nodes represent the control part of a system and the terminal nodes represent the data manipulation part of the latter. In the general case a system is described by a set of HLDDs, where each HLDD represents a controlled input logic of a register.

In this paper we will show how the HLDDs can be used for high-level verification purposes (more precisely, for probabilistic equivalence checking), for example in the cases when we have got two HLDD representations of a system: (1) high level specification, and (2) high level implementation. We will describe the diagrams by sets of characteristic polynomials and show how to use them in practice. The idea to represent digital systems as polynomials is not new, one can find similar ideas adapted for gate level models in papers [30,31]. An attempt to move up to the higher levels was made in [32]. However, at these levels we do not have such convenient and well-known formal representation of the system as boolean expressions are for the gate level. Before strarting to compute a polynomial we need an initial definition of the function it describes. The multivalued decision diagrams proposed for this purpose in [32] is not the best choice: computing them is the problem itself. This work combined with our previous paper [28] gives a way to get the canonical form of the digital system at higher levels directly from its description.

The paper is organized as follows. In Section [member of] we give the formal definition of HLDDs, in Section 3 we show the possibility of representing the HLDDs by characteristic polynomials, which can be used as a canonical form of HLDDs. In Section 4 we show how the characteristic polynomials can be used for proving the equivalence between two HLDDs, which may have different internal structures. Section 5 concludes the paper.

2. DEFINITION OF HLDD

In this section we define the objects being studied in the current article: HLDDs and functions represented by them, further called HLDD functions.

Consider a digital system (Z, F) as a network of subsystems or components where Z is the set of variables (Boolean, Boolean vectors or integers), which represent connections between components, inputs and outputs of the network. Let Z = X [union] Y , where X is the set of function arguments and Y is the set of function values where Q = X [intersection] Y is the set of state variables. D(z) denotes the finite set of all possible values for z [member of] Z and D(U) is the set of all possible vectors in U [subset or equal to] Z. Obviously, if U = {[u.sub.1], ... , [u.sub.n]} then D(U) = D([u.sub.1]) x ... x D([u.sub.n]). Let F be a set of digital functions: [z.sub.k] = [f.sub.k]([Z.sub.k]) where [z.sub.k] [member of] Z, [f.sub.k] [member of] F, and [Z.sub.k] [subset] Z (k iterates over all elements in F).

Definition 1. The high-level decision diagram representing the function [f.sub.k] : D([Z.sub.k]) [right arrow] D([z.sub.k]) is a directed acyclic graph G = (V,E) with one root node and a set of terminal nodes, where:

--Each non-terminal node is labelled by some input or control variable x [member of] X [union] Q. We shall denote the variable of node v by [x.sub.v].

--Each terminal node w is labelled by some function [g.sub.w] : D([Z.sub.w]) [right arrow] D([z.sub.k]) (possibly a constant or a single variable), where [Z.sub.w] [subset or equal to] [Z.sub.k].

--Each edge e = (v, u) is labelled by some constant [c.sub.e] [member of] D([x.sub.v]).

--Each two edges [e.sub.1] = (v, [u.sub.1]) and [e.sub.2] = (v, [u.sub.2]) going from the same source node are labelled by different constants c[e.sub.1] [not equal to] c[e.sub.2].

--If the node v is labelled by [x.sub.v] then the number of edges going from this node is |D([x.sub.v])|.

Remark 1. Each BDD is HLDD as well, with two terminal vertices labelled by constant functions 0 and 1, and D(x) = {0, 1} for every variable x.

We shall denote the set of terminal nodes by [V.sup.T], the set of non-terminal nodes by [V.sup.N] and the set of all successors of the node v by [LAMBDA](v). For non-terminal nodes v [member of] [V.sup.N] an onto function exists between the values c [member of] D([x.sub.v]) of labels [x.sub.v] and the successors [v.sup.c] [member of] [LAMBDA](v) of v. By [v.sup.c] we denote the successor of v for the value [x.sub.v] = c. The edge (v, [v.sup.c]), which connects nodes v and [v.sup.c], is called activated iff there exists an assignment [x.sub.v] = c. Activated edges, which connect [v.sub.i] and [v.sub.j] , make up an activated path l([v.sub.i], [v.sub.j]) [subset or equal to] V . An activated path l([v.sub.0], [V.sup.T]) from the root node v0 to a terminal node [V.sup.T] is called full activated path and [V.sup.T] itself is activated terminal node. Without loss of generality we assume further that each variable has at least two values, i.e. [for all]z [member of] Z, D(z) > 1.

Let S = X [union] Q and let [D.sub.i] designate a subset of D(S), such that assignments from it will activate the terminal node [V.sup.T].sub.i]. Thus D(S) is being split to non-intersecting sets [D.sub.1], ...,[D.sub.t], where t = |[V.sup.T]|. More formally,

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.]

Now it is easy to get an algebraic expression for the HLDD function [f.sub.k]. Let [alpha] [member of] D(S) be some assignment to input and control variables and [X.sub.i]: D(S) [right arrow] {0, 1} be the characteristic function of the set [D.sub.i], i.e. [X.sub.i]([[alpha].sub.1], ... , [[alpha].sub.n]) = 1 [left and right arrow] ([[alpha].sub.1], ... , [[alpha].sub.n]) [member of] [D.sub.i]. We will use a formula

[f.sub.k]([Z.sub.k]) = [case.sup.t.sub.i=1] [X.sub.i](S) [right arrow] gi(Zi) (1)

as a shorthand for the algorithm:

begin

if [alpha] [member of] [D.sub.1] then [f.sub.k]([Z.sub.k]) = g1([Z.sub.1]) endif ... if [alpha] [member of] [D.sub.t] then [f.sub.k]([Z.sub.k]) = gt([Z.sub.t]) endif

end

Let us continue with some examples:

Example 1. An HLDD in Fig. 3 evaluates the next state of the variable C. In this example Z = {C',A',B', q, [x.sub.A], [x.sub.B], [x.sub.C]}. The apostrophe means the previous value of the variable. Depending on the values of q, [x.sub.A], [x.sub.B] and [x.sub.C], the next value of C is its previous value C', negation [bar.C'] or A' + B'.

[FIGURE 3 OMITTED]

3. CHARACTERISTIC POLYNOMIALS

There are two ways to generate an HLDD for some digital system: one based on procedural description and another based on iterative superposition. These methods are described in [28]. Further research on HLDD properties requires us to make the following important assumption: each path in the diagram does not contain any of the control variables twice. Diagrams generated by the first algorithm really have such property. The second method can theoretically produce such paths. If we encounter the same variable two times in a path, we can duplicate all variables between the occurrencies of this variable and make an equivalent diagram without such redundancies. Let a path contain nodes, labelled by variables [x.sub.0], [x.sub.1], ..., [x.sub.k], [x.sub.0]. We should produce a new diagram, where this chain would be replaced by two new chains, [x.sub.0], [x.sub.1], ..., [x.sub.k] and [x.sub.1], ..., [x.sub.k], [x.sub.0]. The following theorem will help us.

Theorem 1. Suppose an HLDD, containing a chain of non-terminal nodes labelled by variables [x.sub.0], [x.sub.1], ..., [x.sub.k], [x.sub.0], was transformed in the following way:

--Remove nodes labelled [x.sub.0], [x.sub.1], ..., [x.sub.k], [x.sub.0]:

--Add 2(k + 1) nodes labelled [x.sub.1], ..., [x.sub.k], [x.sub.0] (the first chain) and [x.sub.0], [x.sub.1], ..., [x.sub.k] (the second chain).

--All connections from and to the nodes of the first chain will remain the same.

--All connections from and to [x.sub.0] occurence in the second chain will remain the same.

--Connections from other nodes to [x.sub.1], ..., [x.sub.k] in the second chain will be removed.

Then the result is equivalent to the original diagram.

Proof. We shall prove that the second diagram contains all paths from the first one that could be activated and vice versa. [right arrow]:

--Obviously, all paths not containing mentioned nodes remain unchanged.

--All paths containing the first occurrence of the [x.sub.0] can be activated in the second chain.

--All paths containing the second occurrence of the [x.sub.0] or only intermediate nodes [x.sub.1], ..., [x.sub.k] can be found in the first chain.

[left arrow]: The similar check for all possible paths in our two chains shows that they can be activated in the first diagram.

Example 2. Figure 4 illustrates the transformation described above. Some vertex and all edge labels are not shown because they are not important. We have a path x [right arrow] y [right arrow] z [right arrow] x that is being split in two chains x [right arrow] y [right arrow] z and y [right arrow] z [right arrow] x.

Suppose now that we have two HLDDs, representing the same functionality. They can look very different as the next examples illustrate.

Example 3. Figure 5 shows two HLDDs of the same function. The only difference is how we evaluate this function. The first diagram represents the situation when we first check the value of the variable X, then, if X equals 2, we check the Y value. The second diagram displays the process of evaluation starting with checking Y .

Example 4. Figure 6, left side, shows the diagram with 4 non-terminal nodes labelled by variables X, Y,Z. However, it is easy to see that the variable Y is redundant in this case and the diagram from the right side without this variable is the equivalent one.

[FIGURE 4 OMITTED]

[FIGURE 5 OMITTED]

[FIGURE 6 OMITTED]

Let us suppose we have two diagrams [G.sub.1] and [G.sub.2], with the same sets of control variables and terminal nodes and wish to prove that they are equivalent. Actually it means that the function (1) for both diagrams is the same. As the functions [g.sub.i] are the same, we should compare the corresponding characteristic functions. Without loss of generality we may assume that D([x.sub.i]) = {1, ... , |D([x.sub.i])|}. If not we may define a bijective mapping h : D([z.sub.i]) [right arrow] {1, ... , |D([x.sub.i])|} and use the values of this function instead of their originals. Then the following theorem takes place.

Theorem 2. The characteristic function of the set [D.sub.i], [X.sub.i](S), can be represented by a unique polynomial [P.sub.i] : [Q.sup.n] [right arrow] Q of degree at most [[SIGMA.sup.P.sub.i=1] (|D([x.sub.i])| - 1) where we have for each vector [alpha] = ([[alpha].sub.1], ..., [[alpha].sub.n]) [member of] D(S)

[X.sub.i]([[alpha].sub.1], ..., [[alpha].sub.n]) = [P.sub.i]([[alpha].sub.1], ..., [[alpha].sub.n]):

Proof. We have D(S) different vectors in [Q.sup.n]. The sought-for polynomial should be equal to 1 for vectors from [D.sub.i] and to 0 for vectors from D(S)\[D.sub.i]. In numerical analysis the Lagrange interpolation polynomial is well-known [33]: consider we have measured the values for a function f : [a, b] [right arrow] R at points [x.sub.0], ..., [x.sub.n], and obtained results are [y.sub.0], ..., [y.sub.n], then we can interpolate them to the whole segment [a, b] by a polynomial of degree at most n:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.]

If f is a polynomial of such degree then we get the exact result, otherwise there will be some error. Note that for x = [x.sub.0], ..., [x.sub.n] we will always get the exact result: P([x.sub.i]) = [y.sub.i] = f([x.sub.i]) and it is a polynomial of lowest degree that gives such result. This is the property we are interested in the current paper. Although in numerical analysis textbooks only the case of one-variable function is usually studied, these results can be easily transferred to the multiple-variable case. So, our sought-for polynomial [P.sub.i] is the Lagrange polynomial that evaluates to 1 for each vector from [D.sub.i] and to 0 for each vector from D(S)\[D.sub.i]:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.] (2)

The degree of this polynomial is at most [[SIGMA].sup.n.sub.i=1] (|D([x.sub.i])| - 1). Let us prove that this is the only polynomial of such degree.

--The basis. Let n = 1. Assume we have [member of] polynomials, P([x.sub.1]) and Q([x.sub.1]), deg P = degQ = |D([x.sub.1])| - 1 and [for all](i [member of] 1..|D([x.sub.1])|) P(i) = Q(i). Then the polynomial P - Q has |D([x.sub.1])| roots, from 1 to |D([x.sub.1])|, which could be only in case P [equivalent to] Q.

--The induction step. The proof is similar to the basis case one: assume we have [member of] polynomials, P([x.sub.1], ..., [x.sub.n]) and Q([x.sub.1], ..., [x.sub.n]), deg P = deg Q = [[SIGMA].sup.n.sub.i=1] (|D([x.sub.i])| - 1). After assigning values to [x.sub.1] we get |D([x.sub.1])| pairs of (n - 1)-variable polynomials. They are pairwise equal by induction hypothesis. Thus, the polynomial function P - Q : Q [right arrow] Q[[x.sub.2], ..., [x.sub.n]] of degree at most |D([x.sub.1])|-1 has |D([x.sub.1])| roots in Q[[x.sub.2], ..., [x.sub.n]]. Thus, P [equivalent to] Q.

Corollary 1. Two diagrams [G.sub.1] and [G.sub.2] are equivalent iff they have equal sets of control variables, terminal nodes and the polynomial representations (2) of characteristic functions for any two corresponding terminal nodes are the same.

We shall call the right side of formula [member of] the characteristic polynomial of the node [V.sup.T.sub.i]. The Algorithm 1 shows how to get such polynomials for a certain diagram. Here we shall prove that it is correct.

Theorem 3. The Algorithm 1 produces the set of characteristic polynomials for the diagram G.
Algorithm 1. Evaluation of characteristic polynomials.

Input: HLDD G
Output: The set of characteristic polynomials for G
we shall evaluate polynomials node by node. A polynomial
for node v will be denoted by [P.sub.v],
order all nodes in G topologically. Let T be an array of ordered nodes,
[P.sub.T[0]] = 1,
for v [member of] T do
   [P.sub.v] = 0,
end
for v [member of] T do
   for parentnode w of v do
      i = [c.sub.(w,v)];
      [MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.]
   end
end
return {[P.sub.v]|v [member of] [V.sup.T]}


Proof. Let W be a set of all paths from the root node to some terminal node [V.sup.T] . Each path w [member of] W activated by the assignment ([MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.]) will be represented in the resulting polynomial by the following summand:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.] (3)

(This can be easily proved by induction). The resulting polynomial will be the sum of these summands over all paths from W. As we have assumed in the beginning of the chapter, all variables in w are different. So, l [less than or equal to] n. The only difference between summands in (2) and (3) is the bound of the first product sign: generally, the path w should not contain all variables; some of them may be missing. This means that one path actually represents |D([r.sub.1]) x ... x D([r.sub.n-l])| assignments [MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.] where [MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.]. But we have

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.] (4)

This is the Lagrange polynomial that evaluates to 1 for all possible values from D([r.sub.1]) x ... x D([r.sub.n-l]). The simplest polynomial with such property is the constant 1, so they should coincide. Multiplying this polynomial with our summand gives the sum of D([r.sub.1]) x ... x D([r.sub.n-l]) summands, each representing certain assignment for the whole set of variables. Finally, adding them together results in the formula (2) (none of the summands will appear twice, because all paths have the same source node and thus assignments of corresponding paths will differ for at least one variable; otherwise they would never branch off).

Example 5. Let us now find the characteristic polynomials for HLDD from Example 1. First of all we change the labels of edges labelled by 0 to 5 for the one going from node q and to [member of] for others. We have 4 paths to the first terminal node: (q = 5), (q = 1), (q = 3, xC = 1), (q = 4, xA = 2). Thus,

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.]

For the second node we have two paths (q = 2, [x.sub.B] = 2) and (q = 3, [x.sub.C] = 2), so the second polynomial will be

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.]

Finally, paths (q = 2, [x.sub.B] = 2) and (q = 4, [x.sub.A] = 1) give us the third polynomial:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.]

4. PRACTICAL USAGE OF CHARACTERISTIC POLYNOMIALS

A skeptically minded reader, after looking at Eq. (2), may notice that the evaluation of such polynomial for a large modern digital system would take huge amount of time. This is true. However, we can get a lot of useful information about the function without evaluating it directly in analytical form. Here we are giving an algorithm that can be used in HLDD verification and is residing in complexity class P. It evaluates the coefficients of lower degrees. Before we provide it we should agree on mapping from D(z) to Z. Generally, each mapping is good except the ones containing zeroes. Multiplication by zero will lose information about some paths. Thus, for example in case of D(z) = 0, 1, ..., |D(z)| - 1 it is better to use mapping h(z) = z + 1. Indeed, assume 0 [member of] D(z) and we need to evaluate the constant term. In this case all assingnments with z [nit equal to] 0 will produce summands containing factor z in Eq. (2). The constant terms of these summands are equal to 0, so they are not taken into account when we evaluate the last coefficient of the whole polynomial.
Algorithm 2. Evaluating polynomial coefficients of degrees
[less than or equal to] k.

Input: HLDD G, maximal degree k
Output: Set of polynomials, one per each terminal node, that contain
   members of the
   characteristic polynomials with degree [less than or equal to] k
order all nodes in G topologically. Let T be an array of ordered
   nodes;
[P.sub.T][0] = 1;
for v [member of] T do
   [P.sub.v] = 0;
end
for v [member of] T do
   for parentnode w of v do
      i = [c.sub.(w,v)];
      [MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.]
      if [P.sub.v] contains coefficiens of degree > k delete them;
   end
end
return {[P.sub.v]|v [member of] [V.sup.T]}


Once we have chosen the proper mapping we can use Algorithm [member of] to calculate all coefficients of degrees [less than or equal to] n. This method cannot allow us to be 100% confident that our two diagrams are equivalent but if they are not then it can be found very quickly. We continue with an example.

Example 6. Let us introduce an error to the diagram in Fig. 3. For instance, let the edge ([x.sub.B],A'+B') now point to the first terminal node, C', as it is shown in Fig. 7. The characteristic polynomial of the third terminal node remains the same, while [member of] others will change:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII.]

As we see, even only the check for constant terms would detect the error.

[FIGURE 7 OMITTED]

5. CONCLUSIONS

A novel method for probabilistic equivalence checking of digital systems was proposed. It is based on representing the high-level decision diagrams as the model of digital systems by the sets of characteristic polynomials. It was shown that this representation is canonical, i.e. the sets of polynomials for equivalent diagrams are the same up to the names of the variables. Computing the full set of polynomials is unfeasible for large diagrams as it demands checking all assignments to the control variables. To cope with this problem we have developed a polynomial algorithm for probabilistic checking.

The algorithm calculates coeficients of low-degree summands up to the given fixed degree k. If the coeficients do not coincide, then the HLDDs are definitely different; if the coefficients coincide, then the HLDDs are with high probability equivalent whereas the probability depends on the chosen degree of k. To prove that the HLDDs are not equivalent is possible also by only comparing constant terms of the polynomial. For instance, in Example 6, we can see, that even a small erroneous change in the diagram is detectable by comparing constant terms.

The technique itself does not have limitations. However, for some classes of digital systems, optimization techniques may be needed to create efficient HLDD models, but this topic does not belong to the scope of the paper. Also, the equivalence checking of the terminal node functions was left uncovered. The general idea is that those functions are usually simple ones and can be verified using gate level methods. Nevertheless we plan to look at those functions more intently in our future research.

doi: 10.3176/eng.2010.1.06

ACKNOWLEDGEMENTS

The work has been supported by the European Commission Framework Program FP7 CREDES, by the European Union through the European Regional Development Fund, by the Estonian Science Foundation (grants Nos. 7068 and 7483), and Enterprise Estonia funded ELIKO Development Centre. 53

REFERENCES

[1.] Kapuer, R. High Level ATPG is important and is on its way! In Proc. IEEE International Test Conference. Atlantic City, NJ, 1999, 1115-1116.

[2.] Corno, F., Cumani, G., Sonza Reorda, M. and Squillero, G. Effective techniques for high-level ATPG. In Proc. IEEE Asian Test Symposium. Kyoto, Japan, 2001, 225-230.

[3.] Fin, A. and Fummi, F. Genetic algorithms: the philosopher's stone or an effective solution for high-level TPG? In Proc. IEEE High-Level Design Validation and Test Workshop. San Francisco, CA, 2003, 163-168.

[4.] Ferrandi, F., Fummi, F. and Sciuto, D. Implicit test generation for behavioral VHDL models. In Proc. IEEE International Test Conference. Washington, D.C., 1998, 436-441.

[5.] Xin, F., Ciesielski, M. and Harris, I. Design validation of behavioral VHDL descriptions for arbitrary fault models. In Proc. IEEE European Test Symposium. Tallinn, Estonia, 2005, 156-161.

[6.] Ghosh, I. and Fujita, M. Automatic test pattern generation for functional register-transfer level circuits using assignment decision diagrams. IEEE Trans. Comput.-Aided Des. Integrated Circuits Systems, 2001, 20, 402-415.

[7.] Zhang, L., Ghosh, I. and Hsiao, M. Efficient sequential ATPG for functional RTL circuits. In Proc. International Test Conference. Charlotte, NC, 2003, 290-298.

[8.] Armstrong, J. A., Lam, F. S. and Ward, P. C. Test generation and fault simulation for behavioural models. In Performance and Fault Modelling with VHDL (Shoen, J. M., ed.). Prentice Hall, Englewood Cliffs, NY, 1992, 240-303.

[9.] Cho, H. Ch. and Armstrong, J. A. B-algorithm--a behavioural test generation algorithm. In Proc. International Test Conference. Washington, D.C., 1994, 968-979.

[10.] Raik, J. and Ubar, R. Fast test pattern generation for sequential circuits using decision diagram representations. J. Electronic Testing: Theory and Applications, 2000, 16, 213-226.

[11.] Jervan, G., Ubar, R., Peng, Z. and Eles, P. Test generation: a hierarchical approach. In System-level Test and Validation of Hardware/Software Systems (Sonza Reorda, M., Peng, Z. and Violante, M., eds.), Springer, London, 2005, 63-77.

[12.] Chayakul, V., Gajski, D. D. and Ramachandran, L. High-level transformations for minimizing syntactic variances. In Proc. ACM/IEEE Design Automation Conference. Dallas, TX, 1993, 413-418.

[13.] Ubar, R. Test synthesis with alternative graphs. IEEE Des. Test Comput., 1996, 13, 48-57.

[14.] Ubar, R., Morawiec, A. and Raik, J. Back-tracing and event-driven techniques in high-level simulation with decision diagrams. In Proc. IEEE International Symposium on Circuits and Systems '00. Geneva, 2000, 208-211.

[15.] Ubar, R., Raik, J., Jutman, A., Instenberg, M. and Wuttke, H.-D. Modeling microprocessor faults on high-level decision diagrams. In Proc. International Conference on Dependable Systems & Networks. Anchorage, AL, 2008, C-17-C-22.

[16.] Di Guglielmo, G., Fummi, F., Marconcini, C. and Pravadelli, G. Improving gate-level ATPG by traversing concurrent EFSMs. In Proc. IEEE VLSI Test Symposium. Berkeley, CA, 2006, 172-179.

[17.] Guglielmo, G., Fummi, F., Jenihhin, M., Pravadelli, G., Raik, J. and Ubar, R. On the combined use of HLDDs and EFSMs for functional ATPG. In Proc. 5th IEEE East- West Design and Test International Symposium. Jerevan, Armenia, 2007, 503-508.

[18.] Lee, C. Y. Representation of switching circuits by binary decision programs. Bell Syst. Techn. J., 1959, 38, 985-999.

[19.] Ubar, R. Test generation for digital circuits with alternative graphs. Proc. Tallinn Technical University, 1976, No. 409, 75-81 (in Russian).

[20.] Plakk, M. and Ubar, R. Digital circuit test design using the alternative graph model. In Automation and Remote Control. Plenum Publishing Corporation, New York, 1980, 41, 714-722.

[21.] Akers, S. B. Functional testing with binary decision diagrams. J. Design Automat. Fault-Tolerant Comput., 1978, 2, 311-331.

[22.] Bryant, R. E. Graph-based algorithms for Boolean function manipulation. IEEE Trans. Computers, 1986, C-35, 677-691.

[23.] Minato, S. Binary Decision Diagrams and Applications for VLSI CAD. Kluwer, Norwell, MA, 1996.

[24.] Sasao, T. and Fujita, M. (eds.). Representations of Discrete Functions. Kluwer, Norwell, MA, 1996.

[25.] Drechsler, R. and Becker, B. Binary Decision Diagrams. Kluwer, Boston, Dordrecht, London, 1998.

[26.] Ubar, R. Multi-valued simulation of digital circuits with structurally synthesized binary decision diagrams. In Multiple Valued Logic. Gordon and Breach Publishers, 1998, vol. 4, 141-157.

[27.] Jutman, A., Raik, J. and Ubar, R. SSBDDs: Advantageous model and efficient algorithms for digital circuit modeling, simulation & test. In Proc. 5th International Workshop on Boolean Problems. Freiberg, Germany, 2002, 157-166.

[28.] Ubar, R., Raik, J., Karputkin, A. and Tombak, M. Synthesis of high-level decision diagrams for functional test pattern generation. In Proc. 16th International Conference on Mixed Design of Integrated Circuits and Systems. Lodz, Poland, 2009, 519-524.

[29.] Ubar, R., Vassiljeva, T., Raik, J., Jutman, A., Tombak, M. and Peder, A. Optimization of structurally synthesized BDDs. In Proc. 4th IASTED International Conference on Modelling, Simulation and Optimization. Kauai, HI, 2004, 234-240.

[30.] Agrawal, V. D. and Lee, D. Characteristic polynomial method for verification and test of combinational circuits. In Proc. 9th International Conference on VLSI Design: VLSI in Mobile Communication. Bangalore, India, 1996, 341-342.

[31.] Jain, J., Bitner, J., Fussell, D. S. and Abraham, J. A. Probabilistic design verification. ICCAD-91. In Digest of Technical Papers., 1991 IEEE International Conference on Computer-Aided Design. Santa Clara, CA, 1991, 468-471.

[32.] Dubrova, E. and Sack, H. Probabilistic verification of multiple-valued functions. In Proc. 30th IEEE International Symposium on Multiple-Valued Logic. Portland, OR, 2000, 460-466.

[33.] Atkinson, K. A. An Introduction to Numerical Analysis, 2nd ed. J.Wiley, New York, 1989.

Anton Karputkin (a), Raimund Ubar (a), Jaan Raik (a) and Mati Tombak (b)

(a) Department of Computer Engineering, Tallinn University of Technology, Raja 15, 12618 Tallinn, Estonia, {kanton, raiub, jaan}@pld.ttu.ee

(b) Department of Informatics, Tallinn University of Technology, Raja 15, 12618 Tallinn, Estonia, mati@ut.ee

Received 28 October 2009, in revised form 26 January 2010
Table 1. Functions of the blocks of system in Fig. 1

[y.sub.1]   [M.sub.1]/a   [y.sub.2]   [M.sub.2]/b   [y.sub.3]

            [R.sub.1]     0           [R.sub.1]     0
0           IN            1           IN            1
1                                                   2
                                                    3
[y.sub.1]   [M.sub.3]/e   [y.sub.4]   [R.sub.2]

0           [M.sub.1] +   0           0
            [R.sub.2]
1           IN            1           [R.sub.2]
            [R.sub.1]     2           [M.sub.3]
            [M.sub.2] *
            [R.sub.2]
联系我们|关于我们|网站声明
国家哲学社会科学文献中心版权所有