基于STG与Petrify的异步电路设计

时间:2022-03-18 04:18:49

基于STG与Petrify的异步电路设计

摘 要:随着集成电路设计工艺的进步,异步电路相对于同步电路的优越性将越来越明显,异步技术也将越来越成为研究的热点,预计未来集成电路设计将会更多地采用异步技术。Petri网具有的一些特性非常适用于异步电路设计。通过采用petri网的一类子系统STG设计异步电路,并使用一个异步电路设计工具Petrify完成整个设计过程。

关键词:集成电路;异步电路;petri网;状态转移图和Petrify

中图分类号:TN710 文献标识码:B 文章编号:1004373X(2008)1601104

Design of Asynchronous Circuit Based on STG and Petrify

XIE Ye

(Electrical College,Jiangsu University,Zhenjiang,212013,China)

Abstract:With the advancement of design technics,the IC system will require asynchronous techniques in the future as the asynchronous method has more advantages than synchronous method.And the research of asynchronous technique is a hotspot.Asynchronous circuit design using Petri net is very effective because of the property of PN.The paper discusses the design of asynchronous circuit based on STG with the help of EDA tool petrify.

Keywords:integrated circuit;asynchronous circuit;petri net;STG and Petrify

1 引 言

随着集成电路技术发展进入深亚微米后,器件尺寸不断缩小,单芯片的集成容量不断扩大,同步集成电路设计将面临着在芯片中出现大量参数变异情况,因此不再能够有效控制时钟网络中的延迟以及其他的一些全局信号。相对于同步电路,异步电路具有以下的一些优良特性:无时钟偏斜、平均性能代替了最差性能、消除了全局时钟问题、良好的移植潜力、良好的环境适应能力以及很强的互斥性等。据国际半导体技术委员会(International Technology Roadmap on Semiconductors)预测,在未来嵌入式系统和片上系统的设计将会越来越多的采用异步技术的设计方法[1]。

异步电路设计方法的研究一直是业界和学术界的一个热点,现在已经提出了多种异步电路设计方法,在这些方法中有不少是采用petri网设计异步电路。因为petri网的一些内在属性使得它非常适合用于描述和分析并发系统,也就异步系统。Petri 网是常用于描述并发系统的一种形式化语言,非常适合表示系统内部事件之间的并发性、选择性和因果性。Petri网具有以下一些特性[2]:

(1) 一种理解简单,使用方便的图形表示法;

(2) 具有强大的模拟功能能够在不同的抽象级对各种异步系统进行行为级描述;

(3) 形式化的运算语法能够保证安全性及验证的正确性;

(4) 能够从网模型直接对电路进行综合。Petri 网已经广泛地用于:设计和描述异步电路、操作系统和分布计算的资源分配、并发程序的分析、性能分析和时序验证以及高级电路设计中。

2 petri网和STG的基本定义[3]

基本Petri网为四元组,N={P,T,F,M0},其中P={P1,P2,…,Pm}为库所集,T={t1,t2,…,tn}为变迁集,F粒P×T)∪(T×P)为网的流关系,M0:P{0,1}为初始标识。记t={pO(p,t)∈F}为变迁的前置集,t′={pO(t ,p)∈F}为变迁的后置集。PN的库所中可能含有托肯(token),变迁在一定条件下可以激活,若t在标识M下是授权的,则t可激活,变迁激活后产生新的标识M′,记作M[t>M0′。

petri 网是一族相关网模型的总称,它并不是单个和已经精确定义了的模型。通常会根据某些实际应用情况给petri 网加上特定约束。信号转移图(Signal Transition Graph,STG)就属于petri网的一种约束类,STG是常用于描述异步电路行为特性的一类petri网, 它是一种1有界petri 网,只允许简单的输入选择。一个STG是一个三元方程组G=(N,Y,λ),N=(P,E,F,m0)表示的是一个PN;Y是一个非空的二进制信号组,λ:EY×{+,-,~}。y.+(y.-)表示信号y的上升沿(下降沿)(在4相信号中),而y.~表示y的一个信号跳变(在两相信号中)。因此,STG就是一个由二进制跳变标识PN的事件集合。

STG是具有以下这些特性的一类petri 网:

(1) 输入自由选择:多个输入的选择必须只能由互斥输入控制;

(2) 1有界:每个库所中托肯数量不超过1;

(3) 活性:必须保证STG不会进入死锁状态;

描述速度无关电路的一个STG必须具备以下一些特性:

(4) 一致状态赋值:在STG的任何执行过程中某个信号的跳变必须严格的在+和-之间进行;

(5) 持续性:如果某个信号跳变处于使能状态,则必须保证它会激发,即这个信号跳变不会因为别的信号跳变而变成不使能;

要使STG能够进行综合,则还必须具备以下这个特性:

(6) 完全状态编码(CSC):在STG中不允许2个或2个以上的不同标识具有相同的信号值。否则还必须引入额外的状态变量,使不同的标识对应不同的状态。

3 STG描述电路的基本模块

STG基本可以用于描述各种复杂度异步电路的行为特性,但这些电路一般都是由以下4个基本构造块(fork,join,choice和merge)按照一定的组合方式实现。图1所示的是4个常用的构造块。图2所示的是一些基本门电路的PN模型。

图1 fork,join,choice和merge的Petri网描述常用的一些基本门电路对应的PN模型如图2所示[4]。

图3所示的由fork,join,choice和merge构成的一个PN的例子。从图3中可知,库所P1是一个选择库所(choice),它既可以通过变迁T1把托肯传送到库所P2,P3和P4中去也可以通过变迁T6把托肯传送给库所P9。当托肯传给库所P2,P3和P4后,接着通过变迁T2,T3和T4在分别把其中的托肯传给库所P5,P6和P7,然后一个变迁T5(Join),再把托肯传给库所P8;当迁T6把托肯传送给库所P9后经过T7然后把托肯传给库所P8。再经过一个Merge,经过变迁T8后把P8中的托肯传给P1。

图2 基本门电路的PN模型图3 由基本构造块构成的一个PN模型图3由基本构造块构成的一个PN模型由这些基本模块再加上一些其他的控制单元可以用于描述绝大部分的异步电路。用Petri网对电路进行描述后则可以通过一些相应的综合工具把描述转化成电路实现。

4 通过petrify来实现一个2位缓冲器电路

4.1 STG的综合步骤

对电路的综合是异步电路设计过程中最重要也最为复杂。采用STG描述电路后通过对其进行综合得出电路的实现。综合过程主要由以下几个步骤构成[5]:

(1) 采用STG准确描述电路的行为特性以及它的(虚拟)外部环境。

(2) 检验所得到的STG是否满足以下条件:1有限、一致状态赋值、活性、仅输入自由选择且受控选择、持续性以及完全状态编码(CSC)。

(3) 选择一个实现模块并且计算每个变量所对应的布尔表达式,如果采用的是状态保持元件则相应的要计算置位复位功能的布尔表达式。

(4) 计算出所采用的实现模块的布尔表达式。

(5) 手工修改实现,如通过一个确定的复位信号或初始化信号可以强制使电路进入一个期望的初始状态。

(6) 把设计输入到CAD工具进行仿真且对电路(或者是由电路组成的系统)进行布局布线。

由于要得到电路状态必须要知道电路中所有信号值大小,因此综合过程中的计算就可能会非常复杂,即使是很小的电路其计算量也可能会很大。所以一般都需要采用专门的EDA工具完成这个步骤,在这采用工具Petrify来完成综合过程。

4.2 用Petrify实现一个2位缓冲器

Petrify是一个用于综合有限petri网和逻辑综合异步控制器的设计工具。Petrify主要是可以对petri 网进行操作以及从STGs描述得到综合速度独立 (speedindependent, SI)控制电路,它是一个公开的工具。

petrify可以解释petri网成一个信号转移图(STG),此时事件是用数字信号的上升/下降跳变来表示。从STG开始,Petrify通过状态编码、逻辑综合、逻辑分解和工艺映射到门元件库等几个步骤可以综合成一个电路。在设计过程中还可以对要进行综合的petri网加上一些所需要的特性(如自由选择、惟一选择、纯petri 网和状态机分解等)。Petrify也可以由设计者或工具自动生成的时序假设条件对电路进行综合。

下面将用petrify实现一个简单的电路,用握手协议实现一个2位缓冲器电路。图4所示是这个电路的STG图和输入到petrify中的文本描述。

图4 2位缓冲器电路的STG和文本输入描述把电路的文本描述输入到petrify工具中,对其进行综合。首先petrify会判断STG描述是否满足CSC的条件,即STG中不允许2个或2个以上的不同标识具有相同的信号值。如果不满足这个条件,Petrify会自动的插入一些变量来使解决这个问题。以下所示便是petrify运行后的结果:

\#./petrify/usr/soft/examples_petrify/buf_2.g

State coding conflicts for signal a

State coding conflicts for signal b

The STG has no CSC.

Adding state signal:csc0

State coding conflicts for signal a

State coding conflicts for signal csc0

The STG has no CSC.

Adding state signal:csc1

State coding coflicts for signal a

State coding conflicts for signal csc0

The STG has no CSC.

Adding state signal:csc2

The STG has CSC.

由上可知,这个电路的在综合过程中,petrify首先提示信号a和信号b中出现了状态编码冲突问题,通过插入状态信号变量csc0,csc1和csc2达到CSC的要求。

在综合开始时设计者可以根据自己的需要选择不同电路实现方式:包括使用复杂门实现、标准C元实现和普通C元实现等多种方式。一旦选择了某种实现方式后,Petrify便可得出相应变量的布尔表达式。以下将给出这个2位缓冲器的普通C元实现和复杂门实现这2种方式。

4.2.1 两位缓冲器的普通C元实现方式

C元是异步电路实现的一个最基本的元件,广泛用于异步电路中。它包括普通C元和标准C元等。

\# more buf_2.gcnout.eqn

#EQN file for model buf_2

#Generated by./petrify 4.2(compiled 150ct03 at 3:06 PM)

#Outputs be tween brackets"\"indicate a feedback to input "out"

#Estimated area=27.00

INORDER=a b csc0 csc1 csc2;

OUTORDER=\ \ \ \ \;

\=csc0′ csc2+csc1′;

\=csc0′;

\=csc1 csc2;

\=a csc0′ csc2;

\=b csc1′ csc2;

\=csc2(\+csc0)+csc0\;#mappable onto gC

\=a(\+csc1)+csc1\;#mappable onto gC

\=b(\+csc1)+csc2\;#mappable onto gC

从petrify中得出的结果可以看到各个变量的布尔表达式([a]=csc0′csc2+csc1′,[b]=csc0′)以及插入的状态变量csc0,csc1和csc2的值,同时还估计出电路的面积为27个单位

4.2.2 两位缓冲器的复杂们实现

复杂门实现是指电路不是由基本的门元件组合来实现而是采用一个复杂门实现。

#EQN file for model buf_2

#Generated by./petrify 4.2(compiled 15Oct03 at 3:06 PM)

#Outputs between brackets"\"indicate a feedback to input "out"

#Estimated ared=14.00

INORDER=a b csc0 csc1 csc2;

OUTORDER=\ \ \ \ \;

\=csc0′ csc2+csc1′;

\=csc0′;

\=csc2(csc0+csc1);

\=a(csc0′ csc2+csc1);

\=b(csc2+csc1′)

可以看出,采用不同的实现方式得出的结果也存在很大的不同,此时电路的中虽然变量a和b的布尔表达式是相同但实现过程完成不一样,而且插入的变量csc0,csc1和csc2的值也与前面那种实现方式不同;还可以看出估计的实现电路面积为14个单位,这大大小于普通C元实现方式。以上所示的是2位缓冲器的2种实现方式,设计者还可以选择其他的实现方式,或者建立自己的元件库,而通过调用元件库中实现电路。以上只是实现一个简单的例子,petrify还可以设计更为复杂的异步电路。

5 结 语

随着集成电路设计的发展,电路的规模越来越大,传统的同步技术将不能满足系统设计的要求,预计未来的系统设计将越来越多地采用异步技术。Petri网由于其内在的特性,非常适合用于异步电路设计的多个步骤中,也必将是异步电路设计方法研究的一个热点方向。

参 考 文 献

[1]Alain J Martin,Mika Nystrom.Asynchronous Techniques for SystemonChip Design[J].Proceeding of the IEEE,2006,94(6):1 0891 090.

[2]Yakovlev A,Semenov A.Petrinet and Asynchronous Circuit Design.The Institution of Electrical Engineers,1996.

[3]R.大卫,H.奥兰.佩特利网和逻辑控制器图形表示工具(GRAFACE)\.黄建文,赵不贿,译.北京:电子工业出版社,1996.

[4]司玉娟,王万树.时序逻辑电路的petri网分析方法\.计算机学报,1996,19(7):492494.

[5]Jens Sparso,Steve Furber.Principles of Asynchronous Circuit DesignA System Perspective\.Kluwer Academic Publishers,2001.

[6]祝习兵,胡健生,黄金志,等.基于CPLD的基本Petri网系统的硬件实现\.现代电子技术,2004,27(3):102105.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:基于综合特征和SVM相关反馈的图像检索 下一篇:一种变遗忘因子RLS算法的分析与仿真