假期之中,尝试使用 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 等系统的便捷安装:

.net 5和.net core_开源仿真器 EpicSim 运行 SM3_core相关推荐

  1. 微软开源仿真器AirSim ROS接口

    目录 1. 背景 2. 获取更高频率的视觉图像 3. 车辆模式的ROS接口 4. 双目图像时间戳同步问题 5. 其他工具和仿真环境 1. 背景 AirSim是微软一款开源三维仿真器.说是仿真器,其实更 ...

  2. 又一嵌入式开源仿真器

    已剪辑自: https://mp.weixin.qq.com/s/X0I3EotJ8TRqLK8vb8iQvA 同QEMU类似,Renode也是嵌入式相关的一个模拟器. Renode 针对物联网应用, ...

  3. React Native开源项目如何运行(附一波开源项目)

    学习任何技术,最快捷的方法就是学习完基础语法,然后模仿开源项目进行学习,React Native也不例外.React Native推出了1年多了, 开源项目太多了,我们以其中一个举例子.给大家演示下如 ...

  4. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(四):开源的Silverlight运行容器的编译、配置...

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  5. 通过小宝的卡牌游戏,看开源SCUT服务器运行使用

    这几天在看小宝更新的bolg,小宝的通信底层写的真不错,为什么前面写了kbe,firefly的用法,这里又说scut,其实就服务器方面用这些或者网易的柚子,甚至云峰的那个3000行代码的工具功能都差不 ...

  6. 开源的.NET运行剖析器nprof简单使用指引

    在开发.NET应用程序中,尤其是数据库+运算密集的混合应用时,时常发现应用程序运行的不够快,优化无疑是一个程序员不得不面临的问题.如何找到软件系统的瓶颈就成了摆在程序员面前的难题.微软的Applica ...

  7. 搭建嵌入式开源开发环境

    目录 前言 开启通讯服务 打开Linux终端 检查vsftpd软件 修改vsftpg配置文件 确认网络连接 配置静态ip 宿主机上安装FTP软件 完成NFS和SSH服务的配置 安装交叉工具链 安装编辑 ...

  8. PlayStation Classic由开源PCSX模拟器提供支持

    "Classic" consoles, tiny, re-packaged versions of 80s and 90s game machines, are a popular ...

  9. 基于RISC-V架构的开源处理器及SoC研究综述

    RISC-V是加州大学伯克利分校(University of California at Berkeley,以下简称UCB)设计并发布的一种开源指令集架构,其目标是成为指令集架构领域的Linux,应用 ...

  10. 串口,USB,USB转串口,串口驱动,仿真器下载程序

    串口,USB,USB转串口,串口驱动,仿真器下载程序 在初学stm32,接触到的第一步便是下载程序, 方法一:利用仿真器下载程序 方法二:利用串口下载程序 本文简单介绍两种下载方法,浅入窥探下载原理, ...

最新文章

  1. fflush函数的深入理解
  2. 时间管理无非就是一个玩耍俄罗斯方块的过程,堆堆堆哈哈哈哈
  3. PHP获取各个IP地址
  4. matlab 读取excel一列,读取excel中的数据把第一列相同的所有行数据输出成一个excel...
  5. 修改了xml要不要重新起服务器,关于设置:Eclipse每次运行项目时都会修改server.xml(运行-在服务器上运行)...
  6. 戴尔电脑安装win 7
  7. php mysql 类型_php mysql bigint 类型
  8. 标签打印软件如何制作DataMatrix二维码
  9. 一键清除苹果锁屏密码_Aiseesoft iPhone Unlocker下载-苹果设备解锁工具 v1.0.22 官方版...
  10. 吉林省辽源市谷歌高清卫星地图下载
  11. 迅雷“应版权方要求,文件无法下载”完美解决方法!(¥28)
  12. uniapp 电商小程序 置顶特效/分享特效/红包特效 简单实现效果
  13. 迅雷离线下载 docker
  14. 深度迁移度量网络 Deep Transfer Metric Learning
  15. 虾皮开店难吗,如何判断适不适合入驻虾皮(一)
  16. java中activeThread_java多线程机制中的Thread和Runnable()区别
  17. 数十万csdn小白难题:自学软件测试,学到什么程度可以出去找工作啊?京东offer不要了,换字节跳动....
  18. JavaBean 与 POJO
  19. HashMap扩容时的rehash方法中(e.hash oldCap) == 0算法推导
  20. 斯芬克斯(sphinx) mysql全文搜索引擎

热门文章

  1. pr生成html文件格式,pr支持哪些格式
  2. 点击场景中的物件无法定位到Hierarchy
  3. java 7 学习笔记_Java学习笔记7
  4. 按键精灵手机mysql_mysql,按键精灵,读取写入
  5. mysql源码启动_mysql源码分析-启动过程
  6. python 采集系统_python—收集系统信息
  7. php app 签名错误,微信小程序基于PHP微信支付“签名错误”填坑
  8. php dcom扩展配置,PHP: 运行时配置 - Manual
  9. java复制数组函数_java 数组复制:System.arrayCopy 深入解析
  10. 【转】C# DateTime.Now详细用法