【技术实现步骤摘要】
一种状态机等价变换的方法和装置
本专利技术涉及数字集成电路领域,更具体地涉及一种状态机等价变换的方法和装置,以降低动态可配置流水线的电路复杂度和配置程序的开发难度。
技术介绍
流水线以及用状态机控制流水线上的各个流水级和流水级之间的连接关系是一种普遍应用的数字集成电路形式。例如指令的流水线、网络处理器里处理数据包的流水线、基带信号处理的流水线等等。指令流水线技术是指在程序执行时多条指令重叠进行操作的一种处理技术,它将指令分解成不同的阶段,让电路能够按照指定的操作更加充分的利用硬件资源。动态可重配流水线技术使得硬件电路结构更加灵活可控,其本质是用程序描述流水线上各个状态机的行为。状态机对应于电路中各个功能单元,通过编程设计和配置状态机可以方便的操控硬件资源。然后,电路较为复杂时,状态机的设计和配置就变得极其复杂。当状态机实现的功能较为复杂、状态机的形式和类型较多的时候,在状态机拼接过程中会遇到很多复杂的情况导致无法直接拼接。例如循环状态块和顺序状态块的拼接情况,以及循环状态块和嵌套循环状态块的拼接情况等。这时需要对状态机进行特定的定价变换,使得变换后的状态机可以进行 ...
【技术保护点】
一种状态机等价变换的方法,包括以下步骤:步骤1,将状态机的状态块初始化成树形二维结构;步骤2,读取一个状态机和状态机的状态提取方式,根据状态提取方式对状态机选择输出或反向;如果提取方式是正向提取,则将输入状态机放入步骤3的输入中,跳转至步骤3;如果提取方式是反向提取,则将状态块放入步骤2.1的输入中,调用步骤2.1,将步骤2.1返回的状态块替换状态机中的原状态块,并将新状态机放入步骤3的输入,跳转至步骤3;步骤2.1,将输入状态机的尾区域标示为头区域,同时将原头区域标识为尾区域;其中,如果当前主区域为嵌套循环块,则将嵌套循环块中的状态块,颠倒序列,并对每个状态块调用步骤2. ...
【技术特征摘要】
1.一种状态机等价变换的方法,包括以下步骤:步骤1,将状态机的状态块初始化成树形二维结构;步骤2,读取一个状态机和状态机的状态提取方式,根据状态提取方式对状态机选择输出或反向;如果提取方式是正向提取,则将输入状态机放入步骤3的输入中,跳转至步骤3;如果提取方式是反向提取,则将状态块放入步骤2.1的输入中,调用步骤2.1,将步骤2.1返回的状态块替换状态机中的原状态块,并将新状态机放入步骤3的输入,跳转至步骤3;步骤2.1,将输入状态机的尾区域标示为头区域,同时将原头区域标识为尾区域;其中,如果当前主区域为嵌套循环块,则将嵌套循环块中的状态块颠倒序列,并对每个状态块调用步骤2.1,用返回的状态块替换嵌套循环块中的原状态块;如果当前主区域不是嵌套循环块,则将主区域中状态块里所有状态颠倒顺序;将调整后的状态块输出,返回到调用当前此步骤的前一个步骤中;步骤3,读取一个输入状态机的首个状态块,判断该状态块的类型,并跳转到相应状态块状态提取的步骤中;其中如果当前状态块为顺序块,则跳转至步骤4;如果当前状态块为不包括嵌套循环块的循环块,则跳转至步骤5;如果当前状态块为嵌套循环块,则跳转至步骤6;步骤4,接收一个顺序块和待提取长度作为输入,从输入的顺序块头部提取出指定数量个状态置于头区域中,并修改待提取长度;将提取后的状态机输出,跳转至步骤8;步骤5,接收一个循环块和待提取长度作为输入,判断待提取长度与循环块内部状态数量和尾区域状态数量,提取指定数量的状态;该步骤5具体包括:子步骤5.0,计算循环块尾区域的长度,并判断当前是否需要提取一次循环块;子步骤5.1,将循环块内部所有状态按顺序组成一个新的顺序块,将该顺序块放入尾区域的头部,将循环块的已循环次数加1,跳转至子步骤5.2;子步骤5.2,如果待提取长度大于等于循环块内部状态数量,则将尾区域中首个顺序块放到提取区域的尾部,并将待提取长度减去循环块内部状态数量,跳转到步骤8;如果待提取长度小于循环块内部状态数量,则将尾区域中的顺序块按顺序合并成一个顺序块,然后从合并的顺序块中提取出头部的待提取长度个状态,组成一个新的顺序块放入提取区域的尾部,清空尾区域,若提取后的顺序块内状态数不为0,则将提取后的顺序块放入尾区域中;跳转至子步骤5.3;子步骤5.3,将循环块内头部待提取长度个状态取出放到循环块内状态的尾部,形成一次循环滚动,并将待提取长度置为0,跳转至步骤8:步骤6,接收嵌套循环块和待提取长度作为输入,从输入的嵌套循环块头部提取出指定数量个状态,输出可用于状态机拼接的状态块的组合;该步骤6具体包括:子步骤6.0,如果尾区域为空,则跳至子步骤6.1;如果尾区域非空,则跳至子步骤6.2;子步骤6.1,提取嵌套循环块内的所有状态块,按顺序置于尾区域中,将嵌套循环块的已循环次数加1,跳转至子步骤6.2;子步骤6.2,将嵌套循环块的尾区域取出,组成一个新的状态机,将待提取长度和新的状态机作为输入,递归调用本方法,将返回的状态机的首个状态块的头区域内所有状态块取出,放入提取区域的尾部,跳转至子步骤6.3;子步骤6.3,将嵌套循环块内所有状态块取出,按顺序组成一个新的状态机,待提取长度和新的状态机作为输入,递归调用本方法,将返回的状态机的首个状态块的头区域内所有状态块取出放到返回的状态机的最后一个状态块后面,并用该返回的状态机内的状态块替换嵌套循环块内的所有状态块,并将待提取长度置为0,跳转至步骤8;步骤8,如果当前待提取长度不为0,则将当前状态机和待提取长度作为步骤3的输入,跳转至步骤3,否则跳转至步骤9;步...
【专利技术属性】
技术研发人员:王磊,杨磊,谢少林,
申请(专利权)人:中国科学院自动化研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。