LJgibbs · 2021年01月06日

开源仿真器 EpicSim 运行 SM3_core

转载自:知乎
作者:ljgibbs

假期之中,尝试使用 EpicSim 运行 SM3\_core ,一个开源的国密 SM3 杂凑算法 IP。

此前该项目仅提供一个 windows 下 Modelsim 10.5 的验证环境,现今增加了 Linux 环境下,基于开源仿真器 EpicSim 的示例仿真脚本。

EpicSim 版本: v1.0.2

SM3\_core 版本:v0.3

运行测试(EpicSim)

目前增加了对于开源仿真器 EpicSim 的初步支持,运行一个固定的 SM3 示例,目前暂不支持 DPI 相关功能。

用户可以通过 sim/run\_epicsim/epicsim\_sm3\_core\_top\_tb.sh 启动测试平台。此外,在 sm3\_cfg.v 打开或关闭下列宏开关:

  • 打开 SM3\_INPT\_DW\_32,目前仅支持 32 位
  • 打开 SM3\_CMPRSS\_DIRECT\_ADD,使用加法符'+',使工具推断相关电路
  • 关闭 C\_MODEL\_ENABLE,目前暂不支持 DPI 相关功能
  • 打开 EPICSIM ,选择仿真器
  • 打开 VCD\_DUMP\_ENABLE, 使能波形 dump

工具在运行完成后产生波形文件,使用 GTKWave 查看

gtkwave ./sm3_example.vcd

目前已经测试的 EpicSim 版本与环境:v1.0.2 on CentOS6

测试输出

[eda@syn-eda  script]$ epicsim -g2005-sv -I ../../rtl/inc/  -l  ../../sim/tb/tb_sm3_core_top.sv ../../rtl/* ../../rtl/if/sm3_if.sv -s  tb_sm3_core_top
LOG: run SM3 example under 32bit mode.
LOG: res : 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0
** VVP Stop(0) **
** Flushing output streams.
** Current simulation time is 100125000 ticks.

trouble shooting

相较于此前的 ModelSim 环境,在适配 EpicSim 的过程中发现了两者的一些不同:

  • EpicSim 要求端口列表为空的模块,不能定义为 module xx\_module (); 必须去除括号,表示为 module xx\_module;
  • 似乎无法将 interface 作为模块的 port(待验证,目前我直接将端口中的 interface 去除了)
  • function/task port 类型不支持 ref

Limit

  • 暂未尝试 DPI 的相关功能

关于 EpicSim

EpicSim 是一款国产开源仿真器,基于 icarus iverilog 开发。

数字仿真器,是功能验证最不可或缺的一环。仿真器的性能,语义支持能力,编译流程控制以及调试能力,都对功能验证起着至关重要的作用。市场主流的仿真工具有VCS, IES, Questa 等商业软件,而iVerilog则是目前开源仿真器的代表,由于iVerilog只能支持有限的语法,且性能有待突破,目前主要用于科研项目和高校教学等领域,未曾在商用领域得到打磨的机会,没有实际项目的应用反馈,大大局限了该仿真器的功能改进和性能提升。

基于我们对时序电路特性的了解与研究,我们对iVerilog进行了针对性的优化,使其在RTL 设计上可以有2倍以上的性能提升,并且充实了Verilog语言的支持,大幅提高了iVerilog对场景的适应性。我们对iVerilog进行优化和改造的同时,对其仿真精度上的实现方式进行了修复和校准,使其结果与现有商用软件保持一致。

产品亮点

  • 最快的动态仿真速度,可获得至少2倍于iVerilog的性能提升
  • 进一步提升的软件质量和调试能力,提升了对标准波形格式的支持,以及基本的VPI功能
  • 在iVerilog原有的语法基础上进一步提升对IEEE1364/1800标准的覆盖
  • 在易用性、实用性、稳定性上提供专业技术支持

社区链接

更强、更快、更实用 EpicSim,全球速度最快的开源数字仿真器​edagit.com!

开源地址

GitHub:https://github.com/x-epic/EpicSim

Gitee:https://gitee.com/x-epic/EpicSim

安装使用

社区中有一个 CentOS7 安装教程

在CentOS7上安装开源Verilog仿真工具EpicSim - 动态仿真 - EDAGit - Powered by Discuz!​edagit.com

不过现在官方提供了一个 Ez 安装脚本,支持 CentOS6/7/8 等系统的便捷安装:

推荐阅读

关注此系列,请关注专栏FPGA的逻辑
推荐阅读
关注数
10506
内容数
512
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息