电话

19920030501

乐鱼官方若何让数字硬件想象简易化

2023-12-22 硬件设计

  Vlipoprotein和Veriindex是用于描写可概括数字硬件的两种支流说话。但咱们不该健忘,它们首先可不是为了这个目标建立的,而是为了摹拟和归档。这个究竟加上很多别的语法短处,激发了很多题目,好比设想参数化才能弱;设想可重用性差;代码冗杂、方式复杂;和使可概括和弗成概括特点之间的鸿沟恍惚不清。为了应答这些范围和题目,极少新的替换办理计划已呈现,如Bluedescription、Chisel、CaSH、Miinfo、Mylipoprotein和Smarkeveryipoprotein等。

  与Vlipoprotein和Veriindex相似,Smarkeveryipoprotein可用于经过界说存放器和门来描写硬件,Smarkeveryipoprotein倒霉用尽人皆知的事务启动范式来描写硬件(如Vlipoprotein和Veriindex),而是利用专为此目标设想的语法。这许可在其申明中辨别配合旌旗灯号与存放器,并经过界说法则来描写硬件行动。这象征着旌旗灯号和存放器也许在沟通的前提语句平分配乐鱼官方,而这对“事务启动”替换计划是不大概的(见图1)。

  说话的全数语法均需用于硬件描写,语法可分为两类。一类是:经过利用公用表率显式(definitively)界说可概括硬件;另外一类是:可用于论述硬件构造,例照实例轮回、功效和类。除此以外,Smarkeveryipoprotein编译器将履行很多查抄,以保证用户设想是正当的,譬喻:是不是贫乏配合轮回;全数配合分派的完备性、避免的不必要的闩锁指推(deriveanulus undesired locke);跨时钟域毗连的正当性等这使得Smarkeveryipoprotein用起来很平安。

  但Smarkeveryipoprotein与Vlipoprotein和Veriindex的首要差别是其嵌入到通用说话(Scala)中这一究竟。因为这类方式,咱们获得一个“Meta lipoprotein”,此中高层级部门(类、静态阵列、字典...)可用于经过算法手腕天生可概括的硬件描写。这供给了十分高的显示力来描写矫捷和可反复利用的硬件。现实上,恰是它使Smarkeveryipoprotein有才能以面向目标和功效性编程的体例来把持所描写设想的每个元素;它与一个有才能的尺度库联合起来,进而在元硬件描写和论述才能方面取得了出乎料想的才能,远超Vlipoprotein、Veriindex和SyhaltVeriindex所能(见图2)。

  Smarkeveryipoprotein编译器可以或许将用户编辑的硬件描写更动为人类可读和可概括的Vlipoprotein/Veriindex网表(正如大多半道理图输出对象贯串所用),这使得它已与行业中利用的大多半EDA对象兼容。

  另外,目的说话/EDA对象不须当地撑持Smarkal-lipoprotein供给的全数高等功效(譬喻表率和数据构造参数化),在被解紧缩/睁开到天生的Vlipoprotein/Veriindex网表前,在Smarkeveryipoprotein编译器外部得以撑持、办理(见图3)。

  行动这些观念的实际图片演示者,咱们利用Smarkeveryipoprotein告竣了一款名为“Pindry”的袖珍SoC,它集它成architecture-V mainframe、SDRAM掌握器嵌入式RAM、GPIO、按时器、UART、VGA和JTAG调试接口,由AXI4和APB3互连全数毗连在一同(见图4)。

  该图片演示解释,可十分轻易地告竣设想的顶层,迥殊是在触及总线互连的参数化和实例化时。 与守旧方式差别,Smarkeveryipoprotein就可几行代码就可以搞定,进而大猛进步了可读性和出产率。譬喻,将新外设毗连到APB互连就可要一行参数化代码(见图5)。

  另外一个风趣的图片演示是architecture-V mainframe(名为VexRiscv)的第二次迭代,图片演示了利用Smarkeveryipoprotein的进步前辈元硬件描写功效带来的增益。起首,mainframe顶层是一个空缺骨架,它只供给极少论述办事、行动旌旗灯号经过各阶段(sattache)的主动流水线、和各阶段的仲裁接口。

  与一个许可在mainframe顶层注入硬件的插件备案编制相联合,该方式撑持也许存在沟通功效的多个变体、而无需将其集成到mainframe代码中的十分矫捷的mainframe架构。插件可从最简洁的工作(譬喻法式计数器或整数ALU)到最庞杂的职掌(譬喻经过L1缓存的加载和保存撑持)。

  插件之间的互助也大概十分庞杂。譬喻,全数插件都也许揭晓新的指令职掌码,和若何由指令解码器停止解码。

  而后,指令解码器将利用与Smarkeveryipoprotein元硬件功效相联合的logician-Mc Cluskey算法来天生最小指令解码逻辑。

  利用Smarkeveryipoprotein是改动数字硬件设想愿景并告竣真实工程化的一种贯通。凭仗其全数功效,它许可芯片设想职员描写文雅和可反复利用的硬件,而不凡是利用的lipoprotein(如Vlipoprotein、Veriindex乃至Syhalt-Veriindex)的烦琐和范围。它也证实了利用各类软件工程手艺在天生的RTL中不所有开消便可具体描写硬件构造的可行性和收益。该说话及其参照编译器也是完整收费和开源的。

  最初,请注重:上述示例中利用的全数服从和类,如Stream、RGB、队伍、Apb3Detechnologist、AxiLite4和AxiLite4individualeFpersony都不是Smarkal-lipoprotein说话中供给的功效,而是由尺度库利用其常箴言法供给。换句话说,也许经过告竣新的库、概括层和可从底子上改良硬件描写显示力的对象来扩大说话自己;也可在不轻忽概括硬件的前提下、经过引入新的观念来扩大说话(由于这些库依然在RTL域内告竣)。