推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于PYTHON软硬件协同设计方法

更新时间:2019-12-30 10:00:46 大小:2M 上传用户:songhuahua查看TA发布的资源 标签:python软硬件协同设计硬件加速 下载积分:1分 评价赚积分 (如何评价?) 收藏 评论(0) 举报

资料介绍

针对当前系统设计中软硬件设计者分别采用不同的设计语言存在的天然鸿沟和如何将基于Python的大量软件算法快速地转换为硬件设计的问题,研究了一种新的基于Python的软硬件协同设计方法。并以基于Python的MyHDL扩展包为例,重点研究了以Python作为软硬件协同设计、仿真和校验的系统设计流程,得出基于Python的软硬件协同设计方法能大幅度提高系统设计及算法硬件实现的效率的结论。


部分文件列表

文件名 大小
基于PYTHON软硬件协同设计方法.pdf 2M

部分页面预览

(完整内容请下载后查看)
2013 4 15 日  
36 卷第 8 期  
Apr.2013  
现代电子技术  
Modern Electronics Technique  
Vol.36 No.8  
76  
基于 Python 软硬件协同设计方法  
刘毅飞  
北科技学院 生物医学工程学院,湖北 咸宁 437100)  
针对当前系统设计中软硬件设计者分别采用不同的设计语言存在的天然鸿沟和如何将基于 Python 的大量软  
件算法快速地转换为硬件设计的问题究了一种新的基于 Python 的软硬件协同设计方法。并以基于 Python MyHDL 扩  
展包为例点研究了以 Python 作为软硬件协同设计仿真和校验的系统设计流程出基于 Python 的软硬件协同设计方法  
能大幅度提高系统设计及算法硬件实现的效率的结论。  
关键词PythonFPGA硬件协同设计件加速  
中图分类号TN911⁃34; TP391.9  
文献标识码A  
文章编号1004⁃373X201308⁃0076⁃03  
Hardwaresoftware codesign method based Python  
LIU Yi⁃fei  
School of Biomedical EngineeringHubei University of Science and TechnologyXianning 437100China)  
AbstractSince there is a great design difference due to the different design languages applied by software and hardware  
designersa new hardware and software co⁃design method based on Python is studied in this paper for quickly converting a large  
number of software algorithms based on Python to its hardware implementation. The Python system design flowchart in hardware⁃  
software co⁃designsimulation and verification is researched emphatically by taking MyHDL package based on Python as a study  
case. The flowchart show the Python software and hardware co⁃design method can highly improve efficiency of system design and  
hardware algorithm implementation.  
KeywordsPythonFPGAsoftware⁃hardware co⁃designhardware acceleration  
opsys 公 司 Synphony C Compiler Calypto Design Sys⁃  
0
tems 司的 Catapult SL Synthesis 以将 C/C++法转  
换为相应的硬件[2⁃3]Python 一种简单易学并且功能  
强大的编程语言许多算法是由 Python 来实现且  
这些算法很多是免费源的C/C++似需要如何  
完成基于 Python 的软硬件协同设计[4]。  
现代系统设计许多都是由 C/C++Python 等高级语  
言来完成且这些系统越来越复杂及到的算法的  
运算量也越来越大多算法需要用硬件实现来满足算  
法的实时性要求。FPGA 是一种可编程的逻辑器件它  
具有便于修改能并行地完成大量的运算而  
提高算法的实时性且随着硬件制造水平不断地提  
FPGA 的资源越来越大作频率也越来越高使得  
能在其上面完成的算法也越来越复杂。但是传统的软  
硬件分开设计的方法由于软硬件设计者采用不同的设  
计语言在软硬件设计者之间难以沟通导致设计周期  
长等问题种设计方法已不能满足快速地增长的市场  
要求何将这些系统设计中的算法快速转换为相应的  
硬件来实现要新的软硬件协同设计方法。当前基于  
C/C++软硬件协同设计一个 SystemC 准化组织  
一直致力于这个工作[1]有少量商业化工具例如 Syn⁃  
1
基于 Python 的软硬件协同设计发展  
由于 Python 的强大的软硬件描述能力年来许多  
研究者在 Python 的软硬件协同设计方面进行了许多研  
Logaras E 出了一种称为 SysPySystem Py⁃  
thon以使用 Python 描述硬件并将其自动转换为  
[5]  
VHDL Zhang mi 采用 PDSDLDynamic System Descrip⁃  
tion Language进行系统建模和校验并可将系统转换  
Verilog 的硬件描述[6]别是 Decaluwe J 提出一种称  
MyHDL Python 展包来进行软硬件协同设计[7],  
Villar J I MyHDL 成了一个接口设计实例[8]这  
些开发工具各自具有自己的一些特点是他们有一点  
是相同是采用 Python 来进行软硬件协同设计。下面  
收稿日期2012⁃11⁃09  
刘毅飞Python 软硬件协同设计方法  
77  
8 期  
MyHDL 为例介绍基于 Python 的软硬件协同设计。  
发的先进方法比如快速应用开发试驱动开发都在  
Python 上得以体现于硬件描述语言的硬件设计和软  
件开发具有一定的相似性MyHDL 可以使用最新  
的软件开发技术。  
2
基于 Python MyHDL 包简介  
MyHDL 采用 Python 扩展包的形式使其能支持硬件  
设计和仿真并在仿真结果符合要求后可将软件算法自  
动转换为相应的采用 Verilog VHDL 件描述于  
MyHDL 包是基于 Python 的硬件扩展面主要对 MyH⁃  
DL 硬件方面的一些主要特点做简要介绍[9]。  
2.1 数据类型  
3.3 软硬件设计可以采用同样的开发环境  
Python 是算法实现的一种理想的语言多算法都  
Python 实现常算法的软硬件实现由不同工程师来  
实现件工程师使用 Python件工程师使用通用的  
硬件描述语言Verilog VHDL件工程师和软  
件工程师之间存在一条鸿沟采用 MyHDL可以在  
同一个 Python 环境实现算法设计仿真和校验。  
3.4 其他优点  
标准 Python int 类型已经具有许多硬件设计所需  
要特征是在硬件设计中由于包含许多位操作和处  
MyHDL 设计了 intbv 供索引和切片操作来支持  
位的操作和处理。  
对于没有一定硬件设计经验的设计者常采用  
Verilog 计会混淆阻塞和非阻塞赋值清楚 Verilog  
的符号运算VHDL 进行设计又不理解 VHDL 的信  
号概念觉得 VHDL 的类型和位宽转换很繁琐是  
如果采用基于 Python MyHDL 作为设计语言些  
都将不成为问题。  
2.2 模块口和信号  
MyHDL 采用函数来对硬件的模块进行建模My⁃  
HDL 也有信号对象似于 VHDL 语言的信号用信  
号作为函数的参数来定义模块的端口。  
2.3 发生器  
发生器是 MyHDL 一个关键概念来建立并发  
性模型应于 Verilog always 块或者 VHDL 的进程。  
2.4 自动转换  
4
基于 Python 的软硬件设计流程  
在现代系统设计中件工程师采用 Python 等高级  
在一定限制条件下MyHDL 使用 toVerilog或者  
toVHDL数将 MyHDL 设计自动转换为相应的 Veril⁃  
og 或者 VHDL 代码果符合 MyHDL 可综合子集的要  
可使用 MyHDL 完成可硬件综和的代码并在 FPGA  
上实现。  
语言硬件系统设计多采用 VerilogVHDL 硬件描述语  
如何将 Python描述的软件映射为相应的硬件上软  
硬件开发者之间的交流存在一道天然的鸿沟采用 Py⁃  
thon 来进行软硬件协同设计就可以解决这一个问题基  
Python的软硬件协同设计的流程如图 1所示。  
2.5 仿真  
MyHDL 通过 Cosimulation 对象使其能支持仿真对  
于自动转换的 Verilog 码或者 VHDL MyHDL 还  
可作为硬件校验语言来对转换后的 Verilog VHDL 进  
行协同仿真和校验。  
3
采用 MyHDL 的硬件设计优点  
Verilog VHDL 是当前的主流硬件设计语言是  
使用基于 Python MyHDL 作为硬件设计也具有许多优  
[10]使得其可以作为设计者特别是硬件设计的初学者  
另外一种较好的选择。  
3.1 MyHDL 使用成本低  
MyHDL 是免费的并且开源使用 MyHDL 设计的  
工具链中同样可以使用大量的免费工具比如 ICArus,  
IVERILOG 仿真工具GTKWAVE 查看仿真波形而可  
以减少设计成本。  
1 基于 Python 软硬件协同设计流程  
3.2 在硬件设计中使用先进的软件开发技术  
由于 Python 本身是一种软件开发语言代软件开  
首先采用 Python 进行系统设计后根据系统性能  
要求进行软硬件划分于系统性能要求比较高的部分  

全部评论(0)

暂无评论