一种基于UML的EDA开发平台及其使用方法技术

技术编号:38001999 阅读:11 留言:0更新日期:2023-06-30 10:15
本发明专利技术公开了一种基于UML的EDA开发平台及其使用方法,包括:UML编程器,通过专为描述UML结构的领域专用语言的编程,生成一系列反映硬件电路逻辑的UML图;HDL语言解释器,用于将UML图解释为硬件描述语言代码框架;参考模型生成器:用于将UML图解释为基于C++语言描述的硬件电路参考模型。本发明专利技术充分利用UML的图形表示,用户直接使用UML语言或借助AI辅助生成方式得到UML图,将同一UML模型分别解释为架构一致的HDL语言或C++原型,借助仿真工具对两者做差分验证,实现了对ASIC/FPGA芯片的硬件描述的快速构建,极大提高了硬件开发效率。极大提高了硬件开发效率。极大提高了硬件开发效率。

【技术实现步骤摘要】
一种基于UML的EDA开发平台及其使用方法


[0001]本专利技术涉及硬件设计开发的
,尤其是指一种基于UML的开发平台及其使用方法。

技术介绍

[0002]目前,主流的硬件设计语言Verilog HDL能实现完整的芯片硬件逻辑电路开发,但是其代码密度低,可移植性和编程效率等等都存在问题。芯片设计耗时,绝大多数需求的实现都必须从头开始设计,编写大量的HDL代码,很难实现复用。一旦需求改变,大量接口需要重新设计。同时,对于硬件架构好坏的评估通常都要在所有设计工作都完成的前提下,才能得到关于架构设计的反馈。该过程非常耗时,根据反馈做出的调整还必须再次验证。上述情况造成的硬件芯片开发周期过长已经成为阻碍硬件设计快速发展的重要瓶颈。
[0003]在现代编程语言和编译器技术的支持下,EDA业界也尝试改善硬件设计方法的设计效率,例如基于C/C++语言的高层次综合(high

level synthesis,HLS)硬件描述方式。但是,HLS硬件描述方法目前仅仅在信号处理及人工智能等特定算法领域获得一些进展,在面向对象和高级语言特性支持方面有所欠缺。
[0004]Chisel是U.C.Berkeley大学在2012年提出的另一种基于Scala语言的硬件描述方式。不同于传统的Verilog硬件描述语言,Chisel利用Scala语言的面向对象、函数式编程等特点,使得硬件描述的抽象水平大大提高。在很大程度上简化和加速了硬件设计,但是,Chisel的基础——Scala语言使用相对复杂,应用领域狭窄,很少人能了解和掌握,不利于Chisel大规模推广应用。但目前在国内外开源社区的推动下,Chisel已经成为了比较流行的高层次硬件描述语言。
[0005]SystemVerilog是一种在现代集成电路(尤其是超大规模集成电路)的设计及验证流程中,由Verilog发展而来的硬件描述、硬件验证统一语言,前一部分基本上是2005年版Verilog的扩展,而后一部分功能验证特性则是一门面向对象程序设计语言,目前广泛应用于数字电路设计和验证领域。面向对象特性很好地弥补了传统Verilog在芯片验证领域的缺陷,改善了代码可重用性,同时可以让验证工程师在比寄存器传输级更高的抽象级别,以事务而非单个信号作为监测对象,这些都大大提高了验证平台搭建的效率。
[0006]BlueSpec SystemVerilog:Bluespec SystemVerilog(BSV)是一种旨在为使用原子事务的硬件设计提供通用语言的HDL。原子事务是规定所描述硬件行为的规则,以实现高水平的并行性和平滑的可重新设计。设计者在BSV中开发模块,并为每个模块实施方法和规则。模块代表对外接口,而规则修改模块的内部状态。BSV允许多态性,通过构建模板以自下而上的方式轻松创建复杂、重载和完全类型检查的接口。设计人员可以轻松设计可重用的组件来构建更复杂的架构。事实上,微架构的生成机制支持条件、参数化、循环,甚至递归,使设计过程可定制。此外,BSV模块可以与SystemVerilog模块共存,从而为开发人员提供了使用现有模块的可能性。
[0007]C++模型通常被称为原型(prototype),这是因为C++模型常常被用来作为设计中
的一个初步实现,用于验证设计的功能和性能。在C++模型验证通过后,会被转换为硬件描述语言进行逻辑综合、布局布线等操作,最终生成可实现的硬件电路。但这个过程往往是通过人工将原始的C++模型转化为硬件描述语言代码,这个转换过程极易产生错误,并且需要耗费大量时间。
[0008]统一建模语言UML是软件工程中,为面向对象设计提供的统一的、标准的、直观可视化的建模语言。UML构建系统的整体框架,描述系统功能模块之间的接口关系。UML图形界面支持UML的所有标准元素,包括类、对象、接口、属性、操作、关联关系、继承关系、聚合关系和组合关系等,用户在图形界面中进行编辑、修改和扩展。plantUML是目前最流行的一类UML开源工具,在VSCode,IntelliJ Idea,Eclipse等多款软件中均有插件支持,用非常简洁的DSL来描述UML甚至更多样化的类图。plantUML语法简单,学习成本低,也简单有效的定制UML图的样式。综上所述,UML语言作为硬件设计中进行建模的理想编程语言。

技术实现思路

[0009]本专利技术的目的在于克服现有技术的缺点与不足,提出了一种基于UML的EDA开发平台及其使用方法,借助UML这个中间表示,通过UML编程器、HDL语言解释器和参考模型生成器,实现了基于UML的硬件描述方法,使得开发平台的用户直接使用UML语言实现对FPGA/ASIC芯片的硬件描述及测试;同时也可采用纯图形化的方法,以低代码的方式进行硬件开发,解决了HLS在通用硬件设计的问题,通过Chisel解释器得到Chisel(兼容了chisel的生态),又避开了Chisel陡峭的学习路线,还支持BSV的生成,极大提高了硬件开发的效率。
[0010]为实现上述目的,本专利技术所提供的技术方案为:一种基于UML的EDA开发平台,包括:
[0011]UML编程器,通过专为描述UML结构的领域专用语言的编程,生成一系列反映硬件电路逻辑的UML图;
[0012]HDL语言解释器,用于将UML图解释为硬件描述语言代码框架;
[0013]参考模型生成器,用于将UML图解释为基于C++语言描述的硬件电路参考模型。
[0014]进一步,对于UML编程器,通过领域专用语言plantUML实现了一系列硬件逻辑电路构造所必须的UML图,包括类图、时序图和状态图。
[0015]进一步,在编写UML领域专用语言plantUML代码后,通过生成的一系列UML图,构造硬件描述电路逻辑,包括寄存器、模块、存储器和信号输入输出;还实现了一系列专为硬件设计的类型,用于位操作、能综合为硬件算术、逻辑运算的对象类型,包括无符号、有符号和布尔类型,以及一系列的重载符号,包括赋值和重赋值符号。
[0016]进一步,所述HDL语言解释器包括:
[0017]BSV解释器:BSV是一种高层次抽象的硬件描述语言,其具有生成事务级或RTL级的不同层次硬件描述的能力,BSV解释器将调用BSV标准编译器将生成的BSV代码编译得到RTL级别的Verilog代码;
[0018]Chisel解释器:Chisel是一种高层次抽象的硬件描述语言,其拥有FIRRTL中间表示层,类似高级编程语言解析中的LLVM所扮演的角色,所生成的Chisel代码须先编译得到firrtl IR,再由firrtl IR二次编译到RTL级的Verilog代码;
[0019]SystemVerilog解释器:直接由UML图解释得到RTL级能够综合的SystemVerilog代
码,该代码通过EDA工具进行综合,进而下载到FPGA芯片或用于ASIC芯片流片;同时,用户通过对SystemVerilog解释器进行参数配置,根据用户最终验证的需要,生成本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于UML的EDA开发平台,其特征在于,包括:UML编程器,通过专为描述UML结构的领域专用语言的编程,生成一系列反映硬件电路逻辑的UML图;HDL语言解释器,用于将UML图解释为硬件描述语言代码框架;参考模型生成器,用于将UML图解释为基于C++语言描述的硬件电路参考模型。2.根据权利要求1所述的一种基于UML的EDA开发平台,其特征在于:对于UML编程器,通过领域专用语言plantUML实现了一系列硬件逻辑电路构造所必须的UML图,包括类图、时序图和状态图。3.根据权利要求2所述的一种基于UML的EDA开发平台,其特征在于:在编写UML领域专用语言plantUML代码后,通过生成的一系列UML图,构造硬件描述电路逻辑,包括寄存器、模块、存储器和信号输入输出;还实现了一系列专为硬件设计的类型,用于位操作、能综合为硬件算术、逻辑运算的对象类型,包括无符号、有符号和布尔类型,以及一系列的重载符号,包括赋值和重赋值符号。4.根据权利要求1所述的一种基于UML的EDA开发平台,其特征在于,所述HDL语言解释器包括:BSV解释器:BSV是一种高层次抽象的硬件描述语言,其具有生成事务级或RTL级的不同层次硬件描述的能力,BSV解释器将调用BSV标准编译器将生成的BSV代码编译得到RTL级别的Verilog代码;Chisel解释器:Chisel是一种高层次抽象的硬件描述语言,其拥有FIRRTL中间表示层,类似高级编程语言解析中的LLVM所扮演的角色,所生成的Chisel代码须先编译得到firrtl IR,再由firrtl IR二次编译到RTL级的Verilog代码;SystemVerilog解释器:直接由UML图解...

【专利技术属性】
技术研发人员:赖晓铮程光辉施佐烨林学
申请(专利权)人:华南理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1