当前位置:首页 > 电源 > 数字电源
[导读]VHDL和Verilog是用于描述可综合数字硬件的两种主流语言。但我们不应忘记,它们最初可不是为了这个目的创建的,而是为了模拟和归档。这个事实加之许多其它语法弱点,引发了许

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

以不同方式描述硬件

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

 

 

图1:简单的硬件描述。

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

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

 

 

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

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

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

 

 

图3:仲裁管道的实现。

未来展望

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

 

 

图4:Pinsec SoC框图。

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

 

 

图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域内实现)。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭