高级抽象语言设计HDL

本文对比了多种硬件描述语言(HDL)的特点,包括Python、MyHdl、PyGears、C/C++ HLS、SystemC、Matlab HDL Coder、SpinalHDL及Chisel等。针对不同应用场景如算法研究、FPGA AI算法、验证模型、CPU设计和IP开发进行了总结。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

语言

平台

简介

开源与授权

优势

劣势

可行性

Python

Python

直接使用Python语法编译

开源

不用安装额外的库,语法简单,自己编写生成HDL代码风格,HDL代码重用性强

只适合通用性的模块 / 总线接口规范的模块,比如amba读写寄存器、memory等。版本经常更新。

Linux自带Python,上手简单,可能性强,推荐和总线相关的模块使用Python

Myhdl

比利时ASIC工程师Jan Decaluwe 2009年基于python设计硬件描述库

开源

可以设计更复杂(复杂的算法实现)的代码,加减乘除,逻辑运算等可以直接转化成HDL

设计流程复杂,HDL代码可读性性差,需要学习相关库函数,文档少,未见其他公司使用,14年后

使用Python PIP安装,安装后按照教程做即可

PyGears

20223月加州大学,在Python的基础上封装成更高层次抽象的HDL

开源

可以设计更复杂(复杂的算法实现)的代码,设计方法类似MyHDL

设计流程复杂,HDL代码可读性性差,需要学习相关库函数,文档少,未见其他公司使用

使用Python PIP安装,安装后按照教程做即可

C/C++

HLS(C/C++)

Xilinx Vivado HLS

Intel Quartus HLS,

C/C++转成适合FPGAHDL代码

需要授权

HLS 能帮助软件和算法工程师参与、甚至主导芯片或 FPGA 设计

HDL代码可读性性差,使用HLS转化的代码比直接用HDL资源多出14%~40%(来自优快云)

字长分析和优化需要 HLS 的使用者对综合的算法、数据集、C/C++HDL有深入的了解,这也是限制这种优化方式广泛使用的主要因素

需使用安装VivadoLicense授权,例程丰富,按照教程使用即可,转化的HDL代码是

FPGA代码风格,需微调成ASIC代码风格

System C

Synopsys 公司, CoWare 公司和Frontier Design公司1999年合作开发

OPEN

SOURCE

LICENSE 2.3

同时开发软件和硬件,适合复杂算法和Soc

RTL设计完成之前开始编写软件驱动程序,

RTL之后替换成DUT交叉验证,适合大型芯片并行开发

对开发人员的要求极高,要求能从系统级,事务级、行为级建模,要求精通SystemC硬件库

下载安装安装SystemC的工具即可,仿真tb

同样使用SystemC完成

Matlab

HDL Coder

HDL Coder MATLAB® 函数、Simulink® 模型和 Stateflow® 图表生成可移植、可合成的 HDL 代码。

需要授权

System Generater的增强版,可以生成FPGA/ASIC风格代码规范,同时有ISO26262规范HDL代码的部署方案,适合算法仿真研究

生成的HDL代码可读性差

安装Matlab HDL Coder工具,具备丰富的例程和视频教程

Scala

SpinalHDL

Spinal HDL是来自瑞士的Charles Papon发起的新一代开源硬件描述语言

开源

设计CPU设,模块化设计,语法清晰易懂

CPU 设计上有优势,不适合算法设计,同时需要掌握

Scala语言

需先安装Java虚拟机和Scala的开发环境,需学习

Scala语法

Chisel

伯克利大学在设计RSIC-V时设计的高级抽象硬件描述语言

开源

适合设计CPU设计,具备interface描述功能,

可以实例化模块连接,Chisel代码重用性高,自带lintCDC检查等

CPU 设计上有优势,不适合算法设计,同时需要掌握

Scala语言

需先安装Java虚拟机和Scala的开发环境,需学习

Scala语法

Other

System

Generater

System GeneratorXilinx公司进行数字信号处理开发的一种设计工具,嵌入了Xilinx的一些模块,可以在MATLAB中的Simulink中进行定点仿真

需要授权

具备大量的通信相关的IP,适合通信算法研究和在

FPGA实现

Simulink中生成转化HDL代码的IP,配置复杂,且容易出错,在14ISE时代较流行,后逐渐被Vivado HLS取代,HDL代码不易读

需安装matlabVivado,上手复杂

总结1)研究          HDL Coder依靠Matlab强大的算法库整体优于HLS

          2)FPGA AI相关算法:Xilinx提供HLS大量库函数,适合AI算法;

          3)验证模型: SystemC适合大型Soc芯片并行开发模型、软件驱动;

          4)CPU设计: ChiselSpinalHDL增强版,二者可以设计module和实例化模块连接,大量基于RSIC-V处理器的基础组件, Chisel更适合CPU设计

          5)IP开发   : PyGears/ Myhdl基于Python易于上手开发小规模IP Chisel/ SpinalHDL 适合大规模总线互联IP开发和集成 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值