MyHDL中文手册(一)——概述
硬件开源编程利器MyHDL简介
(本系列基于MyHDL 0.10.0 版 on Python3)
译自 http://docs.myhdl.org/en/stable/manual/intro.html
MyHDL项目的目标是通过python语言的优雅和简洁性来增强硬件设计者的能力。
MyHDL是一种免费、开源的软件包,用于使用python作为硬件描述和验证语言。python是一种非常高级的语言,硬件设计者可以利用它的全部力量来建模和仿真他们的设计。此外,可以将设计转换为verilog或vhdl语言。这提供了一个融入传统设计流程的切入口。
建模
python的强大和清晰性使MyHDL成为高层次建模的理想解决方案。python以为复杂建模问题提供优雅解决方案而闻名。此外,python对于快速应用程序开发和试验是非常优秀的。
MyHDL背后的关键思想是使用python生成器来建模硬件并发性。生成器最好被描述为可(从暂停状态中)恢复函数。MyHDL生成器类似于verilog的always块和vhdl中的过程。
一个硬件模块(MyHDL术语中的块)建模为返回生成器的函数。这种方法使支持诸如任意层次结构、命名端口关联、实例数组和条件实例化等特性变得简单明了。此外,MyHDL提供了实现传统硬件描述概念的类。它提供了一个信号类来支持生成器之间的通信、支持面向位操作的类以及枚举类型类。
仿真与验证
内置仿真器运行在python解释器的顶部。它支持通过观看波形来跟踪vcd文件中的信号变化。
使用MyHDL,python单元测试框架可以用于硬件设计。虽然单元测试是一种流行的现代软件验证技术,但在硬件设计领域还是比较少见的。
MyHDL还可以作为verilog设计的硬件验证语言,通过与传统的hdl模拟器进行仿真。
转换为Verilog语言与VHDL语言
遵从一定的限制后,可将MyHDL设计转换为verilog语言或vhdl语言,这是切入传统设计流程的一条路径,包括综合和实现。可转换子集受到限制,但比标准可综合子集要宽得多。它包括可用于高层次建模和test benches的功能。
转换器处理一个已完全解析的设计实例。因此,原有的设计结构可以任意复杂。此外,转换限制仅适用于生成器内部的代码。除了外部生成器,python的能力可以充分释放,而不影响可转换性。
最后,转换器自动地实现了许多用verilog或vhdl编写困难的任务。一个显著点是自动处理有符号算术问题。
更多推荐
所有评论(0)