猝发模式异步控制电路设计方法

文档序号:6572254阅读:467来源:国知局
专利名称:猝发模式异步控制电路设计方法
技术领域
本发明涉及大规模异步控制电路的设计方法,尤其是大规模猝发模式(burst-mode)异步控制电路的设计方法。

背景技术
由于集成电路规模的扩大、特征尺寸的减小、设计主频的提高以及制造工艺的限制,同步电路中原先可以忽略的线延迟、时钟树负载等日益突出,设计方法上也面临着许多难以解决的问题(特别是时钟偏差问题)。相对而言,异步电路不需要全局时钟,有效地避免了复杂的时钟树设计及其时钟偏差问题,同时以可移植性好、模块化程度高、抗电磁干扰能力强、功耗低等诸多特性逐渐成为电路设计研究的热点。
异步电路的发展可以说在很大程度上取决于异步电路设计方法与EDA工具的完善和成熟。由于异步电路与同步电路的主要差异在于电路的控制逻辑,其数据通路基本一致,因此现有的异步电路设计方法一般说来都是利用已有的同步电路的设计流程和商用EDA工具进行异步数据通路设计,而将工作重点放在异步控制电路设计上。
根据异步控制电路的类型以及描述机制的不同,异步控制电路设计方法可以大致划分为基于CSP的方法、基于Petri网的方法以及基于有限状态机的方法三类 A.基于CSP(Communicating Sequential Processes)的方法主要采用Balsa、Tangram、DI-Algebra、DISP(DI Sequential Processes)以及CHP(Communicating Hardware Processes)等CSP类异步描述语言对控制电路的行为进行描述,经由语法驱动的转换(syntax-directed translation)得到延迟无关或者准延迟无关异步控制电路。这类方法可以在较高层次对电路行为进行描述,能够较为充分地挖掘异步控制电路的并行性,其缺点是 a)无法运用全局优化技术,设计得到的电路工作效率不高; b)CSP类异步描述语言语法晦涩,相关EDA工具不完善,难以得到广泛的接受和使用; B.基于Petri网的方法主要采用LPN(Labeled Petri Net)、STG(SignalTransition Graph)或者CD(Change Diagram)等对控制电路的行为进行描述,经由可达性分析、状态编码、布尔表达式生成、逻辑分解以及工艺映射得到速度无关异步控制电路。这类方法可以在较低层次描述电路行为,能够在优化时使用时序信息,产生较为高效的电路结构,其缺点是采用无限门延迟模型,对线延迟忽略不计,导致电路存在一些不必要的开销。同时,对于深亚微米工艺而言,线延迟占有主导地位,电路的延迟假设可能不再适用。
C.基于有限状态机的方法主要采用异步有限状态机(Asynchronous FiniteState Machine)或者猝发模式状态机(Burst Mode Machine)对控制电路的行为进行描述,经由状态归约、状态赋值、逻辑综合以及工艺映射分别得到基本模式Huffman电路和猝发模式异步控制电路。这类方法与基于有限状态机的同步电路设计方法类似,可以充分利用或者借鉴现有的设计方法和EDA工具加以处理,不足之处在于不允许输入和输出并发变化,当且仅当电路完全稳定,也就是电路的状态不再发生变化的时候,电路的外部输入信号才允许改变,由此导致电路的运行周期加长,工作效率降低。
通过比较上述方法的优势与不足可知,基于有限状态机的异步控制电路设计方法更具可行性和实用性。
猝发模式状态机是基于有限状态机的异步控制电路设计方法所常用的描述机制,它采用类似于同步Mealy机的状态转换图对电路行为进行说明。猝发模式状态机源于异步有限状态机,但是对异步有限状态机的描述能力进行了扩展降低异步有限状态机的基本假设要求(异步有限状态机要求对前一个输入信号的响应稳定之前,当前输入信号不发生变化),允许猝发输入(非空的输入信号集合)中的信号以任何顺序发生变化。当然,猝发模式状态机仍然要求各个猝发输入之间必须满足基本假设。
猝发模式状态机M通常采用7元偶<V,E,I,O,v0,transi,transo>进行形式化描述,其中V是状态节点集合,节点v∈V对应于M的状态v,EV×V是有向边集合,有向边e=<u,v>∈E连接节点u和v,用于描述M中状态u和v之间的转换,I={x1,…,xm}是输入信号集合,O={z1,…,zn}是输出信号集合,节点v0∈V定义为起始状态节点,与M的起始状态v0相对应。有向边标记函数transiE→{-,+}I和transoE→{-,+}O分别用于指定状态转换时的猝发输入变迁和猝发输出变迁,也就是状态转换过程中猝发输入和猝发输出的变化情况。对于任意有向边e∈E,其对应的猝发输入和猝发输出采用“|”加以区分,“|”之前为猝发输入,之后为猝发输出,猝发输出允许为空。
猝发模式异步控制电路经由猝发模式状态机得到,由猝发输入、猝发输出、组合逻辑电路以及反馈回路构成,组合逻辑电路采用有限延迟模型,反馈回路采用无限反馈延迟模型。电路的当前状态保存在反馈回路中,电路的猝发输出和下一状态由猝发输入、当前状态以及部分输出信号的反馈共同决定。
对基于有限状态机的异步控制电路设计方法而言,由于在逻辑综合阶段需要进行完备的状态空间搜索,面临状态空间爆炸问题,因此仅仅适用于中小规模控制电路的设计。为了有效地提高猝发模式异步控制电路的设计规模,哥伦比亚大学的异步电路与系统研究小组在文章A Cycle-BasedDecomposition Method for Burst-Mode Asynchronous Controllers中提出了一种大规模猝发模式异步控制电路的分解设计方法,该方法首先对复杂的猝发模式状态机进行层次化分解,获得相互独立的猝发模式子状态机,各子状态机的输入均为外部环境的输入信号,子状态机之间不存在输入输出上的制约关系;然后利用已有的异步控制电路综合工具(加利福尼亚大学的3D和哥伦比亚大学的MINIMALIST)对各子状态机分别进行综合得到对应的猝发模式子控制电路模块;接着对各子控制电路模块进行调整,增加输入信号锁存模块以解决子控制电路模块之间的仲裁问题(由于子控制电路模块是相互独立的,输入信号的变化可能导致多个子控制电路模块同时被驱动,为此需要合理选择允许运行的子控制电路模块);最后将各子控制电路模块进行连接获得最终的猝发模式异步控制电路。该方法存在两点不足一是采用深度优先搜索算法进行猝发模式状态机的层次化分解,分解效率较低;二是子控制电路模块的仲裁机制要求各子控制电路模块之间存在严格的时序约束,在电路设计过程中很难得到满足,因此这种方法难以有效地付诸实际应用。


发明内容
本发明要解决的技术问题是改进现有猝发模式异步控制电路的设计方法,提高设计规模,使大规模猝发模式异步控制电路实用化。利用猝发模式状态机所对应有向图的有向回路集合对状态机进行分解得到相互独立的猝发模式子状态机;对各子状态机进行调整,采用请求/应答信号实现相应子状态机之间的四段握手通信;设计猝发模式接口状态机解决相应子状态机之间的仲裁问题。
本发明的技术方案是 本发明包括分解猝发模式状态机、调整猝发模式子状态机、设计猝发模式接口状态机、再调整猝发模式子状态机、实现子控制电路模块和接口控制电路模块以及合成猝发模式异步控制电路六步。具体步骤是 1.利用猝发模式状态机M所对应有向图的有向回路集合对M进行层次化分解,得到K级猝发模式子状态机,K为M分解得到的猝发模式子状态机的总级数。
分解流程为 (1)根据M所对应有向图G=<V,E>的有向回路集合C确定初始子状态机集合S任一有向回路c(c∈C)在M中的对应结构,包括状态节点、有向边及相应的猝发输入和猝发输出,构成一个初始子状态机s(s∈S)。
(2)确定判定节点集合DG中所有出度大于2的顶点在M中的对应状态节点即为判定节点。
(3)M中起始状态节点v0到最近的判定节点d1∈D之间的有向通路及相应的猝发输入和猝发输出构成第一级猝发模式子状态机,第一级子状态机的起始状态节点为v0;所有包含判定节点d1的初始子状态机均为第二级猝发模式子状态机,第二级子状态机的起始状态节点为d1。
(4)设定子状态机级数N=2。
(5)从S中删除所有第N级猝发模式子状态机。
(6)对S进行判断,如果S不为空,跳转至步骤(7);如果S为空则M分解完成。
(7)对第N级猝发模式子状态机逐一进行判断,如果存在除起始状态节点之外的其他判定节点(可能不是唯一的,不失一般性记为dNi,i=1,…,l,l为第N级猝发模式子状态机中除起始状态节点之外的判定节点数目),则S中所有包含dNi的初始子状态机均为第N+1级猝发模式子状态机,起始状态节点为dNi。
(8)调整子状态机级数N=N+1,跳转至步骤(6)。
2.增加额外的请求/应答信号,对第1级至第K级所有的猝发模式子状态机进行调整,实现相邻两级子状态机之间的四段握手通信,去除相邻两级子状态机之间的时序要求。对第1级至第K级所有的猝发模式子状态机进行调整的方法是 (1)在第N级猝发模式子状态机MN(1≤N≤K-1)中,增加辅助状态节点vN与除起始状态节点之外的判定节点dN相连接;设定有向边<dN,vN>对应的猝发输入变迁和猝发输出变迁分别为ackN+和reqN-;设定有向边<vN,dN>对应的猝发输入变迁和猝发输出变迁分别为ackN-和reqN+;以dN为终点的有向边(<vN,dN>除外)的猝发输出变迁增加reqN+。(+代表信号由0到1的变迁,-代表由1到0的变迁) (2)记MN对应的第N+1级猝发模式子状态机分别为MN+11,…,MN+1L,L为第N+1级猝发模式子状态机的个数,在MN+1i(i=1,…,L)中,以起始状态节点dN为起点的有向边的猝发输入变迁和猝发输出变迁分别增加reqN+1i+和ackN+1i+,以节点dN为终点的有向边的猝发输入变迁和猝发输出变迁分别增加reqN+1i-和ackN+1i-。
MN与任意第N+1级猝发模式子状态机MN+1i的通信过程为 (1)MN进入状态dN,同时将信号reqN置为高,启动握手操作,请求触发第N+1级子状态机; (2)MN+1i接收来自MN的触发请求reqN+1i+,然后将信号ackN+1i置为高加以确认; (3)MN接收来自MN+1i的应答信号ackN+,进入状态vN,同时将信号reqN置为低,对握手操作进行复位; (4)MN+1i接收来自MN的复位请求reqN+1i-,然后将信号ackN+1i置为低,加以确认; (5)MN接收来自MN+1i的应答信号ackN+,回到状态dN,同时再次将信号reqN置为高,进行新的通讯。
对于MN与任意第N+1级猝发模式子状态机MN+1i而言,由于采用延迟无关的四段握手协议进行通讯,MN+1i接收到MN所发送的触发请求之后才能执行,MN+1i执行时MN被中断,MN+1i执行完毕MN才能进行执行,因而可以有效地去除相邻两级子状态机之间的时序要求。
由于MN+11,…,MN+1L是相互独立的,也就是说各子状态机之间不存在输入输出上的制约关系,因此某个输入信号的变化可能导致多个子状态机同时被触发,从而产生子状态机的仲裁问题。
3.在相邻两级子状态机之间设计猝发模式接口状态机,对子状态机是否触发进行仲裁。
对于任意第N级猝发模式子状态机MN及其对应的第N+1级猝发模式子状态机MN+11,…,MN+1L而言,1≤N<K,L为第N+1级猝发模式子状态机的总数目;子状态机MN除起始状态节点之外的判定节点为dN,辅助状态节点为vN,以节点dN为起点的有向边eN≠<dN,vN>所对应的猝发输入为BIN,相应的猝发输入变迁为transi(eN);子状态机MN+1i(i=1,…,L)以起始状态节点dN为起点的有向边eN+1i所对应的猝发输入为BIN+1i,其相应的猝发输入变迁为transi(eN+1i)。
接口状态机的设计方法是 (1)确定接口状态机的输入输出信号。接口状态机与MN,MN+11,…,MN+1L相连接,输入信号包括猝发输入BIN,BIN+11,…,BIN+1L、子状态机MN的请求信号reqN以及子状态机MN+11,…,MN+1L相应的应答信号ackN+11,…,ackN+1L;输出信号包括子状态机MN的应答信号ackN、子状态机MN+11,…,MN+1L相应的请求信号reqN+11,…,reqN+1L以及辅助信号pseu。
(2)确定接口状态机状态节点的数目。当N=1时,接口状态机仅需要解决MN+11,…,MN+1L之间的触发仲裁问题,此时需要3L+1个状态节点,记为dN,v11,…,vL1,v12,…,vL2,v13,…,vL3。当1<N<K时,接口状态机不仅需要解决MN+11,…,MN+1L之间的触发仲裁问题,而且需要解决MN与MN+11,…,MN+1L之间的触发仲裁问题,此时需要3L+3个状态节点,记为dN,v01,v11,…,vL1,v02,v12,…,vL2,v13,…,vL3。
(3)确定状态节点之间的有向边及其对应的猝发输入/猝发输出变迁。
a)有向边<dN,v01>,对应的猝发输入变迁为reqN+,transi(eN),猝发输出变迁为pseu+;有向边<v01,v02>,对应的猝发输入变迁为reqN-,猝发输出变迁为pseu-;有向边<v02,dN>,对应的猝发输入变迁为

对于任意信号x∈BIN,如果x+∈transi(eN),则如果x-∈transi(eN),则 b)对于任意i=1,…,L,有向边<dN,vi1>,对应的猝发输入变迁为reqN+,transi(eN+1i>,猝发输出变迁为reqN+1i+;有向边<vi1,vi2>,对应的猝发输入变迁为ackN+1i+,猝发输出变迁为ackN+;有向边<vi2,vi3>,对应的猝发输入变迁为

猝发输出变迁为reqN+1i-;有向边<vi3,dN>, 对应的猝发输入变迁为ackN+1i-,猝发输出变迁为ackN-。
对于第一级子状态机而言,除<d1,v1>之外不存在其他以节点d1为起点的有向边,连接第一级子状态机和第二级子状态机的接口状态机无需输出辅助信号pseu,因此这个接口状态机最简单。
在第N级猝发模式子状态机MN及其对应的第N+1级猝发模式子状态机MN+11,…,MN+1L之间设计接口状态机之后,当MN进入状态dN时,MN将启动握手操作,请求接口状态机进行仲裁,接口状态机则根据外部环境输入信号的变化情况进行判断,对子状态机是否触发进行仲裁,方法为 (1)如果猝发输入变迁reqN+,transi(eN+1i)先有效,那么接口状态机进入状态vi1,选择触发第N+1级子状态机MN+1i,具体过程为 a)接口状态机接收来自MN的仲裁请求reqN+,当猝发输入变迁transi(eN)有效时进入状态vi1,同时将信号reqN+1i置为高,请求触发MN+1i; b)MN+1i接收来自状态机的触发请求reqN+1i+,将信号ackN+1i置为高,对触发请求加以确认; c)接口状态机接收来自MN+1i的应答信号ackN+1i,进入状态vi2,同时将信号ackN置为高,对仲裁请求加以确认; d)MN接收来自接口状态机的应答信号ackN+,进入状态vN,同时将reqN置为低,对仲裁请求进行复位; e)接口状态机接收来自MN的仲裁复位请求reqN-,进入状态vi3,同时将reqN+1i置为低,对触发请求进行复位; f)MN+1i接收来自接口状态机的触发复位请求reqN+1i-,等待相应的猝发输入变迁有效,然后进入状态dN,同时将信号ackN+1i置为低,对触发复位加以确认; g)接口状态机接收来自MN+1i的应答信号ackN+1i-,回到状态dN,同时将信号ackN置为低,对仲裁复位加以确认; h)MN接收来自接口状态机的应答信号ackN+,回到状态dN,同时再次将信号reqN置为高,进行新的仲裁。
(2)如果猝发输入变迁reqN+,transi(eN)先有效,那么接口状态机进入状态v01,选择继续运行MN,具体过程为 a)接口状态机接收来自MN的仲裁请求reqN+,当猝发输入变迁transi(eN+1i)有效时进入状态v01,同时将信号pseu置为高; b)MN接收来自接口状态机的辅助信号变迁pseu+,然后将reqN置为低进行复位; c)接口状态机接收复位请求reqN-,进入状态v02,同时将信号pseu置为低; d)MN接收来自接口状态机的辅助信号变迁pseu-等待相应的猝发输入变迁有效,进而继续运行; e)接口状态机等待相应的猝发输入变迁有效,然后回到状态dN,等待新的仲裁请求。
4.再次调整第2级到第K-1级的所有猝发模式子状态机MN,2≤N<K,实现N级猝发模式子状态机与对应N+1级子状态机之间的仲裁。
对于第N级猝发模式子状态机MN及其对应的第N+1级子状态机MN+11,…,MN+1L而言,采用接口状态机进行仲裁时,MN将根据接口状态机的辅助输出信号pseu是否发生变迁来决定是继续运行还是等待某一个N+1级子状态机被触发并运行完毕。为此,MN需要引入新的输入信号pseu,进行再调整。
MN除起始状态节点之外的判定节点为dN,除辅助状态节点vN以外与dN通过有向边连接的节点为vc;有向边<dN,vN>对应的猝发输出变迁reqN-,有向边eN=<dN,vc>所对应的猝发输入变迁和猝发输出变迁分别为transi(eN)和transo(eN)。
调整方法为 (1)删除有向边<dN,vc>及其相应的猝发输入变迁transi(eN)和猝发输出变迁transo(eN); (2)增加额外的状态节点v,设定有向边<dN,v>对应的猝发输入变迁和猝发输出变迁分别为pseu+和reqN-;设定有向边<v,vc>对应的猝发输入变迁和猝发输出变迁分别为pseu-,transi(eN)和transo(eN)。
5.对所有的猝发模式子状态机和猝发模式接口状态机采用已有的基于有限状态机的异步控制电路设计方法和工具进行状态归约、状态赋值、逻辑综合以及工艺映射,得到相应的子控制电路模块和接口控制电路模块。
6.将所有的子控制电路模块和接口控制电路模块按照对应信号进行连接得到最终的猝发模式异步控制电路。
采用本发明可以达到以下技术效果 1.本发明充分利用猝发模式状态机所对应有向图的有向回路集合对状态机进行层次化分解,比基于深度优先搜索的分解算法分解效率更高,处理规模更大; 2.通过额外设计的猝发模式接口状态机有效地解决了各子状态机之间的仲裁问题,设计方法简单且不需要增加任何时序约束; 3.利用请求/应答信号实现相应子状态机之间的四段握手协议进行通信,有效地去除了各子状态机之间的时序约束要求,降低了逻辑综合的难度。



图1四段握手通信的时序图; 图2基于有限状态机的异步控制电路设计方法流程图; 图3猝发模式异步控制电路结构图; 图4哥伦比亚大学所提出的基于层次化分解的猝发模式异步控制电路设计方法流程图; 图5本发明基于层次化分解的猝发模式异步控制电路设计方法流程图; 图6为一个典型的猝发模式状态机M; 图7为图6所示猝发模式状态机M对应的有向图及其有向回路集合; 图8为采用本发明对M进行分解后的猝发模式子状态机; 图9为对图8所示的猝发模式子状态机进行调整后的猝发模式子状态机; 图10为对图9所示猝发模式子状态机再调整之后的猝发模式子状态机; 图11为采用本发明对M设计的猝发模式接口状态机; 图12为图11所示接口状态机与子状态机连接方式示意图。

具体实施例方式 图1为两个异步电路模块之间进行四段握手通信时请求/应答信号的时序图。当两个异步电路模块A、B之间同步传输数据时,通常包括四个步骤 (1)模块A发送数据,同时将请求信号req置为高来启动握手;(2)模块B接收数据,然后将应答信号ack置为高进行确认,表示已经接收到数据,并开始相应的运算;(3)模块A将请求信号req置为低进行复位;(4)模块B将应答信号ack置为低完成握手。
图2是基于有限状态机的异步控制电路设计方法流程图。基于有限状态机模型的异步电路设计方法与同步电路的设计流程基本相同,首先将有限状态机描述转换为异步流表,其次进行状态归约与赋值得到二进制异步流表,接着进行逻辑综合确定输出变量的逻辑表达式,最后通过工艺映射获得电路的门级网表。
图3为猝发模式异步控制电路结构图。猝发模式异步控制电路由猝发输入、猝发输出、组合逻辑电路以及反馈回路构成,组合逻辑电路采用有限延迟模型,反馈回路采用无限反馈延迟模型。电路的当前状态保存在反馈回路中,电路的猝发输出和下一状态由猝发输入、当前状态以及部分输出信号的反馈共同决定。
图4为哥伦比亚大学公布的基于层次化分解的猝发模式异步控制电路设计方法流程图。对于给定的复杂猝发模式状态机描述,首先采用深度优先搜索算法进行层次化分解得到相互独立的猝发模式子状态机;其次采用已有的猝发模式状态机综合工具(比如说加利福尼亚大学的3D和哥伦比亚大学的MINIMALIST)对各子状态机分别进行逻辑综合得到对应的猝发模式子控制电路模块;接着对各子控制电路模块进行调整,增加输入信号锁存模块以解决子控制电路模块之间的仲裁问题,最后将各子控制模块按照对应的输入输出信号关系进行连接获得最终的猝发模式异步控制电路。
图5为本发明所提出的基于层次化分解的猝发模式异步控制电路设计方法流程图,总共包括6个步骤(1)利用猝发模式状态机所对应有向图的有向回路集合对状态机进行层次化分解;(2)通过增加额外的请求/应答信号对猝发模式子状态机进行调整,实现相应子状态机之间的四段握手通信;(3)设计猝发模式接口状态机解决子状态机的仲裁问题;(4)再次调整猝发模式子状态机,实现第N级猝发模式子状态机与对应第N+1级子状态机之间的仲裁;(5)对各子状态机和接口状态机进行逻辑综合获得子控制电路模块和接口电路模块;(6)将各子控制模块进行连接获得最终的猝发模式异步控制电路。
图6为一个典型的猝发模式状态机M,其状态节点为v0,v1,v2,v3,v4,v5;有向边为<v0,v1>,<v1,v2>,<v2,v3>,<v3,v2>,<v2,v4>,<v4,v5>,<v5,v4>,<v4,v1>;输入信号为ain,bin,cin以及din,输出信号为yout和zout起始状态节点为v0。
图7.1为M对应的有向图G。图7.2、7.3以及7.4为有向图G的有向回路,构成有向回路集合C。
图8为采用本发明对图6所示M进行分解后得到的猝发模式子状态机。图8.1所示为第一级猝发模式子状态机M1,图8.2所示为第二级猝发模式子状态机M21,图8.3所示为第二级猝发模式子状态机M22,图8.4所示为第三级猝发模式子状态机M31。
具体分解过程是 (1)生成M的初始子状态机集合S。有向回路集合C中的有向回路在M中的对应结构,包括状态节点、有向边及相应的猝发输入和猝发输出,构成M的初始子状态机。图7.2、图7.3以及图7.4所示有向回路分别与图8.2、图8.3以及图8.4所示初始子状态机相对应。
(2)确定M中判定节点集合D,D={v2,v4}。
(3)M中起始状态节点v0到判定节点v2之间的有向路径及相应的猝发输入和猝发输出构成第一级猝发模式子状态机M1,起始状态节点为v0。
(4)包含节点v2的初始子状态机为第二级猝发模式子状态机M21和M22,起始状态节点均设定为v2。
(5)对于M22而言,除起始状态节点v2之外还存在判定节点v4,因此包含v4的初始子状态机为第三级猝发模式子状态机M31,起始状态节点设定为v4。
图9为对图8所示的猝发模式子状态机进行调整,即增加额外的请求/应答信号之后的猝发模式子状态机。图9.1、图9.2、图9.3以及图9.4所示的调整后的猝发模式子状态机分别与图8.1、图8.2、图8.3以及图8.4所示的猝发模式子状态机相对应。
具体的调整步骤为 (1)在如图8.1所示的M1中,增加辅助状态节点v1与节点v2相连接;设定有向边<v2,v1>对应的猝发输入变迁和猝发输出变迁分别为ack1+和req1-;设定有向边<v1,v2>对应的猝发输入变迁和猝发输出变迁分别为ack1-和req1+;有向边<v1,v2>的猝发输出变迁增加req1+。
(2)在如图8.2所示的M21中,有向边<v2,v3>的猝发输入变迁和猝发输出变迁分别增加req21+和ack21+,有向边<v3,v2>的猝发输入变迁和猝发输出变迁分别增加req21-和ack21-。
(3)在如图8.3所示的M22中,有向边<v2,v4>的猝发输入变迁和猝发输出变迁分别增加req22+和ack22+,有向边<v1,v2>的猝发输入变迁和猝发输出变迁分别增加req22-和ack22-。
(4)在如图8.3所示的M22中,增加辅助状态节点v2与节点v4相连接;设定有向边<v4,v2>对应的猝发输入变迁和猝发输出变迁分别为ack2+和req2-;设定有向边<v2,v4>对应的猝发输入变迁和猝发输出变迁分别为ack2-和req2+;有向边<v2,v4>的猝发输出变迁增加req2+。
(5)在如图8.4所示的M31中,有向边<v4,v5>的猝发输入变迁和猝发输出变迁分别增加req31+和ack31+,有向边<v5,v4>的猝发输入变迁和猝发输出变迁分别增加req31-和ack31-。
图10为引入接口状态机的输出辅助信号pseu进行再调整之后的猝发模式子状态机。对于M的第二级猝发模式子状态机M21和M22而言,由于M21没有对应的第三级猝发模式子状态机,所以仅需要调整M22。
具体的调整步骤为 (1)删除有向边<v4,v1>及其相应的猝发输入变迁ain+,bin+; (2)增加额外的状态节点v,设定有向边<v4,v>对应的猝发输入变迁和猝发输出变迁分别为pseu+和req2-; (3)设定有向边<v,v1>对应的猝发输入变迁为pseu-,ain+,bin+。
图11为采用本发明设计的猝发模式接口状态机,图11.1所示接口状态机A用于解决图9.1所示第一级猝发模式子状态机M1与图9.2、图10所示第二级猝发模式子状态机M21、M22之间的仲裁问题。图11.2所示接口状态机B是则为了解决图10所示第二级猝发模式子状态机M22与图9.4所示第三级猝发模式子状态机M31之间的仲裁问题。
接口状态机A的仲裁过程为M1进入状态v2,同时将信号req1置为高,启动握手操作,请求接口状态机A进行仲裁;接口状态机A根据外部环境输入信号的变化情况进行判断,如果猝发输入变迁req1+,bin+,cin+先有效,则接口状态机A进入状态v11,选择触发M21;如果输入变迁req1+,ain-先有效,则接口状态机A进入状态v21,选择触发M22。
1、当接口状态机A进入状态v11,选择触发M21时,具体执行过程为 a)接口状态机A接收来自M1的仲裁请求req1+,当猝发输入变迁bin+,cin+有效时进入状态v11,同时将信号req21置为高,请求触发M21; b)M21接收来自接口状态机A的触发请求req21+,进入状态v3,同时将信号ack21置为高,对触发请求加以确认; c)接口状态机A接收来自M21的应答信号ack21+,进入状态v12,同时将信号ack1置为高,对仲裁请求加以确认; d)M1接收来自接口状态机A的应答信号ack1+,进入状态v1,同时将req1置为低,对仲裁请求进行复位; e)接口状态机A接收来自M1的仲裁复位请求req1-,进入状态v13,同时将req21置为低,对触发请求进行复位; f)M21接收来自接口状态机A的触发复位请求req21-,等待猝发输入变迁bin-,cin-有效,然后回到状态v2,同时将信号ack21置为低,对触发复位加以确认; g)接口状态机A接收来自M21的应答信号ack21-,回到状态v2,同时将信号ack1置为低,对仲裁复位加以确认; h)M1接收来自接口状态机A的应答信号ack1+,回到状态v2,同时再次将信号req1置为高进行新的仲裁。
2、接口状态机A进入状态v21选择触发M22时的具体执行过程与其进入状态v11选择触发M21时基本一致。
接口状态机B的仲裁过程为M22进入状态v4,同时将信号req2置为高,启动握手操作,请求接口状态机B进行仲裁;接口状态机B根据外部环境输入信号的变化情况进行判断,如果猝发输入变迁req2+,ain+,bin+先有效,那么接口状态机B进入状态v01,选择继续运行M22;如果猝发输入变迁req2+,din+先有效,那么接口状态机B进入状态v11,选择触发M31。
1、接口状态机B进入状态v11选择触发M31时的具体执行过程与接口状态机A进入状态v11选择触发M21时基本一致。
2、接口状态机B进入状态v01,选择继续运行M22时,具体执行过程为 a)接口状态机B接收到来自M22的仲裁请求req2+,当猝发输入变迁din+有效时进入状态v01,同时将信号pseu置为高; b)M22接收来自接口状态机B的辅助信号变迁pseu+,进入状态v并将req2置为低进行复位; c)接口状态机B接收复位请求reqN-,进入状态v02,同时将信号pseu置为低; d)M22接收来自接口状态机B的辅助信号变迁pseu-,等待猝发输入变迁ain-,bin-有效,然后进入状态v1继续运行; e)接口状态机等待猝发输入变迁ain-,bin-有效,然后回到状态v4,等待新的仲裁请求。
图12.1是图11.1所示接口状态机A与图9.1所示第一级猝发模式子状态机M1、图9.2所示第二级猝发模式子状态机M21以及图10所示第二级猝发模式子状态机M22的连接方式示意图。接口状态机A通过握手信号req1和ack1与M1相连接,通过握手信号req21和ack21与M21相连接,通过握手信号req22和ack22与M22相连接。图12.2是图11.2所示接口状态机B与图10所示第二级猝发模式子状态机M22以及图9.4所示第三级猝发模式子状态机M31之间的连接方式示意图。接口状态机B通过握手信号req2和ack2以及辅助信号pseu与M22相连接,通过信号req31和ack31与M31相连接。
权利要求
1.一种猝发模式异步控制电路设计方法,它包括分解猝发模式状态机、实现子控制电路模块、合成猝发模式异步控制电路这些步骤,其特征在于在分解猝发模式状态机步骤和实现子控制电路模块步骤之间还包括调整猝发模式子状态机、设计猝发模式接口状态机、再调整猝发模式子状态机三个步骤,具体步骤为
第一步,利用猝发模式状态机M所对应有向图的有向回路集合对M进行层次化分解,得到K级猝发模式子状态机,K为M分解得到的猝发模式子状态机的总级数;
第二步,增加额外的请求/应答信号,对第1级至第K级所有的猝发模式子状态机进行调整,实现相邻两级子状态机之间的四段握手通信,去除相邻两级子状态机之间的时序要求;
第三步,在相邻两级子状态机之间设计猝发模式接口状态机,对子状态机是否触发进行仲裁;
第四步,再次调整第2级到第K-1级的所有猝发模式子状态机MN,2≤N<K,实现N级猝发模式子状态机与对应N+1级子状态机之间的仲裁;
第五步,对所有的猝发模式子状态机和猝发模式接口状态机进行状态归约、状态赋值、逻辑综合以及工艺映射,得到相应的子控制电路模块和接口控制电路模块;
第六步,将所有的子控制电路模块和接口控制电路模块按照对应信号进行连接得到最终的猝发模式异步控制电路。
2.如权利要求1所述的一种猝发模式异步控制电路设计方法,其特征在于所述层次化分解的流程为
(1)根据M所对应有向图G=<V,E>的有向回路集合C确定初始子状态机集合S任一有向回路c(c∈C)在M中的对应结构,包括状态节点、有向边及相应的猝发输入和猝发输出,构成一个初始子状态机s(s∈S);
(2)确定判定节点集合DG中所有出度大于2的顶点在M中的对应状态节点即为判定节点;
(3)M中起始状态节点v0到最近的判定节点d1∈D之间的有向通路及相应的猝发输入和猝发输出构成第一级猝发模式子状态机,第一级子状态机的起始状态节点为v0;所有包含判定节点d1的初始子状态机均为第二级猝发模式子状态机,第二级子状态机的起始状态节点为d1;
(4)设定子状态机级数N=2;
(5)从S中删除所有第N级猝发模式子状态机;
(6)对S进行判断,如果S不为空,跳转至步骤(7);如果S为空则M分解完成;
(7)对第N级猝发模式子状态机逐一进行判断,如果存在除起始状态节点之外的其他判定节点dNi,i=1,…,l,l为第N级猝发模式子状态机中除起始状态节点之外的判定节点数目,则S中所有包含dNi的初始子状态机均为第N+1级猝发模式子状态机,起始状态节点为dNi;
(8)调整子状态机级数N=N+1,跳转至步骤(6)。
3.如权利要求1所述的一种猝发模式异步控制电路设计方法,其特征在于对第1级至第K级所有的猝发模式子状态机进行调整的方法是
(1)在第N级猝发模式子状态机MN(1≤N≤K-1)中,增加辅助状态节点vN与除起始状态节点之外的判定节点dN相连接;设定有向边<dN,vN>对应的猝发输入变迁和猝发输出变迁分别为ackN+和reqN-;设定有向边<vN,dN>对应的猝发输入变迁和猝发输出变迁分别为ackN-和reqN+;以dN为终点的有向边(<vN,dN>除外)的猝发输出变迁增加reqN+;+代表信号由0到1的变迁,-代表由1到0的变迁;
(2)记MN对应的第N+1级猝发模式子状态机分别为MN+11,…,MN+1L,L为第N+1级猝发模式子状态机的个数,在MN+1i(i=1,…,L)中,以起始状态节点dN为起点的有向边的猝发输入变迁和猝发输出变迁分别增加reqN+1i+和ackN+1i+,以节点dN为终点的有向边的猝发输入变迁和猝发输出变迁分别增加reqN+1i-和ackN+1i-。
4.如权利要求3所述的一种猝发模式异步控制电路设计方法,其特征在于所述MN与任意N+1级猝发模式子状态机MN+1i的通信过程为
(1)MN进入状态dN,同时将信号reqN置为高,启动握手操作,请求触发第N+1级子状态机;
(2)MN+1i接收来自MN的触发请求reqN+1i+,然后将信号ackN+1i置为高加以确认;
(3)MN接收来自MN+1i的应答信号ackN+,进入状态vN,同时将信号reqN置为低,对握手操作进行复位;
(4)MN+1i接收来自MN的复位请求reqN+1i-,然后将信号ackN+1i置为低,加以确认;
(5)MN接收来自MN+1i的应答信号ackN+,回到状态dN,同时再次将信号reqN置为高,进行新的通讯。
5.如权利要求1所述的一种猝发模式异步控制电路设计方法,其特征在于所述接口状态机的设计方法是
(1)确定接口状态机的输入输出信号接口状态机与MN,MN+11,…MN+1L相连接,输入信号包括猝发输入BIN,BIN+11,…,BIN+1L、子状态机MN的请求信号reqN以及子状态机MN+11,…,MN+1L相应的应答信号axkN+11,…,ackN+1L;输出信号包括子状态机MN的应答信号ackN、子状态机MN+11,…,MN+1L相应的请求信号reqN+11,…,reqN+1L以及辅助信号pseu;
(2)确定接口状态机状态节点的数目当N=1时,接口状态机仅需要解决MN+11,…,MN+1L之间的触发仲裁问题,此时需要3L+1个状态节点,记为dN,v11,…,vL1,v12,…,vL2,v13,…,vL3;当1<N<K时,接口状态机不仅需要解决MN+11,…,MN+1L之间的触发仲裁问题,而且需要解决MN与MN+11,…,MN+1L之间的触发仲裁问题,此时需要3L+3个状态节点,记为dN,v01,v11,…,vL1,v02,v12,…,vL2,v13,…,vL3。
(3)确定状态节点之间的有向边及其对应的猝发输入/猝发输出变迁
a)有向边<dN,v01>,对应的猝发输入变迁为reqN+,transi(eN),猝发输出变迁为pseu+;有向边<v01,v02>,对应的猝发输入变迁为reqN-,猝发输出变迁为pseu-;有向边<v02,dN>,对应的猝发输入变迁为
;对于任意信号x∈BIN,如果x+∈transi(eN),则,如果x-∈transi(eN),则
b)对于任意i=1,…,L,有向边<dN,vi1>,对应的猝发输入变迁为reqN+,transi(eN+1i),猝发输出变迁为reqN+1i+;有向边<vi1,vi2>,对应的猝发输入变迁为ackN+1i+,猝发输出变迁为ackN+;有向边<vi2,vi3>,对应的猝发输入变迁为reqN-,
,猝发输出变迁为reqN+1i-;有向边<vi3,dN>,
对应的猝发输入变迁为ackN+1i-,猝发输出变迁为ackN-。
6.如权利要求1或5所述的一种猝发模式异步控制电路设计方法,其特征在于所述接口状态机对子状态机是否触发进行仲裁的方法是
(1)如果猝发输入变迁reqN+,transi(eN+1i)先有效,那么接口状态机进入状态vi1,选择触发第N+1级子状态机MN+1i,具体过程为
a)接口状态机接收来自MN的仲裁请求reqN+,当猝发输入变迁transi(eN)有效时进入状态vi1,同时将信号reqN+1i置为高,请求触发MN+1i;
b)MN+1i接收来自状态机的触发请求reqN+1i+,将信号ackN+1i置为高,对触发请求加以确认;
c)接口状态机接收来自MN+1i的应答信号ackN+1i+,进入状态vi2,同时将信号ackN置为高,对仲裁请求加以确认;
d)MN接收来自接口状态机的应答信号ackN+,进入状态vN,同时将reqN置为低,对仲裁请求进行复位;
e)接口状态机接收来自MN的仲裁复位请求reqN-,进入状态vi3,同时将reqN+1i置为低,对触发请求进行复位;
f)MN+1i接收来自接口状态机的触发复位请求reqN+1i-,等待相应的猝发输入变迁有效,然后进入状态dN,同时将信号ackN+1i置为低,对触发复位加以确认;
g)接口状态机接收来自MN+1i的应答信号ackN+1i-,回到状态dN,同时将信号ackN置为低,对仲裁复位加以确认;
h)MN接收来自接口状态机的应答信号ackN+,回到状态dN,同时再次将信号reqN置为高,进行新的仲裁;
(2)如果猝发输入变迁reqN+,transi(eN)先有效,那么接口状态机进入状态v01,选择继续运行MN,具体过程为
a)接口状态机接收来自MN的仲裁请求reqN+,当猝发输入变迁transi(eN+1i)有效时进入状态v01,同时将信号pseu置为高;
b)MN接收来自接口状态机的辅助信号变迁pseu+,然后将reqN置为低进行复位;
c)接口状态机接收复位请求reqN-,进入状态v02,同时将信号pseu置为低;
d)MN接收来自接口状态机的辅助信号变迁pseu-等待相应的猝发输入变迁有效,进而继续运行;
e)接口状态机等待相应的猝发输入变迁有效,然后回到状态dN,等待新的仲裁请求。
7.如权利要求1所述的一种猝发模式异步控制电路设计方法,其特征在于所述对第2级到第K-1级的所有猝发模式子状态机MN再次调整的方法为
(1)删除有向边<dN,vc>及其相应的猝发输入变迁transi(eN)和猝发输出变迁transo(eN);dN为MN中除起始状态节点之外的判定节点,vc为除辅助状态节点vN以外与dN通过有向边连接的节点;有向边<dN,vN>对应的猝发输出变迁reqN-,有向边eN=<dN,vc>所对应的猝发输入变迁和猝发输出变迁分别为transi(eN)和transo(eN);
(2)增加额外的状态节点v,设定有向边<dN,v>对应的猝发输入变迁和猝发输出变迁分别为pseu+和reqN-;设定有向边<v,vc>对应的猝发输入变迁和猝发输出变迁分别为pseu-,transi(eN)和transo(eN)。
8.如权利要求5所述的一种猝发模式异步控制电路设计方法,其特征在于连接第一级子状态机和第二级子状态机的接口状态机不输出辅助信号pseu。
全文摘要
本发明公开了一种猝发模式异步控制电路设计方法,要解决的技术问题是提高设计规模,使大规模猝发模式异步控制电路实用化。技术方案是利用猝发模式状态机M所对应有向图的有向回路集合对M进行层次化分解;增加额外的请求/应答信号,对第1级至第K级所有的猝发模式子状态机进行调整;设计猝发模式接口状态机,对子状态机是否触发进行仲裁;再次调整第2级到第K-1级的所有猝发模式子状态机;实现子控制电路模块和接口控制电路模块;合成猝发模式异步控制电路。采用本发明可对状态机进行层次化分解,分解效率高,处理规模大;可解决各子状态机之间的仲裁问题,设计方法简单;可有效去除各子状态机之间的时序约束要求,降低逻辑综合的难度。
文档编号G06F17/50GK101149763SQ20071003605
公开日2008年3月26日 申请日期2007年11月6日 优先权日2007年11月6日
发明者王志英, 坚 阮, 蕾 王, 葵 戴, 勇 李, 锐 龚, 钢 晋, 李云照 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1