首页> 中国专利> 一种面向符号BDD操作的CPU设计方法及计算系统

一种面向符号BDD操作的CPU设计方法及计算系统

摘要

本发明公开一种面向符号BDD操作的CPU设计方法及计算系统,包括:BDD数据结构设计、新型数据结构操作算法、专用指令系统设计、CPU内核与构架设计、BDD操作专用运算系统构建以及系统的硬件实现。本发明通过用户上位机将操作对象转换,传输至所设计的专用BDD运算系统,通过系统内专用CPU运算机制对BDD数据进行操作计算,以达到快速运算的目的;通过建立新型BDD数据结构与对应操作算法,提高了BDD操作运算的效率。本发明能够在较高的算法效率以及较高的硬件处理效率下完成BDD操作计算任务,同时还能保证BDD数据的正确性和简洁性。

著录项

  • 公开/公告号CN105893660A

    专利类型发明专利

  • 公开/公告日2016-08-24

    原文格式PDF

  • 申请/专利权人 桂林电子科技大学;

    申请/专利号CN201610190855.4

  • 申请日2016-03-30

  • 分类号

  • 代理机构桂林市持衡专利商标事务所有限公司;

  • 代理人陈跃琳

  • 地址 541004 广西壮族自治区桂林市七星区金鸡路1号

  • 入库时间 2023-06-19 00:19:23

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-10-19

    授权

    授权

  • 2016-09-21

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20160330

    实质审查的生效

  • 2016-08-24

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,具体涉及一种面向符号BDD(BinaryDecision Diagram,二叉决策图)操作的CPU设计方法及计算系统。

背景技术

符号BDD操作运算被应用于密码学、IP路由查找、装配序列规划化等领域,提高数据处理的速度、保证运算结果的正确性及稳定性、减少硬件消耗与能耗是这些领域长期的追求。

目前提高BDD操作运算速度的方法主要有:

(1)基于OBDD方法:将BDD转化为OBDD,并进行精简转化为ROBDD,可减少数据存储量以及计算量,可有效减少操作运算的时间。

(2)基于硬件加速方法:设计单独存储BDD节点的硬件模块,将用户程序嵌入上位机来管理BDD所用该模块的指针,进而实现相应的操作功能,获得了一定的加速效果。

(3)基于NISC技术方法:在基于OBDD方法和基于硬件加速方法的基础上,利用NISC编译器设计BDD操作应用程序的RTL模块,分别生成控制部分和数据模块,利用上位机传输模块功能信息生成NISC处理器,进一步加速了该操作的运算。

上述方法分别从算法优化和硬件功能模块两大方向对BDD操作运行进行了加速,但仍存在利用高级语言运行操作程序时,使用的数据结构步骤繁多的问题。此外,这些方法所用到的处理器和均是通用型处理器,在规定只完成特定的运算情况下,使用通用指令集容易造成时间周期浪费现象。故在数据结构、指令系统、内核运算机制等方面,BDD操作都还有加速的空间。

发明内容

本发明提供一种面向符号BDD操作的CPU设计方法及计算系统,其能够进一步提高BDD操作运算速度。

为解决上述问题,本发明是通过以下技术方案实现的:

一种面向符号BDD操作的CPU设计方法,包括如下步骤:

步骤1.依据BDD树的结构与属性,定义BDD数据的结构、存储方式和递归映射方式;

步骤2.基于步骤1所定义的BDD数据的结构、存储方式和递归映射方式,生成BDD数据操作算法;

步骤3.针对步骤2生成的BDD操作算法设计专用指令系统,并利用专用 指令系系统描述步骤2所生成的BDD数据操作算法;

步骤4.依据步骤3生成的指令系统,利用Xilinx平台设计与验证CPU内核与构架的功能,组成完整的CPU结构。

上述步骤1具体为:

步骤11.为每个节点分配四个属性值,分别为节点的等级level、节点的地址偏移量AOP、节点的左分支指向low和节点的右分支指向high;其中节点的左分支指向low和节点的右分支指向high均指向该节点的子节点地址偏移量值AOP;

步骤12.每组hash值由2个操作节点的地址偏移量值AOP填充;

步骤13.确定BDD树的表达形式,先根据步骤11填充BDD树的每个叶节点,随后根据步骤12从BDD树的根节点开始对BDD树的每个节点进行顺序排列;hash表的读写顺序与该排列相同,当读与写的指针相同且无后续hash值时,意味着操作结束。

上述步骤2具体为:

步骤21.将所生成的BDD数据存入数据存储器DRAM中,记录所操作每个BDD树的初始地址以及节点个数,初始化各存储器指针;

步骤22.取出两个BDD树的根节点进行操作,分析节点中是否存在支配点,若存在支配点,则操作结束,写入操作结果;若不存在支配值,则生成新节点的地址偏移量值AOP与等级值level,生成两组hash值存入哈希存储器HRAM中;

步骤23.判断是否剩余hash值;若无剩余,则节点生成完毕,跳转至步骤26;若有剩余,则读取hash值,记录读后hash地址值,记录读取hash值次数;

步骤24.检测该组hash值是否存在支配点,若存在,则计算操作值并补充父节点,若不存在,则判断hash值是否重复;若重复,读取重复hash值所对应的节点单元,读入该节点地址偏移量值AOP用于补充重复节点的父节点;若不重复,则将读入的hash值转化为节点地址,读取所指向的2个节点;

步骤25.分析节点组;判断是否存在支配点,若存在,则计算操作值,补充父节点分支指向,跳转至步骤23;若不存在支配点,则生成新节点的等级level与地址偏移量值AOP,生成子节点操作的两组hash值写入hash表中,跳转至步骤23;

步骤26.查询重复节点,从高等级节点开始,标记重复节点,修改对应父节点指向;

步骤27.检测冗余节点,从高等级节点开始,标记冗余节点,同时修改其父节点指向;

步骤28.重复步骤26和步骤27,直到没有重复节点和冗余节点为止,简化结束,操作完毕。

上述步骤3具体为:

步骤31.依据步骤2生成BDD数据操作算法,在已有针对DRAM指令下,新增针对HRAM的操作指令;

步骤32.为方便本发明BDD操作过程地址计算,加入地址处理指令,该类型的指令的处理目标只包括地址类寄存器;

步骤33.为提高读取效率,设计连读/连写指令,该指令针对连续两次以上且五次以下连续读/写的情况;

步骤34.为提高指令与BDD操作算法的契合度,设计对应特殊指令,包括叶节点判断指令yjd、操作类型定义指令cz、两个叶节点操作指令scz等;

步骤35.为解决程序之间的控制相关与数据相关问题,新增空指令nop;

步骤36.为确保BDD操作程序正常运行,补充部分计算类与转移类指令。

上述步骤4具体为:

步骤41.依据步骤2生成BDD数据操作算法,所需的数据存储器与哈希映射分开设立,故设立数据存储器DRAM与哈希存储器HRAM,而程序存储器IRAM不可或缺;同时,为方便后续的功能扩展,还需加入堆栈存储器SRAM以待备用;

步骤42.总结所需要的数据寄存器、地址寄存器、计数器、累加器等寄存器;分别分配31个地址寄存器与数据寄存器,备用于程序调用,另设通用寄存器组以备数据值与地址值之间转换;

步骤43.统计各寄存器与每个指令之间的操作状态机,将该状态机利用硬件描述语言进行描述,生成CPU的控制内核;而对于算法中未出现的状态机则无需硬件描述,以节省空间资源;

步骤44.依据地址单独处理机制,每个指令由取指、分析、执行、写回四个步骤完成,然而连续读/写指令则需要额外的执行周期,故本发明CPU主要采取3级循环流水线机制,然而,连读/写指令内涵多执行阶段,执行完毕一条连读/写指令最多需要六个周期的时间,故连读/写指令类型采用6级流水线结构;

步骤45.利用软件IP核生成器生成四个存储模块,分别对应步骤41的4个存储空间,便于本发明设计的CPU功能的可行性验证。

作为改进,步骤4之后,还进一步包括如下步骤:

步骤5,通过硬件实现步骤4所设计的CPU,定义外设接口,连接上位机通信,由此构成面向符号BDD操作的CPU加速运算系统。

基于上述方法的所述的一种面向符号BDD操作的计算系统,包括数据生成单元、CPU内核控制单元和BDD操作运算单元,其中:

数据生成单元,将BBD操作对象转化为BDD数据,并将该数据传入BDD操作运算单元;

CPU内核控制单元,完成指令系统的每条指令任务,控制BDD操作程序运行;

BDD操作运算单元,CPU内核控制单元基础上组合外围模块,进行完整 BDD数据的操作运算及存储,并将计算结果输出至外部设备或上位机。

与现有技术相比,本发明具有如下特点:

1.本发明提出的CPU构架只针对BDD操作算法而设计,其数据存储器DRAM只存储所BDD数据,无需提前分配空间,只需按照特定数据格式进行排列即可,减少了数据处理的步骤,提升了运算效率;

2.本发明中的CPU旨在BDD操作进行运算,只涉及通用CPU的部分计算功能,可减少电路的使用面积与能耗;其IRAM(或ROM)、DRAM、SRAM、HRAM、针对性数据布局,可解决流水线结构相关问题,使BDD在操作上逻辑更为简洁;

3.本发明中的指令系统将数据处理指令与地址处理指令分开,将传统32位MIPS指令集中部分指令按数据与地址处理进行拆分,缩短指令的执行周期,可在设计流水线时减少时钟周期的浪费;针对操作算法自主设计的指令在一定程度上减少了逻辑运算的步数;使用汇编语言可对硬件资源进行准确操作,这三个方面都加快了操作运算速度;

4.本发明可使用FPGA(Field-Programmable Gate Array)芯片作为内核载体,具有较强的移植性,适用于通用CPU与FPGA协作场合。

附图说明

图1为本发明技术流程图。

图2为本发明面向BDD操作系统的工作原理。

图3为本发明提出的数据结构的生成原理图。

图4为本发明操作对象的BDD树操作级结果示意图。

图5为本发明所提出数据结构的BDD操作算法程序框图。

为表述方便,下面给出一些符号表示:

AOP(Address offset parameters) 节点地址偏移量

Level 节点等级

Low 节点左分支指向

High 节点右分支指向

IRAM 程序存储器

DRAM 数据存储器

SRAM 堆栈存储器

HRAM 哈希(hash)存储器

SDRAM 同步动态随机存储器

具体实施方式

一种面向符号BDD操作的CPU设计方法,如图1所示,包括步骤如下:

步骤A.依据BDD树结构与属性,设计合理的BDD数据结构、存储方式、以及递归映射方式;

步骤A1.为每个节点分配四个属性值,分别为AOP、level、low、high,level对应点的变量值;AOP表示点对应点的地址偏移参数;low与high分别为节点的两个分支指向,指向子节点的AOP值;

步骤A2.利用四个存储单元数值分别表示节点的每个属性;

步骤A3.hash值由两个操作点的AOP值填充;

步骤A4.以叶节点作为初始地址,其后以深度优先原则确定步骤A1提出的数据结构对BDD树的表达形式;

步骤B.分析步骤A提出BDD数据的操作过程,总结BDD数据操作规律,生成新型BDD数据操作算法;

步骤B1.将BDD对象转化为步骤A中提出的BDD数据;

步骤B2.分析BDD数据操作过程,总结所提出数据结构的操作规则;

步骤B21,每组hash值表示两个点的操作,其操作结果是其父节点的一个分支值(根节点除外),每连续的两组hash值操作结果表示一个节点的low和high值,hash值的组数为非叶节点总数的两倍,即可依据读取hash值次数来确定补充父节点分支指向的位置与顺序;

步骤B22,两点操作,当不存在支配点时,需生成一个新节点的level值和AOP值,将AOP值对其父节点进行补充,同时,生成两组hash值,按照先low后high的顺序存储;

步骤B23,当存在支配点时,无需生成新节点,只需计算操作值,补充父节点分支指向;

步骤B24,由于节点生成顺序为由根至叶,为防止叶节点地址的不定性,需提前固定叶节点地址,写入叶节点;

步骤B25,操作中可能产生重复节点,对应hash表中不同组相同,为维持步骤B21规律,应保留重复hash值,待读取该值时检测重复组,避免部分重复点生成;

步骤B26,操作过程可能仍存在重复节点,需在非叶节点生成完毕后,由高向低等级对比检查,若存在重复节点,则修改父节点指向;

步骤B27,非叶节点生成完毕,标记冗余节点,修改父节点指向;

步骤B28,规则R26和R27可能产生新的重复节点或冗余节点,需重复检测,直至两者都不存在为止。

步骤B3.依据步骤B2总结的规则,生成新型BDD操作算法;

步骤B31,将所生成的BDD数据存入DRAM中,记录所操作每个树的初始地址以及节点个数,初始化各存储器指针;

步骤B32,取出两个树的根节点进行操作,分析节点中是否存在支配点,若存在支配点,则操作结束,写入操作结果;若不存在支配值,则生成新节点AOP值与level值,生成两组hash值存入HRAM;

步骤B33,判断是否剩余hash值,若无剩余,则节点生成完毕,跳转至步骤B36;若有剩余,则读取hash值,记录读后hash地址值,记录读取hash 值次数;

步骤B34,检测该组hash值与已读过的hash值是否重复,若重复,读取重复hash值所对应的节点单元,读入该节点AOP值用于补充重复节点的父节点;若不重复,则将读入的hash值转化为节点地址,读取所指向的两个节点;

步骤B35,分析节点组,判断是否存在支配点,若存在,则计算操作值,补充父节点分支指向,跳转至步骤B33;若不存在支配点,则生成新节点的level与AOP值,生成子节点操作的两组hash值写入hash表中,跳转至步骤B33;

步骤B36,查询重复节点,从高等级节点开始,标记重复节点,修改对应父节点指向;

步骤B37,检测冗余节点,从高等级节点开始,标记冗余节点,同时修改其父节点指向;

步骤B38,重复步骤B36和步骤B37,直到没有重复节点和冗余节点为止,简化结束,操作完毕。

步骤C.针对BDD操作算法设计指令,生成专用指令系统;利用专用指令系统描述步骤B所生成的操作算法。

步骤C1.选取32位MIPS指令格式作为参照,自主设计MIPS格式的专用指令;

步骤C2.对步骤B生成的操作算法进行汇编描述;

步骤C3.将步骤C2所用到的指令汇总,生成专用指令系统,并对该系统指令进行分类;

步骤C4.利用总结出的系统指令,将步骤C2描述的程序转化为机器指令。参见表1所示为所生成的专用系统指令集。

表1

步骤D.依据步骤C生成的指令系统,利用HDL(Hardware DescriptionLanguage,硬件描述语言)设计专用型CPU内核与构架,组成完整的CPU结构,输入测试程序进行功能验证;

步骤D1.利用HDL的IP核生成虚拟存储器IRAM、DRAM、SRAM、HRAM四个模块,自定义各模块功能接口,定义通用寄存器堆;

步骤D2.依据步骤C生成的指令系统,设计CPU控制模块;

步骤D3.增设指令状态寄存器,设计3级循环流水线内核,处理数据相关与控制相关问题;

步骤D3.组合各个功能模块,形成完整的CPU构架,仿真检测CPU基本功能;

步骤D4.外设接口设计,输入缓冲区设计程序,仿真检测缓冲区功能,缓冲区与CPU连接,撰写驱动程序;

步骤D5.CPU与上位机连接,输入简易操作系统以及BDD操作算法程序;

步骤D6.输入操作对象BDD数据包,运行操作算法的程序,进行功能验证与调试。

步骤E.硬件实现步骤D设计的CPU,定义外设接口,连接上位机通信,构成面向符号BDD操作的CPU加速运算系统。

步骤E1.保留CPU内核与缓冲区,定义核外围模块接口引脚以及缓冲区模块接口引脚;

步骤E2.综合步骤E1更改的CPU构架,下载至FPGA芯片;

步骤E3.用独立的flash存储器连接步骤E1所定义的CPU的程序存储器 接口;

步骤E4.用三个独立的SDRAM模块连接步骤E1定义的核外围模块(包括DRAM、SRAM、HRAM)引脚;

步骤E5.将上位机连接步骤E1定义的缓冲区接口,组成专用计算系统;

步骤E6.输入简易操作系统以及BDD操作算法程序至flash存储器,进行功能验证与优化。

本发明所设计面向BDD操作的CPU及其运算系统其工作过程可分为三个阶段:阶段I上位机将操作算法程序存入专用CPU的程序存储器,将生成的数据包输入至专用CPU的DRAM;阶段II专用CPU运行操作算法程序,计算操作结果存入DRAM;阶段III将操作结果输出至上位机,供用户使用。

上述三个阶段分别对应了面向符号BDD操作的计算系统的三大单元:数据生成单元、CPU内核控制单元和BDD操作运算单元。即一种面向符号BDD操作的计算系统,如图2所示,包括数据生成单元、CPU内核控制单元和BDD操作运算单元。

1)数据生成单元:可将操作对象转化为本发明提出的新型结构的BDD数据,可将该数据传入专用运算系统;

2)面向BDD操作的CPU内核控制单元:可完成特殊指令系统的每条指令任务,控制BDD操作运算;

3)BDD操作运算单元:在内核控制单元基础上组合了外围模块、可进行完整BDD数据的操作运算及存储,并将计算结果输出至外部设备或上位机。

下面通过一个具体实例,对本发明进行进一步详细说明:

所述设计方法,包括如下步骤和内容:

步骤1,设计数据结构与hash表结构,包括如下步骤:

步骤1.1,图3所示,定义节点的四个属性,即AOP、level、low、high,其中level既是相应的等级值,也对应BDD变量,由根至叶等级由小到大,最高等级为叶节点等级;AOP表示点的偏移参数;用于确定点所在的地址,low与high分别指向子节点的AOP值,即每个点的首地址;

步骤1.2,利用每半字节表示每个点的每个属性,每个节点为一个双字节,容量为64bit,最多可表示6.5万个点,规定使用每个存储单元16bit的存储器;

步骤1.3,为每组hash值分配两个存储单元,用于存储不同树之间的操作记录,hash值由两个操作点的AOP值填充,每组hash值为一个字节,用于查找操作子节点;

步骤1.4,确定对BDD树的表达形式,先填充叶节点,随后从根节点开始排列,hash表的读写顺序相同,当读与写的指针相同且无后续hash值时,意味着操作结束;

步骤2,将要操作的BDD目标(BDD树或布尔函数表达式)转化为本发明 所提出的BDD结构的数据,本步骤引入实施例进行详细说明:

步骤2.1,将操作对象BDD树依据变量划分为不同的等级,依据叶节点等级最高原则,由根向叶从小到大划分等级;

步骤2.2,先写入两个叶节点为一个树的开始节点,并为两个叶节点分别赋值AOP为0和1,表示叶节点的0分支和1分支终点;

步骤2.3,将各点按等级顺序由小到大排列,分别规划为每个点的第二个单元level,每当写出一个新节点,对应节点分配AOP值在之前点加一;

步骤2.4,依据各节点分支指向,为每个节点补充low与high分支值;

步骤2.5,按照1.1-1.4步骤生成后续所要操作对象的BDD数据,同时记录每个BDD数据包的初始地址;

附注:对于BDD结构体链表式数据,利用路径查找逐一生成新结构节点数据包,在此不再赘述。

步骤3,操作规则设计,对BDD数据进行操作过程分析,图4对应着实施例一的BDD操作,总结操作过程规则,以加速操作运算,其规则如下:

步骤3.1,每组hash值表示两个点的操作,其操作结果是其父节点的一个分支值(根节点除外),每连续的两组hash值操作结果表示一个节点的low和high值,hash值的组数为非叶节点总数的两倍,即可依据读取hash值次数来确定补充父节点分支指向的位置与顺序;

步骤3.2,两点操作,当不存在支配点时,需生成一个新节点的level值和AOP值,将AOP值对其父节点进行补充,同时,生成两组hash值,按照先low后high的顺序存储;

步骤3.3,当存在支配点时,无需生成新节点,只需计算操作值,补充父节点分支指向;

步骤3.4,由于节点生成顺序为由根至叶,为防止叶节点地址的不定性,需提前固定叶节点地址,写入叶节点;

步骤3.5,操作中可能产生重复节点,对应hash表中不同组相同,为维持步骤3.1规律,应保留重复组hash值,待读取该值时检测重复组,避免部分重复点生成;

步骤3.6,操作过程可能任存在重复节点,需在非叶节点生成完毕后,由高向低等级对比检查,若存在重复节点,则修改父节点指向;

步骤3.7,非叶节点生成完毕,标记冗余节点,修改父节点指向;

步骤3.8,规则R3.6和R3.7可能产生新的重复节点或冗余节点,需重复检测,直至两者都不存在为止。

步骤4,依据总结的规则,图5表述了所生成对应数据结构的BDD操作算法,操作算法步骤包括:

步骤4.1,将所生成的BDD数据存入DRAM中,记录所操作每个树的初始地址以及节点个数,初始化各存储器指针;

步骤4.2,取出两个树的根节点进行操作,分析节点中是否存在支配点, 若存在支配点,则操作结束,写入操作结果;若不存在支配值,则生成新节点AOP值与level值,生成两组hash值存入HRAM;

步骤4.3,判断是否剩余hash值,若无剩余,则节点生成完毕,跳转至步骤4.6;若有剩余,则读取hash值,记录读后hash地址值,记录读取hash值次数;

步骤4.4,检测该组hash值与已读过的hash值是否重复,若重复,读取重复hash值所对应的节点单元,读入该节点AOP值用于补充重复节点的父节点;若不重复,则将读入的hash值转化为节点地址,读取所指向的两个节点;

步骤4.5,分析节点组,判断是否存在支配点,若存在,则计算操作值,补充父节点分支指向,跳转至步骤4.3;若不存在支配点,则生成新节点的level与AOP值,生成子节点操作的两组hash值写入hash表中,跳转至步骤4.3;

步骤4.6,查询重复节点,从高等级节点开始,标记重复节点,修改对应父节点指向;

步骤4.7,检测冗余节点,从高等级节点开始,标记冗余节点,同时修改其父节点指向;

步骤4.8,重复步骤6和步骤7,直到没有重复节点和冗余节点为止,简化结束,操作完毕。

通过以上操作计算,实施例计算结果如图4所示,结果中level值为0表明该点为冗余节点,同时指向该点的父节点分支也将3修改为1。内存中的点单元即按该结果格式排列,通过输出程序可将该结果的有效部分输出给用户。

步骤5,生成专用指令系统,描述操作算法:

步骤5.1,选取32位MIPS指令格式作为本发明指令系统格式参照,自主设计MIPS格式的专用指令,依据处理对象不同,将指令分为数据类指令与地址类指令;

步骤5.2,自主设计的指令主要针对CPU构架的特殊性而设计,本发明将hash表、数据存储部分、堆栈部分分开布局,需增加在hash表中读/写数据的指令;

步骤5.3,为精简计算步数,生成特殊的操作指令,可根据操作类寄存器值的不同进行相应的计算。如:对于不同类型的操作“合取”与“析取”,cz指令可依据操作类寄存器值对节点进行“合取”与“析取”计算;

步骤5.4,利用所设计的专用指令系统描述生成的BDD操作算法,并依据指令系统格式生成机器指令。

步骤6.HDL生成CPU内核,设计CPU构架。

步骤6.1,利用HDL的IP核生成IRAM、DRAM、SRAM、HRAM四个模块,定义各模块功能接口,定义32个数据通用寄存器、32个地址通用寄存器;

步骤6.2,依据所生成的指令系统,设计CPU控制模块;包括各存储器数据的读/写,寄存器赋值、转移、计算,程序跳转、中断、函数调用等系列的指令的状态机,共同组合成CPU内核;

步骤6.3,增设指令状态寄存器,由于本发明将数据处理和地址处理指令进行了区分,故每条指令执行分为取指、分析、执行、写回四个阶段,由于取指和写回在大部分指令运行时互不相关,故可将取指和写回合并在同一个阶段中运行,故本发明设计一种3级循环流水线内核;

步骤6.4,处理数据相关与控制相关问题;对于数据相关问题使用前推机制以及延时等待共同解决,而控制相关则使用缓冲槽方式解决;

步骤6.5,组合各个功能模块,形成完整的CPU构架,输入简易程序,检测CPU运行指令的基本功能,其包括存储器读/写、寄存器移动、立即数赋值、计算、中断、函数调用、程序跳转、特殊指令。

步骤7,外设与CPU接口设计,组合与调试系统:

步骤7.1,利用HDL设计缓冲区模块,输入缓冲区设计程序,仿真检测缓冲区功能;

步骤7.2,建立CPU中断机制,将缓冲区与CPU连接,设计并写入设备驱动程序;

步骤7.3,CPU与PC上位机连接,将简易操作系统程序以及操作算法程序传入CPU的IRAM中;

步骤7.4,输入操作对象数据,运行操作算法的程序,对BDD操作算法进行功能验证。

步骤8,硬件实现面向BDD操作CPU及其运算系统:

步骤8.1,保留CPU内核与缓冲区,定义核外围模块接口引脚以及缓冲区模块接口引脚,其中将IRAM接口改为flash存储器类型接口;

步骤8.2,综合步骤8.1定义的CPU构架,下载到FPGA芯片;

步骤8.3,用独立的flash存储器连接步骤8.1所定义的IRAM接口引脚,以保存写入的操作算法程序;

步骤8.4,用三个独立的SDRAM模块连接步骤8.1定义的核外围模块(包括DRAM、SRAM、HRAM)引脚;

步骤8.5,将上位机连接步骤8.1定义的外设接口,组成专用计算系统;

步骤8.6,输入简易操作系统、BDD操作算法程序至flash存储器,功能验证与优化。

本发明通过用户上位机将操作对象转换,传输至所设计的专用BDD运算系统,通过系统内专用CPU运算机制对BDD数据进行操作计算,以达到快速运算的目的;通过建立新型BDD数据结构与对应操作算法,提高了BDD操作运算的效率。本发明能够在较高的算法效率以及较高的硬件处理效率下完成BDD操作计算任务,同时还能保证BDD数据的正确性和简洁性。

本发明能够在较高的算法效率下,完成BDD操作计算功能,可用于BDD 操作的应用程序运行,保证其计算过程的快速性、正确性以及稳定系。

本说明书采用递进的方式描述,对每个方法及系统中的每个设计阶段依次详细地按步骤进行了说明。专业人员进一步意识到,结合本文中所公开的实施例各阶段能够以计算机软件(ISE)和电子硬件(FPGA)结合来实现。

通过结合附图对本发明具体实施例的描述,本发明的其他方面及特征对本领域的技术人员而言是显而易见的。

以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号