libsystemctlm-soc项目分析

2024-06-05 18:04

本文主要是介绍libsystemctlm-soc项目分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

libsystemctlm-soc项目是Xilinx的SystemC库。

环境安装

verilator安装

# Prerequisites:
#sudo apt-get install git help2man perl python3 make autoconf g++ flex bison ccache
#sudo apt-get install libgoogle-perftools-dev numactl perl-doc
#sudo apt-get install libfl2  # Ubuntu only (ignore if gives error)
#sudo apt-get install libfl-dev  # Ubuntu only (ignore if gives error)
#sudo apt-get install zlibc zlib1g zlib1g-dev  # Ubuntu only (ignore if gives error)git clone https://github.com/verilator/verilator   # Only first time# Every time you need to build:
unsetenv VERILATOR_ROOT  # For csh; ignore error if on bash
unset VERILATOR_ROOT  # For bash
cd verilator
git pull         # Make sure git repository is up-to-date
git tag          # See what versions exist
#git checkout master      # Use development branch (e.g. recent bug fixes)
#git checkout stable      # Use most recent stable release
#git checkout v{version}  # Switch to specified release versionautoconf         # Create ./configure script
export VERILATOR_ROOT=`pwd`
./configure  --prefix=<安装路径>    
# Configure and create Makefile,安装路径要和源文件路径不一样,因为源文件中有bin文件夹,安装会重新生成bin文件夹;若路径仍然一样,install时会报冲突
# 设置 CXXFLAGS=-std=c++11 ./configure  --prefix=<安装路径>    
make -j `nproc`  # Build Verilator itself (if error, try just 'make')
make installcp $VERILATOR_ROOT/include <安装路径> -r     // 安装路径中没有include文件夹

环境变量

增加.config.mk文件

添加SYSTEMC变量

verilator版本太旧,不识别-build选项

verilator 4.028不支持-build选项,改换成v5.024
在这里插入图片描述
v5.024仿真报错,推测新版本不稳定,后改用v4.110

在Vmware中qemu嵌套虚拟化的设置

CSDN: vmware中创建qemu的嵌套虚拟化问题

umi编译报错

git仓库不全

在这里插入图片描述

测试用例解析

rtl-bridge/pcie/test_pcie_ep

仿真环境架构

在这里插入图片描述

bridge端口信号

在这里插入图片描述

仿真过程及结果

制作镜像

qemu-img create -f qcow2 hd0.qcow2 2G  

在这里插入图片描述

rtl-bridge/pcie/test-pcie-ep-master-vfio

Failed to open /dev/vfio/0

在这里插入图片描述

rtl-bridge/pcie/refdesign-sim

仿真环境架构

该测试用例需在xilinx/qemu中运行,qemu和refdesign-sim测试用例通过remote-port连接,该组件是一个使用socket和共享内存在二者间输出事务的协议框架。

仿真时,qemu先运行,refdesign-sim后运行,refdesign-sim创建共享文件,qemu通过-machine-path指定路径监听到共享文件后开始运行。该测试目标只是实验qemu和systemc的协同仿真机制,通过hotplug判断设备是否被qemu识别,没有具体业务流。

Xilinx Wiki: QEMU Options and Commands

加了nographic选项

qemu-system-x86_64 -nographic -M q35,accel=kvm,kernel-irqchip=split		\-device intel-iommu,intremap=on,device-iotlb=on			\-cpu host -smp 8 -m 8G						\-netdev user,hostfwd=tcp:127.0.0.1:2225-10.0.2.15:22,id=n0	\-device virtio-net,netdev=n0					\-drive file=hd0.qcow2,format=qcow2				\-machine-path machine-x86/					\-serial mon:stdio 						\-device ioh3420,id=rootport,slot=0				\-device ioh3420,id=rootport1,slot=1

在这里插入图片描述

-drive file=hd0.qcow2,format=qcow2

找不到hd0.qcow2来源,无法完成启动

qemu的进入monitor窗口ctrl+a c,按c的时候不用按ctrl

(忍不住口吐芬芳,坑爹。。。)

仿真过程及结果

在这里插入图片描述在这里插入图片描述

这篇关于libsystemctlm-soc项目分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1033775

相关文章

PC/MCU/SoC使用的计算机架构(Architecture)

1. 冯·诺依曼结构 冯·诺依曼结构(Von Neumann Architecture)是计算机系统的经典架构,由数学家约翰·冯·诺依曼在1945年提出。它的核心思想是程序存储器和数据存储器共享同一存储设备,程序和数据以相同的方式存储和访问。冯·诺依曼架构的主要特点包括: 单一存储器:存储程序指令和数据在同一个存储器中。控制单元:通过程序计数器顺序执行指令。数据路径:通过一个共享的总线,将数据

浅谈SOC片上系统LoRa-STM32WLE5数据安全防御机制

随着物联网设备的普及,数以亿计的设备正在通过无线网络进行通信,传输大量的敏感数据。这种大规模的设备联网带来了便捷性,但也伴随着巨大的安全风险。SoC片上系统通过将无线通信、处理器、存储和安全机制集成在同一个芯片中,为物联网应用提供了高度集成的解决方案。这种设计大大简化了硬件开发流程,同时提高了设备的整体性能和安全性。SoC不仅能够满足长距离、低功耗的无线通信需求,还能通过先进的加密技术,确保数据在

SOC 阵列:创新算力的未来之路

一、SOC阵列的概念与发展历程 SOC 阵列是由多个特定功能集成电路组合在一个芯片上的系统或产品,包含硬件系统及嵌入式软件。从传统集成电路到 SOC 经历多个阶段,初期电路由分立元件组成,后集成到单芯片集成电路中,其发展遵循摩尔定律,从 SSI 到 MSI、LSI 再到代表 VLSI 的 SOC 阵列。SOC 阵列在电子系统中地位凸显,实现小型化、提高效率、降低功耗和整体性能,如在便携设备中使设

联咏NT98567高度集成边缘IPC应用SoC规格特性

联咏 NT98567MQG是一款高度集成的SoC,具有高图像质量、低比特率和低功耗的特点,适用于电池应用,目标是2Mp至5Mp/8Mp边缘IP摄像头应用。该SoC集成了双核ARM Cortex A7 CPU、新一代ISP、H.265/H.264视频压缩编解码器、视频处理引擎(VPE)用于双传感器拼接和鱼眼去畸变、高性能硬件DLA模块、图形引擎、显示控制器、以太网PHY、USB 2.0主机/

关闭qcom soc系列手机的ramdump mode

在 kernel/msm-3.10 / arch/arm64/configs/ze550kl_user_defconfig中 将CONFIG_MSM_DLOAD_MODE=y改成 #CONFIG_MSM_DLOAD_MODE is not set 然后在/ drivers/power/reset/msm-poweroff.c中将 if (!in_panic) { // Normal re

(gaffe23/linux-inject) Github项目分析-linux之SO注入

原始链接 (gaffe23/linux-inject)项目分析-linux之SO注入 序言 原始项目: https://github.com/gaffe23/linux-inject 自己修改过的项目: https://github.com/redqx/linux-inject2 一个9年前(base 2024)的项目, 没怎么更新过,但项目在9年前来说也是写得非常棒的一个项目, 放到

摄像头的ISP和SOC的GPU有区别吗?

摄像头的主芯片必须包含ISP,也就是图像处理器核心。而SOC的GPU或者说显卡也包含图像处理器也就是GPU。两者并无本质区别,都是实现数字图像处理算法。同样的用FPGA做内窥镜图像处理和用FPGA做显示图像处理器本质上也是一样的。 当然两者存在一些细微差别。其一是接口存在区别,ISP需要连接sensor的接口包括dvp、mipi、lvds、spi等,GPU需要与HDMI、RGB、MIPI等显示接

BMS中SOC的计算方法

在电池管理系统(BMS)中,状态的充电(SOC,State of Charge)的计算方法主要有以下几种: 1. 库仑计数法(Coulomb Counting) 原理:通过测量电流并积分来计算SOC。公式: \text{SOC} = \text{SOC}_0 + \frac{1}{C} \int I(t) dtSOC=SOC0​+C1​∫I(t)dt 其中,CC是电池的额定容量,I(t)I(t

景芯SoC A72实战反馈

先说结论: 内容非常全面,讲解到位,会有专门的工程师一对一答疑,整个项目跑下来提升非常大,绝对物超所值! 一些细节: 本人微电子专业研一在读,有过两次简单的数字芯片流片经历,出于学习和科研需要,报了景芯的12nm A72 UPF DVFS后端实战。 整个项目基于innovus实现,主要包括芯片partition、maia_cpu的PR和MAIA顶层的PR三个阶段。在每个阶段PR结束之后,对

CPU、MPU、MCU、SOC分别是什么?

CPU、MPU、MCU和SoC都是与微电子和计算机科学相关的术语,它们在功能定位、应用场景以及处理能力等方面有所区别。具体如下: CPU:CPU是中央处理单元的缩写,它通常指计算机内部负责执行程序指令的芯片。CPU是所有类型计算机(如个人电脑、手机、平板电脑等)的核心组件,负责解释和执行大部分计算指令。MPU:MPU是微处理器的缩写,它是一种高性能的CPU,通常用于个人计算机、服务器和工作站等设