首页 > 其他分享 >SystemC简介与安装

SystemC简介与安装

时间:2023-11-29 18:22:22浏览次数:38  
标签:set CMAKE SystemC 简介 可以 安装 systemc

SystemC简介与安装

介绍

最近在搭建一个仿真器的工作,希望可以实现电路系统建模以后直接模拟macro上进行完整网络推理的电路表现,这样无论是设计过程时探索设计空间,进行方案评估,以及流片后的性能评估等都可以得到一个高度简化。

综合考虑各类开源,最后决定使用SystemC进行电路的行为建模。

SystemC不是一门新语言,而是C++开发的库,因此可以直接使用C++调用开发,不需要学习额外的语言。只要有一个支持C++的环境,安装SystemC之后就可以运行,也不需要额外的EDA工具。

SystemC是由Accellera组织拥有的开源库,它使用Apache 2.0开源协议;Apache2.0协议是一种对商业应用友好的许可,所以,不论用户用之开发的产品是否商用,都可以放心使用,不用担心侵权行为。

SystemC有很多优良特性,首先SystemC可以采用类似于Verilog一样的模块开发,使得SystemC搭建的系统模型可以较容易的转换为RTL设计。此外SystemC可以进行cycle by cycle的仿真,从而获得电路模型每个cycle下的表现,甚至可以导出VCD波形文件导入EDA软件中进行观察。

最重要的是由于SystemC基于C++语言,在进行算法评估时可以直接使用各种强大的C++算法库快速开发复杂的算法,例如矩阵运算库,傅里叶变换库,科学计算库,深度学习库等等。类似的算法开发在Verilog或者SystemVerilog下是非常费事的。

同时SystemC也是进一步优化组里的工作流的重要一环,如下图所示:

image

作为架构设计人员完成SystemC模型的开发之后,可以让算法人员直接运行算法进行性能评估,可以交给软件开发人员进行底层软件/驱动程序的开发,可以交给验证人员作为UVM验证时的golden bench,也可以交给硬件开发人员进行实现的参考。

可以说将所有的环节都打通了,非常具有吸引力。

此外支持混合系统建模仿真的SystemC AMS使得模拟电路部分建模和仿真也可以进行了。当我们需要进行数模混合建模仿真,一样可以基于SystemC来完成。

安装

官网上可以下载到SystemC的源代码,进行编译安装。

最新的release是2022年12月更新的SystemC-2.3.4,但我在尝试编译安装时碰到的问题比较多,同时相关的debug资料比较少,最后选择降了一个版本,安装2018年的SystemC-2.3.3。

首先下载源码包并解压,然后进入解压文件夹后创建build文件夹。

mkdir build
cd build

我没有采用运行configure的方式,而是直接手动对CMakeLists进行了编辑。打开项目自己的CMakeLists,对照stackoverflow上的一个帖子,我修改了三项内容,分别为:

  1. 第271行,set (CMAKE_BUILD_TYPE Release) -> set (CMAKE_BUILD_TYPE Debug)

  2. 第276行,set (CMAKE_CXX_STANDARD 98) -> set (CMAKE_CXX_STANDARD 14)

  3. 第545行,set (_CMAKE_INSTALL_PREFIX "/usr/local/systemc")

做1,2修改的原因是我编写的代码使用的是c++ 14的标准(使用了c++ 14的语法feature),如果SystemC的编译采用c++ 98标准的话,include到我的项目中一同编译会出现报错。3主要是修改安装路径,原来的默认安装路径是在/opt/systemc下的。

然后在build文件夹下进行执行如下命令即可。

cmake ..
make
sudo make install

安装完毕后新建工程,编写main.cpp和CMakeLists。

main.cpp:

#include <systemc.h>

SC_MODULE (hello_world) {
    SC_CTOR (hello_world)
    {
        SC_THREAD(say_hello);
    }

    void say_hello()
    {
        cout << "Hello World SystemC" << endl;
    }

};

int sc_main(int argc, char* argv[])
{
    hello_world hello("HELLO");
    sc_start();

    return (0);
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.0)
project(test_systemc)

find_package(SystemCLanguage CONFIG REQUIRED)
set (CMAKE_CXX_STANDARD ${SystemC_CXX_STANDARD})

add_executable(test_systemc main.cpp)
target_link_libraries(test_systemc SystemC::systemc)

编译运行,结果ok。

image

参考资料

https://www.cnblogs.com/xuhaoee/p/12119724.html
https://blog.csdn.net/gsjthxy/article/details/105669841
https://stackoverflow.com/questions/46875731/setting-up-a-systemc-project-with-cmake-undefined-reference-to-sc-core
https://zhuanlan.zhihu.com/p/146747267
https://systemc.org/overview/systemc-ams/#Why SystemC AMS

标签:set,CMAKE,SystemC,简介,可以,安装,systemc
From: https://www.cnblogs.com/sasasatori/p/17865550.html

相关文章

  • SecureCRT汉化版安装、使用以及常见问题
    SecureCRT8.5是一款支持SSH(SSH1和SSH2)的终端仿真程序,适用于Windows、MAC和Linux的SecureCRT的客户端程序。简单来说,就是可以在Windows环境下登录UNIX或Linux服务器主机的软件。通过高级会话管理提高了工作效率,并提供了一系列节省时间和简化重复性任务的方法,为组织中的每个人......
  • linux安装MAT(MemoryAnalyzerTool)工具
    下载地址:EclipseMemoryAnalyzerOpenSourceProject|TheEclipseFoundation注意:1.12.0Release需要JDK11参数配置在配置的部分,我们主要配置的是ParseHeapDump.sh脚本中的内存参数。在脚本的最后一行的最后面,加上如下的参数-vmargs-Xmx30g-XX:-UseGCOverhea......
  • 【转】如何给 Visual Studio 2022 安装 .NET 4.5 开发者工具包?
    本文转自:https://www.coderbusy.com/archives/2913.html在VS2022打开.net4.5的项目时,可能会遇到编译报错:ErrorMSB3644Thereferenceassembliesfor.NETFramework,Version=v4.5werenotfound.Toresolvethis,installtheDeveloperPack(SDK/TargetingPack)for......
  • win7系统安装mysql及问题处理,安装mysql后net start mysql服务无法启动
    问题描述:win7系统安装mysql,安装mysql后netstartmysql服务无法启动1.下载mysql:官网地址:https://dev.mysql.com/downloads/mysql/根据自身系统位数选择对应版本下载,解压后进入bin文件夹,cmd命令下执行mysqld-install (需要配置path的可自行进行搜索)安装成功后再执行netsta......
  • 简介
    简单来说,shell就是一个用户与操作系统之间的一个命令解释器;Shell是一个用C语言编写的程序,是用户使用Linux的桥梁,既是一种命令语言,又是一种程序设计语言。Shell是Linux系统的用户界面,提供用户与内核的一种交互方式,接收用户输入的命令,并把它送入内核去执行。 1.shell脚......
  • 锚索测力计安装方法和注意事项
    锚索测力计安装方法和注意事项锚索测力计的安装方法根据具体情况和需要而有所不同。以下是常用的几种安装方法: 1.直接固定法:将锚索测力计直接固定在锚索上,然后测力计与数据采集仪器连接,进行测量。2.间接固定法:将测力计与一定长度的小型钢绳或张力杆相连,然后将钢绳或张力杆......
  • ruby安装
     vimDockerfileFROMcentos:systemdADDruby-3.2.2.tar.gz/data/WORKDIR/data/ruby-3.2.2RUNyumupdate-y\&&yuminstall-ygccopenssl-devellibyaml-devellibffi-develreadline-develzlib-develgdbm-develncurses-develmakeRUNyum......
  • windows安装zip和unzip命令
    进下面网页下载GnuWinGnuWindownload|SourceForge.net打开安装GnuWin,安装好在里面勾选这6项,zip和unzip各三个勾好点ApplyChanges安装过程装好会在这个目录里剩下就是配置环境变量,把上面路径加入系统路径“运行”输入“sysdm.cpl”,一键打开系统属性参考:Windows......
  • Linux下载rmp安装包离线安装
    背景:生产环境的Linux为离线状态,不能方便的下载安装包。前置条件:1.两台环境基本相同的Linxu系统,其中一台可以正常访问公网。2.可以将下载好的安装包拷贝至离线环境。yum命令下载rpm包:sudoyum-y--downloadonly--downloaddir=/home/ToolsXXXyum:这是YellowdogUpdater,......
  • redis-cli安装使用
    1.下载源码wgethttp://download.redis.io/redis-stable.tar.gz2.解压tarxvzfredis-stable.tar.gz3.安装cdredis-stablemakeredis-clisudocpsrc/redis-cli/usr/local/bin/4.连接redis-cli-hhost-pport-apassword5.常用命令#https://www.jb51.ne......