前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IC数字前端开源仿真工具和LLHD

IC数字前端开源仿真工具和LLHD

作者头像
hunterzju
发布2021-12-09 13:58:02
1.6K0
发布2021-12-09 13:58:02
举报
文章被收录于专栏:编译器开发

IC数字前端仿真工具

在数字电路前端设计流程中,前端仿真用于验证电路设计逻辑功能的正确性,常用的仿真软件有商业软件VCS和ModelSim(现在好像叫Questa了),国外大学里教学也常用一些开源软件,如iverilog和verilator。

iverilog全称Icarus Verilog,是一个用c++实现的轻量级跨平台开源verilog仿真软件。它能够对verilog描述的硬件电路进行逻辑仿真,仿真结果可以通过gtkwave来查看。

verilator是一款支持systemverilog和verilog的开源数字电路仿真器,也是c++实现的。verilator仿真具有良好的性能,也有厂商采用verilator来降低成本。现阶段,verilator也被纳入了芯片联盟(CHIPS Alliance)。

在众多仿真软件中,由于verilog语言设计问题,有一些corner case处理比较困难,因而不同仿真器在一些问题的处理结果并不相同。有时候一些厂商会保留两套工具做交叉检查。CIRCT项目尝试将LLVM和MLIR的设计哲学应用到硬件设计工具中,希望构建一套模块化、语义清晰一致、可重用的硬件设计基础设施。其中,很重要的一部分内容就是硬件设计的中间表示IR的设计,目前CIRCT中包含了FIRRTLLLHD两大类IR。

LLHD

LLHD有公开的论文,下文主要对论文LLHD: A Multi-level Intermediate Representation for Hardware Description Languages论文的大概内容和实现进行简要说明:

主要内容

该论文提出了用于一种硬件设计语言的IR表示,该IR设计借鉴了LLVM中的设计思想,目标是能够将该IR应用于硬件电路设计的整个流程。论文主要包括以下内容:

  • - 定义了一个多级 IR,它当前的HDL抽象为基于 SSA 的形式,这种形式不但与现代的指令式编译器兼容,而且具有表示数字硬件的扩展能力和专业性;
  • - 介绍了现有的工业标准的HDL,例如 SystemVerilog 和 VHDL,如何映射到这个IR表示;
  • - 介绍了从 Be-havioural LLHD 到 Hardware-near Structural LLHD 的转换通道;
  • - 验证了即使没有商业工具的明确支持,这种多级 IR 也可以改进现有的 EDA 工具流程;
  • - 通过实验验证了IR 可以捕获复杂的设计,作者尝试将一个CPU内核用自己实现的基于LLHD的模拟器综合模拟,得到的模型与商业模拟器相同,并且具有一定的速度优势。

硬件电路设计具有三大特性:层次性,并行性和时序依赖性。LLHD采用了多层IR的设计,能够较好地符合上述特性,具体包含以下几种类型:

  • - Behavioural LLHD: 旨在尽可能轻松地表示更高级别 HDL 中的电路描述。它能够完全表示simulation constructs和test benches,比如断言、文件I/O、形式验证(formal verification)信息都具有原生表示。
  • - Structural LLHD:主要描述硬件设计的输入到输出关系的部分,这基本上涵盖了可以由实体(entity)表示的所有内容。
  • - Netlist LLHD:主要描述用于实例化和连接子电路的实体和指令。主要包括:实体构造,以及信号创建 (sig)、连接 (con)、延迟 (del) 和子电路实例化 (inst)。

实现

LLHD对应的实现包括了一个针对systemverilog/VHDL的编译器moore和一个数字电路仿真器llhd-sim。二者的关系类似与clang和llvm的关系,moore对systemverilog源码进行编译综合,转换为LLDH IR的表现形式;llhd-sim基于LLHD IR对电路进行仿真,仿真结果可以出处为VCD格式,通过gtkwave可以查看仿真波形。

此外,LLHD还被整合到了CIRCT项目中,可以编译生成llhd-sim应用,moore应用暂时还没有迁移到CIRCT项目镇南关。注意当前CIRCT项目编译出的的llhd-sim应用输出格式是自定义的,还没有支持VCD格式,需要自己写脚本转换一下。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • IC数字前端仿真工具
  • LLHD
    • 主要内容
      • 实现
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档