广告

如何让数字硬件设计简单化

2017-08-07 14:40:24 Charles Papon 阅读:
使用SpinalHDL是改变数字硬件设计愿景并实现真正工程化的一种体验。凭借其所有功能,它允许芯片设计人员描述优雅和可重复使用的硬件,而没有通常使用的HDL(如VHDL、Verilog甚至System-Verilog)的繁琐和限制。它也证明了使用软件工程技术在生成的RTL中没有任何开销就可详细描述硬件结构的可行性和收益。该语言及其参考编译器也是完全免费和开源的。
广告

VHDL和Verilog是用于描述可综合数字硬件的两种主流语言。但我们不应忘记,它们最初可不是为了这个目的创建的,而是为了模拟和归档。这个事实加之许多其它语法弱点,引发了许多问题,比如设计参数化能力弱;设计可重用性差;代码冗长、方法繁复;以及使可综合和不可综合特征之间的边界模糊不清。为了应对这些限制和问题,一些新的替代解决方案已经出现,如Bluespec、Chisel、CλaSH、Migen、MyHDL和SpinalHDL等。

以不同方式描述硬件

与VHDL和Verilog一样,SpinalHDL可用于通过定义寄存器和门来描述硬件,SpinalHDL不使用众所周知的事件驱动范式来描述硬件(如VHDL和Verilog),而是使用专为此目的设计的语法。这允许在其声明中区分组合信号与寄存器,并通过定义规则来描述硬件行为。这意味着信号和寄存器可以在相同的条件语句中分配,而这对于“事件驱动”替代方案是不可能的(见图1)。

VHDL17080701
图1:简单的硬件描述。

语言的所有语法都可用于硬件描述,语法可分为两类。一类是:通过使用专用类型显式(explicitly)定义可综合硬件;另一类是:可用于阐述硬件结构,例如实例循环、功能和类。除此之外,SpinalHDL编译器将执行许多检查,以确保用户设计是合法的,例如:是否缺少组合循环;所有组合分配的完整性、以避免不必要的闩锁指推(inferring unwanted latche);跨时钟域连接的合法性等——这使得SpinalHDL用起来很安全。

但SpinalHDL与VHDL和Verilog的主要不同是其嵌入到通用语言(Scala)中这一事实。由于这种方法,我们得到一个“Meta HDL”,其中高层级部分(类、动态阵列、字典...)可用于通过算法手段生成可综合的硬件描述。这提供了非常高的表现力来描述灵活和可重复使用的硬件。实际上,正是它使SpinalHDL有能力以面向对象和功能性编程的方式来操纵所描述设计的每一个元素;它与一个有能力的标准库结合起来,从而在元硬件描述和阐述能力方面获得了出乎意料的能力,远超VHDL、Verilog和SystemVerilog所能(见图2)。

VHDL17080702
图2:使用抽象实现寄存器库(register bank)。

SpinalHDL编译器能够将用户编写的硬件描述转换为人类可读和可综合的VHDL/Verilog网表(正如大多数原理图输入工具贯穿所用),这使得它已经与行业中使用的大多数EDA工具兼容。

此外,目标语言/EDA工具不须本地支持Spinal-HDL提供的所有高级功能(例如类型和数据结构参数化),在被解压缩/展开到生成的VHDL/Verilog网表前,在SpinalHDL编译器内部得以支持、解决(见图3)。

VHDL17080703
图3:仲裁管道的实现。

未来展望

作为这些概念的现实演示者,我们使用SpinalHDL实现了一款名为“Pinsec”的小型SoC,它集成了RISC-V CPU、SDRAM控制器、嵌入式RAM、GPIO、定时器、UART、VGA和JTAG调试接口,由AXI4和APB3互连全部连接在一起(见图4)。

VHDL17080704
图4:Pinsec SoC框图。

该演示表明,可非常容易地实现设计的顶层,特别是在涉及总线互连的参数化和实例化时。
与传统方法不同,SpinalHDL只需几行代码就能搞定,从而大大提高了可读性和生产率。例如,将新外设连接到APB互连只需要一行参数化代码(见图5)。

VHDL17080705
图5:Pinsec的总线桥和所有APB3总线构造的顶层实例化。

另一个有趣的演示是RISC-V CPU(名为VexRiscv)的第二次迭代,演示了使用SpinalHDL的先进元硬件描述功能带来的增益。首先,CPU顶层是一个空白骨架,它只提供一些阐述服务、作为信号通过各阶段(stage)的自动流水线、以及各阶段的仲裁接口。

与一个允许在CPU顶层注入硬件的插件注册系统相结合,该方法支持——可以具有相同功能的多个变体、而无需将其集成到CPU代码中的——非常灵活的CPU架构。插件可从最简单的事情(例如程序计数器或整数ALU)到最复杂的操作(例如通过L1缓存的加载和存储支持)。

插件之间的合作也可能非常复杂。例如,所有插件都可以发布新的指令操作码,以及如何由指令解码器进行解码。

然后,指令解码器将使用与SpinalHDL元硬件功能相结合的Quine-Mc Cluskey算法来生成最小指令解码逻辑。

结论

使用SpinalHDL是改变数字硬件设计愿景并实现真正工程化的一种体验。凭借其所有功能,它允许芯片设计人员描述优雅和可重复使用的硬件,而没有通常使用的HDL(如VHDL、Verilog甚至System-Verilog)的繁琐和限制。它也证明了使用软件工程技术在生成的RTL中没有任何开销就可详细描述硬件结构的可行性和收益。该语言及其参考编译器也是完全免费和开源的。

最后,请注意:上述示例中使用的所有功用和类,如Stream、RGB、队列、Apb3Decoder、AxiLite4和AxiLite4SlaveFactory都不是Spinal-HDL语言中提供的功能,而是由标准库使用其常规语法提供。换句话说,可以通过实现新的库、抽象层和可从根本上改善硬件描述表现力的工具来扩展语言本身;也可在不忽视抽象硬件的条件下、通过引入新的概念来扩展语言(因为这些库仍然在RTL域内实现)。

本文来自《电子工程专辑》2017年8月刊,版权所有,谢绝转载

本文为EET电子工程专辑 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 告别扎手指!中国团队无创血糖检测技术实现重大突破 无创血糖检测的难点在于无创葡萄糖传感器的研发,通过无创葡萄糖传感器来进行非侵入式的人体血糖检测。目前来说,按检测方式划分,无创葡萄糖传感器主要有光学传感器和电化学传感器两种……
  • 安谋科技人事变动,前瑞芯微副总裁陈锋担任CEO 安谋科技原联席CEO刘仁辰和陈恂正式卸任,由瑞芯微前副总经理陈锋接任新任CEO。此次安谋科技任命陈锋为公司唯一全职CEO,他的上任标志着安谋科技进入了一个新的发展阶段......
  • Microchip任命前AMD总裁Victor Peng为董事会成员 Victor Peng此前曾担任Advanced Micro Devices, Inc.(AMD)的总裁,拥有超过40年的行业经验。此次任命将于2024年2月10日正式生效。
  • EDA三巨头竞逐台积电AI设计流程 AI正稳步改变半导体行业,这一趋势在领先EDA公司和硅片代工厂表现得尤为突出。三大EDA工具制造商(Cadence、Synopsys和西门子EDA)已宣布与台积电合作,致力于为先进芯片制造节点开发AI驱动的设计流程。本文将简要回顾这些合作的现状。
  • Chiplet时代即将来临! 由于有助于加速设计开发、缩短上市时间和降低成本,Chiplet正迅速崛起中……
  • 去除示波器和数字化仪中的噪声和干扰 即使在最佳设计中,噪声和干扰也会悄然降低信噪比、掩盖所需信号并影响测量精度和可重复性。示波器和数字化仪等数字化仪器集成了多种功能,用于表征、测量和减少噪声对测量的影响。
  • 摩根士丹利详解全球人形机器人100 全球人形机器人领域上市公司的百强名单将人形机器人产业链区分为大脑、身体以及集成三大核心环节,覆盖全球共计100家上市公司。中国共37家企业上榜(中国大陆32家,台湾5家),其中深圳7家,占中国大陆上榜企业近四分之一,包括比亚迪、腾讯、优必选、速腾聚创、雷赛智能、兆威机电、汇川技术等......
  • DeepSeek的低成本AI模型将催生光通 DeepSeek模型虽降低AI训练成本,但AI模型的低成本化可望扩大应用场景,进而增加全球数据中心建置量。光收发模块作为数据中心互连的关键组件,将受惠于高速数据传输的需求。未来AI服务器之间的数据传输,都需要大量的高速光收发模块......
  • 全球首款骁龙®8至尊版折叠旗舰,OPP 凭借新一代3nm制程工艺与全新架构,骁龙® 8至尊版的单核和GPU 性能提升均超过 40%,使得Find N5在性能上实现质的飞跃……
  • 康佳特重磅推出aReady.IoT 简化物联网连接:应用就绪型软件构建模块
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
广告
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了