0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

硬件开源编程利器MyHDL简介

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2022-03-14 10:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

硬件开源编程利器MyHDL简介

Verilog缺点

自从1995年Verilog HDL 1364-1995标准发布至今已经20多年了,说他经久不衰并不恰当,主要是没有新的语言可以替代,现今数字电路高速发展,Verilog的一些缺点暴露的越来越多,下面总结一下:

借用知乎上“马車”的观点:

例化不方便:有人会说,有辅助插件帮你完成 (确实有很多好的插件,emacs verilog-mode , vim 的autoinst) 即便这样,但是对带参数的模块例化, 一对多例化同样需要手动处理,非常不方便

大量的重复声明:无休止的变量声明,无休止的位宽声明,容易出错, 作为一门上古时期的语言,对编译器不能要求太高

函数不能带参数:verilog中函数的使用只能是零零星星,哪怕是一个位宽的变化都要重写函数, 作为一门语言函数不能广泛使用,实为鸡肋

参数化实在是笨:虽然支持参数化,parameter 也只能做一些简单的加减左移操作, 没有基本math包。利用宏做参数化,对于变量比较多的设计,非常复杂,并且也不好维护

错误检测很弱:编译工具对错误的处理比较保守, 这种保守可能也源于语言本身,以及编译器的能力不及。

以下问题需要工程师自己处理

位宽不匹配

input/output端口写反

饱和截位弄错

时钟域问题锁存器检查组合逻辑环自己查....

基于前仿的编译,会遗漏大量的错误,必须要Lint, 综合检查, 费时费力又费钱。

重构、增减信号,Bist/DFT逻辑插入麻烦

需要手动处理, 编写脚本, 即便是脚本也不通用

(内容来源:https://www.zhihu.com/question/440688150 作者:温戈 公众号:OpenIC)

基于以上各种各样的缺点,一些基于Verilog语言的第三方语言(本质仍然是HDL)陆续出现,像SpinalHDL,Chisel和本文的主角MyHDL都是这类语言,关于SpinalHDL,Chisel请查看(https://www.zhihu.com/question/440688150)

MyHDL介绍

你能想象有一天能用Python编写“硬件”吗?

(本系列基于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编写困难的任务。一个显著点是自动处理有符号算术问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    31

    文章

    1374

    浏览量

    114722
  • HDL
    HDL
    +关注

    关注

    8

    文章

    332

    浏览量

    49045
  • 编译
    +关注

    关注

    0

    文章

    696

    浏览量

    35282

原文标题:硬件开源编程利器MyHDL简介

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索 ST7 系列的利器:inDART 调试与编程工具

    探索 ST7 系列的利器:inDART 调试与编程工具 引言 在电子工程师的日常工作中,高效且强大的调试和编程工具至关重要。对于 ST7 系列微控制器,inDART 就是这样一款值得关注的工具。今天
    的头像 发表于 04-16 12:40 187次阅读

    使用Python/MyHDL创建自定义FPGA IP

    使用 Python/MyHDL 创建自定义 FPGA IP,与 Vivado 集成,并通过 PYNQ 进行控制——实现软件上的简单硬件设计。
    的头像 发表于 04-09 09:53 220次阅读
    使用Python/<b class='flag-5'>MyHDL</b>创建自定义FPGA IP

    沐曦股份GPU产品正式接入华佗开源生态

    沐曦股份坚持“自主创新与开放兼容”双轨战略,以自研MXMACA软件栈为核心,构建硬件与应用的桥梁,并承载开源核心使命。该栈于2025年2月正式开源,致力于打造开放的GPU编程接口标准,
    的头像 发表于 03-16 14:40 1565次阅读
    沐曦股份GPU产品正式接入华佗<b class='flag-5'>开源</b>生态

    开源项目BomberCat安全测试工具总体介绍

    硬件安全测试缺一款多技术融合的利器吗?今天带来一款开源安全测试工具, 集 NFC 与磁条两大主流卡片技术于一体,专为银行终端、门禁系统等设备的漏洞检测打造,支持卡片读写、模拟、磁条仿冒等核心功能。
    的头像 发表于 02-27 09:19 533次阅读
    <b class='flag-5'>开源</b>项目BomberCat安全测试工具总体介绍

    OpenHarmony开发开源资料!凌蒙派-RK3568开发板:从入门到实战的全栈硬件平台

    点的利器:凌蒙派 - RK3568 开发板,以及它的核心开源资源站——Gitee 仓库(https://gitee.com/xie-shancai/lockzhiner-rk3568-openharmony)。
    的头像 发表于 02-05 13:56 644次阅读
    OpenHarmony开发<b class='flag-5'>开源</b>资料!凌蒙派-RK3568开发板:从入门到实战的全栈<b class='flag-5'>硬件</b>平台

    从零开始安装并配置开源AI编程神器OpenCode

    对于个人开发者而言,选择 OpenCode + 国产开源编程模型 的组合,本质上是用 开源工具 + 国产高性价比模型 复刻了甚至超越了硅谷顶尖付费产品的AI编程体验。 让我们开始安装并
    的头像 发表于 01-22 21:22 1913次阅读
    从零开始安装并配置<b class='flag-5'>开源</b>AI<b class='flag-5'>编程</b>神器OpenCode

    音频应用的利器:DS4420 I²C可编程增益放大器

    音频应用的利器:DS4420 I²C可编程增益放大器 在音频应用领域,一款性能出色的放大器对于提升音质和实现精准控制至关重要。今天,我们就来深入了解一下Dallas Semiconductor
    的头像 发表于 01-15 09:25 413次阅读

    为什么说uCentral是构建开放网络的开源利器

    uCentral是TIP主导的开源网络管理系统,其核心uCentral Controller通过开放协议实现设备集中管控与自动化运维。该系统支持配置下发、状态监控和闭环自愈,在数据中心场景中要求底层交换机具备NETCONF/YANG、VXLAN等开放接口能力,为构建智能云化网络提供坚实基础。
    的头像 发表于 11-28 18:33 1408次阅读
    为什么说uCentral是构建开放网络的<b class='flag-5'>开源</b><b class='flag-5'>利器</b>?

    开源FPGA硬件硬件黑客集结:开源FPGA开发板测评活动全网火热招募中......

    硬件第一期发布 开源开发板简介 OPHW-25H 开源板 主控采用紫光同创 Logos-2 系列 FPGA(PG2L25H-6IMBG325),参数如下: 4 路 6.6Gbps H
    发表于 10-29 11:37

    硬件黑客集结:开源FPGA开发板测评活动全网火热招募中......

    开源活动简介近期,小眼睛科技联合紫光同创及电子发烧友发起了#拥抱开源!一起来做FPGA开发板活动,活动一经发布,得到了很多开源爱好者的热烈响应,再次感谢大家的支持!
    的头像 发表于 10-29 08:05 865次阅读
    <b class='flag-5'>硬件</b>黑客集结:<b class='flag-5'>开源</b>FPGA开发板测评活动全网火热招募中......

    Banana Pi 开源硬件社区 路由器系列产品视频 https://www.bpi-shop.com/

    开源硬件
    Banana Pi开源硬件
    发布于 :2025年10月11日 12:16:49

    共谱开源华章 | 匠芯创荣获“开源生态战略合作伙伴”奖

    由嘉立创集团主办的第三届开源硬件星火会在深圳福田四季酒店举行。大会旨在搭建开源硬件领域交流合作的高水准平台,汇聚产、学、研各界嘉宾,围绕开源硬件设计、国产EDA、国产芯片等热点议题深入探讨。匠芯创
    的头像 发表于 08-07 15:37 1628次阅读
    共谱<b class='flag-5'>开源</b>华章 | 匠芯创荣获“<b class='flag-5'>开源</b>生态战略合作伙伴”奖

    火爆开发中 | 开源FPGA硬件板卡,硬件第一期发布

    开源FPGA项目自发布以来,得到了众多开发者的关注,涉及工业、通信、车载等多个行业的100+位工程师报名参与设计,并分为:硬件组、FPGA组、linux组。其中硬件组率先开始启动项目,经过和所有报名
    发表于 07-09 13:54

    开源FPGA硬件,核心开发者招募中......

    01背景简介近期,小眼睛科技联合紫光同创及电子发烧友发起了#拥抱开源!一起来做FPGA开发板活动,活动一经发布,得到了很多开源爱好者的热烈响应,再次感谢大家的支持!为便于活动顺利开展,我们将根据大家
    的头像 发表于 06-20 08:03 1277次阅读
    <b class='flag-5'>开源</b>FPGA<b class='flag-5'>硬件</b>,核心开发者招募中......

    开源鸿蒙硬件生态分论坛圆满举办

    近日,开源鸿蒙开发者大会2025(OHDC.2025)硬件生态分论坛在深圳圆满举办。本次论坛主题为“开源鸿蒙硬件新生态”,特邀行业技术领袖、专家、开发者和生态伙伴,从芯片平台、
    的头像 发表于 06-05 15:35 1174次阅读