libsystemctlm-soc项目分析

news2025/1/19 8:02:17

概述

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 version

autoconf         # 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 install

cp $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

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

仿真过程及结果

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1790351.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vulhub中PHP利用GNU C Iconv将文件读取变成RCE(CVE-2024-2961)

GNU C 是一个标准的ISO C依赖库。在GNU C中&#xff0c;iconv()函数2.39及以前存在一处缓冲区溢出漏洞&#xff0c;这可能会导致应用程序崩溃或覆盖相邻变量。 如果一个PHP应用中存在任意文件读取漏洞&#xff0c;攻击者可以利用iconv()的这个CVE-2024-2961漏洞&#xff0c;将…

Ubuntu20.04 Mysql基本操作知识

#Mysql基本知识 运行环境Ubuntu20.04 1.开启mysql服务 sytemctl start mysql不然&#xff0c;命令行进入myql交互行提交命令后&#xff0c;就会出现4200错误。 2.显示所有数据库 SHOW DATABASES;注意复数s&#xff0c;毕竟很多数据库 3.新建数据库test CREATE DATABASE …

算法训练营第四十六天 | 卡码网52 携带研究材料、LeetCode 518 零钱兑换II、LeetCode 377 组合总和IV

写在前面 这次算法训练营题目&#xff0c;其实完全是按照代码随想录一路跟着来的&#xff0c;上面也有更好的、讲得更清楚的题解&#xff0c;有需要的小伙伴可以去那里看。 我这里是之前已经大体刷过一遍&#xff0c;为了应对有可能会考到的面试题&#xff0c;现在在跟着一个专…

WordPress电脑版+手机版自动识别切换主题插件优化版

下载地址&#xff1a;WordPress电脑版手机版自动识别切换主题插件优化版 插件介绍&#xff1a; 电脑访问自动显示电脑版 手机访问自动显示手机版

Python编程学习第一篇——制作一个小游戏休闲一下

到上期结束,我们已经学习了Python语言的基本数据结构,除了数值型没有介绍,数值型用的非常广,但也是最容易理解的,将在未来的学习中带大家直接接触和学习掌握。后续我们会开始学习这门语言的一些基础语法和编程技巧,在这之前我们休闲一下,写一个小游戏娱乐一下。 小戏用…

深入理解可燃气体报警器检验标准:守护工业安全新举措

在工业生产领域&#xff0c;可燃气体报警器扮演着至关重要的角色。它能在气体浓度达到危险水平之前发出警报&#xff0c;为工作人员争取宝贵的逃生时间。 为了确保可燃气体报警器的准确性和可靠性&#xff0c;我们需要遵循一系列严格的检验标准。 在这篇文章中&#xff0c;佰…

TCP协议的核心机制

TCP协议的核心机制 一:确认应答机制1.2:超时重传接收缓冲区 超时重传时间重置连接 一:确认应答机制 对于TCP协议来说,要解决的一个很重要的问题,就是可靠传输 可靠传输,不是指发送方能够100%的把数据发送给接收方,而是尽可能. 尤其是让发送方知道,接收方是否收到. 举个例子: …

AI菜鸟向前飞 — LangChain系列之十六 - Agent系列:从现象看机制(下篇)一款“无需传递中间步骤“的Agent

前言 AI菜鸟向前飞 — LangChain系列之十四 - Agent系列&#xff1a;从现象看机制&#xff08;上篇&#xff09; AI菜鸟向前飞 — LangChain系列之十五 - Agent系列&#xff1a;从现象看机制&#xff08;中篇&#xff09;一个Agent的“旅行” 回顾前两篇文章&#xff0c;大家会…

QT 信号和槽教程,窗体和控件对象之间的沟通一般都使用信号和槽

Qt的信号和槽&#xff08;Signals and Slots&#xff09;机制是一种强大的对象间通信方式&#xff0c;它允许对象在完全解耦的情况下相互通信。以下是关于Qt信号和槽的简明教程&#xff1a; 基本概念 信号&#xff08;Signal&#xff09;&#xff1a;信号是由Qt对象发出的通知…

Python leetcode239滑动窗口最大值,单调队列解题思路,单调栈的代码模板,单调队列代码实战

1 题目 239. 滑动窗口最大值 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1&#xff1a; 输入&#xff1a;nums [1…

硕士课程可穿戴作业归档之三

代码运行 挑战赛要求 根据比赛要求&#xff0c; As in recent challenges, the data have been divided into three sets:- **Learning (training) set A**: includes noninvasive fetal ECG signals, as well as the reference annotations for them (for participants use…

2022.9.26DAY678

课程学习&#xff1a;《数据处理技术》讲了“数据查询”的语法格式&#xff0c;语法格式也算是简单&#xff0c;就是没能跟之前的内容联系起来&#xff0c;之前的内容没有及时回顾。 高等数学&#xff1a;“ 函数的概念”&#xff0c;讲了函数的概念&#xff0c;反函数&#…

C语言中 printf函数格式化输出

一. 简介 本文来简单学习一下&#xff0c;C语言中printf函数格式化输出时&#xff0c;因为我们的粗心没有 将数据类型与格式化参数对应&#xff0c;而导致的一些问题。 二. C语言中printf函数的格式化输出 在C语言中&#xff0c;printf函数是用于格式化输出的函数&#xff0…

Idea 的选择文件后定位瞄准器 “Select Opened File“ 的功能不见了

一、问题描述 使用Idea 时 “Select Opened File” 的功能不见了&#xff0c;一般是可以通过点击这个瞄准按钮&#xff0c;定位到文件的位置。 这个非常坑爹。 之前应该是有这个瞄准镜的。 二、解决方法 右键标题框&#xff0c;选择后点击Always Opened File&#xff0c;即…

[C][栈帧]详细讲解

目录 1.栈帧1.进程地址空间2.栈帧说明 2.认识相关寄存器3.认识相关汇编命令4.过程理解5.栈帧总结6.补充 1.栈帧 1.进程地址空间 .进程地址空间 2.栈帧说明 调用函数&#xff0c;形成栈帧函数返回&#xff0c;释放栈帧局部变量是存放在栈区上的栈区内存的使用习惯是&#xff…

阿里云语音合成TTS直播助手软件开发

阿里云的TTS比较便宜&#xff0c;效果比不了开源克隆的那种&#xff0c;比纯机器人效果好一点点 阿里云sambert https://help.aliyun.com/zh/dashscope/developer-reference/quick-start-13 Sambert系列模型 1万字1元 &#xff0c;每主账号每模型每月3万字免费 创建API-KEY htt…

国产操作系统上Vim的详解03--使用Vundle插件管理器来安装和使用插件 _ 统信 _ 麒麟 _ 中科方德

原文链接&#xff1a;国产操作系统上Vim的详解03–使用Vundle插件管理器来安装和使用插件 | 统信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在国产操作系统上使用Vundle插件管理器来安装和使用Vim插件的详解文章。Vundle是Vim的一款强大的插…

工业通讯现场中关于EtherCAT转TCPIP网关的现场应用

在当今工业自动化的浪潮中&#xff0c;EtherCAT技术以其高效、实时的特性成为了众多制造业的首选。然而&#xff0c;随着工业互联网的发展&#xff0c;对于数据的远程访问和云平台集成的需求日益增长&#xff0c;这就需要将EtherCAT协议转化为更为通用的TCP/IP协议。于是开疆智…

Day43 代码随想录打卡|二叉树篇---左叶子之和

题目&#xff08;leecode T404&#xff09;&#xff1a; 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 方法&#xff1a; 迭代法&#xff1a;计算所有的左叶子节点&#xff0c;那我们就必然要找到所有的左叶子节点。那么怎么找呢&#xff1f;如何针对cur->l…

Java实现俄罗斯方块游戏源代码(启动即可玩)

这是一个用Java Swing实现的俄罗斯方块游戏&#xff0c;具有经典的游戏机制和图形界面。游戏中&#xff0c;玩家需要旋转和移动不断下落的方块&#xff0c;使其填满一行来消除该行并得分。 该项目适合学习Java GUI编程、游戏开发基础以及面向对象编程&#xff08;OOP&#xff0…