systemctlm-cosim-demo项目分析

概述

systemctlm-cosim-demo项目是Xilinx的systemc库的demo工程。

环境安装

qemu安装

cd xilinx_proj/Downloads
git clone https://github.com/Xilinx/qemu.git
cd qemu
git checkout 74d70f8008# Configure and build
# zynq7000
# ./configure --target-list="arm-softmmu,aarch64-softmmu,microblazeel-softmmu,riscv32-softmmu,riscv64-softmmu,x86_64-softmmu" --enable-fdt --disable-kvm --disable-xen
# 跑versal一定要enable kvm
./configure --target-list="x86_64-softmmu" --enable-kvm 
make -j8
make install DESTDIR=xilinx_proj/qemu_bin

ninja和meson版本不匹配

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

使用pip3直接升级meson到某个版本

pip3 install meson==0.63

qemu-system-x86_64: invalid accelerator kvm

原因一:wsl2-linux默认不支持kvm,需要升级wsl2-linux

升级时编译wsl2-linux遇到问题,转而使用vmware虚拟机ubuntu。

WSL2 QEMU-KVM 环境搭建

linux和windows大小写区分不同,需要修改文件名

mv ./net/netfilter/xt_hl.c  ./net/netfilter/xt_HL.c.bak
mv ./net/netfilter/xt_HL.c.bak  ./net/netfilter/xt_HL.cmv net/netfilter/xt_TCPMSS.c net/netfilter/xt_TCPMSS.c.bak
mv net/netfilter/xt_TCPMSS.c.bak net/netfilter/xt_tcpmss.cmv include/uapi/linux/netfilter_ipv4/ipt_ecn.h include/uapi/linux/netfilter_ipv4/ipt_ecn.h.bak
mv include/uapi/linux/netfilter_ipv4/ipt_ecn.h.bak include/uapi/linux/netfilter_ipv4/ipt_ECN.h

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

原因二:qemu编译时configure应要–enable-kvm

测试用例解析

pcie/versal/cpm-qdma-demo

Versal是AMD推出的自适应 SoC,融合了可编程逻辑、处理系统以及 AI 和 DSP 引擎的软件可编程异构计算平台,适用于数据中心、有线网络、5G 无线和汽车驾驶辅助等应用。

仿真环境架构

QEMU接口模仿RC,PCIeController模仿ep的性能,用户逻辑接versal的QDMA仿真模型。

在这里插入图片描述

qdma_cpm4支持PCIe 4.0协议,qdma_cpm5能够支持更高速率的PCIe 5.0协议。

仿真过程及结果

主机终端:

// Terminal 1
cd ~/data/projects/systemc_proj/xilinx_proj/systemctlm-cosim-demo
source ../env2.sh   // qemu exe env
make qemu_run    // Terminal 2
export LD_LIBRARY_PATH=/home/kevin/data/software/systemc/systemc_2.3.3/lib-linux64/
make cpm5_run
make cpm4_run

qemu:

$ cd ~/Downloads/dma_ip_drivers/QDMA/linux-kernel
$ sudo su
$ insmod bin/qdma-pf.ko
$ echo 1 > /sys/bus/pci/devices/0000:02:00.0/qdma/qmax
$ ./bin/dma-ctl qdma02000 q add idx 0 mode mm dir h2c
$ ./bin/dma-ctl qdma02000 q start idx 0 dir h2c aperture_sz 4096
$ dd if=/dev/zero of=/home/ubuntu/test.pdi count=1 bs=1024
$ ./bin/dma-to-device -d /dev/qdma02000-MM-0 -f /home/ubuntu/test.pdi -s 1024 -a 0x102100000
cpm4

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

cpm5

在这里插入图片描述

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

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

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

相关文章

【乐吾乐3D可视化组态编辑器】用开关控制巡检车和路灯

一、运动设备开关控制 3D组态编辑器地址:3D可视化组态 - 乐吾乐Le5le 1.在场景中新建模拟运动设备及控制面板:启动/停止 2.单击巡检车设备新建模拟动画 3.设置模拟动画属性 4.单击启动面板,新建交互事件 5.设置交互触发类型,新建…

JavaSE——【逻辑控制】(习题)

一、分支结构 2.1 if 语句 【练习】2.1.1 小明,如果这次考到90分以上,给你奖励一个大鸡腿,否则奖你一个大嘴巴子 int score 92;if(score > 90){System.out.println("吃个大鸡腿!!!");}else{System.out.println("挨大嘴…

PS系统教程11

HUD拾色器 作用:它可以帮助使用者更加高效地选择和使用颜色,从而提高工作效率和设计质量。 先确定色相值改变饱和度改变亮度使用HUD拾色器选中画笔工具画笔模式-正常shiftAlt右键 色相轮 上下移动从黑到白亮度变化左右移动从浅到深饱和度的变化选中颜…

【小海实习日记】PHP安装

## PHP环境搭建(Mac) ### php安装 使用brew需要安装homebrew >brew tap shivammathur/php >brew install shivammathur/php/php7.3 >brew link php7.3 这里可以需要homebrew使用代理进行下载,如果代理下载速度还是太慢,建议直接更该国内镜像…

数据分析必备:一步步教你如何用Pandas做数据分析(17)

1、Pandas 连接 Pandas 连接的操作实例 Pandas具有与SQL等关系数据库非常相似的功能齐全的高性能内存中连接操作。 Pandas提供单个功能merge作为DataFrame对象之间所有标准数据库联接操作的入口点 pd.merge(left, right, howinner, onNone, left_onNone, right_onNone,left_i…

新手必看!现货伦敦金新手容易犯的两个错

对很多刚进入现货伦敦金市场的朋友来说,炒伦敦金是十分令人兴奋的,但兴奋归兴奋,我们还是要注意,由于现货伦敦金投资者过分的热情,很容易让自己跌入一些陷阱,犯下一些错误,下面我们就来介绍两个…

Linux 命令 FIO:深入理解磁盘性能测试工具

Linux 命令 FIO:深入理解磁盘性能测试工具 在 Linux 系统中,磁盘 I/O 性能对于系统的整体性能至关重要。为了准确、快速地评估磁盘性能,我们需要一个强大的工具来模拟各种磁盘读写场景。FIO(Flexible I/O Tester)就是…

C++关于拷贝构造函数的一些理解

定义: 拷贝构造函数是C中的一种特殊的构造函数,用于创建一个对象的副本。它的作用是在对象之间进行拷贝初始化。拷贝构造函数通常以引用的方式接受同类型的对象作为参数,以完成对象的拷贝。程序中如果没有定义拷贝构造函数系统会生成一个默认…

echarts 数据重新加载,原数据依然存在图表上

watch: {data: {deep: true,handler(val) {this.resizeHandler();this.initChart(); 主要是这步this.render(val);}}},监听数据是否真正变化了 在数据变化的时候在重新初始化图表实例对象。 // 初始化渲染initChart() {chart this.$echarts.init(this.$refs.myChart);this.r…

智能楼宇安防3D数据可视化平台满足日益增长的安防需求

在当今社会,安全是每个人和企业最为关心的问题。为满足日益增长的安防需求,3D可视化公司深圳华锐视点隆重推出安防平台3D可视化管理系统,以先进的三维技术为您的安全保驾护航。 安防平台3D可视化管理系统通过创新的三维可视化技术&#xff0c…

纷享销客BI智能分析平台技术架构介绍

纷享销客BI智能分析平台致力于降低用户上手门槛,无缝继承纷享销客PaaS平台的对象关系模型和权限体系,让使用纷享CRM的营销人员、销售人员、服务人员等各类角色人员都能够将分析场景与业务场景相融合,将数据思维融合到自己的日常工作、团队工作…

SpringCloud-面试篇(二十三)

(1)SpringCloud常见组件有那些 有无数微服务需要相互调用:可以用远程调用组件OpenFeign组件,也可以用Dobble 这么多微服务相互调用怎么管理:就用到注册中心组件Nacos,Eureka 所有的服务去找注册中心做注…

TCP协议与UDP协议区别

举个列子: 三次握手:为了解决网络信道不可靠的问题;防止客户端向服务端发送两次数据,客户端一直处于接收的状态。 四次挥手是一样的。当客户端提出关闭请求,服务端处于关闭等待状态,此时客户端可以发送数据…

PMP考试难吗?考试通过率有多少?

我们通常以考试的通过率来评判一个考试的难易程度。通常通过率达到60%以上,这个考试就不太难;达到80% ,这个考试就是不难的。 PMP考试难吗? 不少想要考PMP的小伙伴都会有这样的疑惑,首先以PMP的含金量来说&#xff0…

矩阵相乘torch.einsum()

einsum 是 Einstein summation 的缩写,来源于爱因斯坦求和约定(Einstein summation convention)。这是物理学家阿尔伯特爱因斯坦引入的一种简便记号,用于描述张量运算,特别是涉及多维数组的运算。 示例1:矩…

深入理解Python中的*args和**kwargs参数

在Python世界里,*args和**kwargs是两个经常遭到新手困惑但又极富魅力的概念。今天,我们将一起探索它们的神秘面纱,了解如何在日常开发中利用这两个强大的工具来编写更加灵活和强大的代码。 *args:处理不定数量的位置参数 在Pyth…

产品推荐 | 基于Lattice USB3-GbE VIP IO技术赋能视频接口开发板

1、产品概述 支持视频接口平台 (VIP) – 为莱迪思VIP提供USB 3.0 和千兆以太网网络互连 灵活的快速原型设计和开发– 两个标准的高速连接器实现嵌入式视觉原型系统的简便快速硬件配置 可靠、经验证的即时使用设计– 莱迪思演示设计通过USB 3.0和工业千兆以太网接口实现快速视…

Linux C语言: 数据类型

一、 为什么要引入数据类型 • 计算机中每个字节都有一个地址(类似门牌号) • CPU通过 地址 来访问这个字节的空间 0x20001103 1 0 0 1 0 0 1 1 0x20001102 1 1 1 0 1 1 1 0 0x20001101 1 1 1 1 0 1 0 1 0x20001100 0 …

accelerate 笔记:梯度同步的时间效率

1 介绍 PyTorch 的分布式模块通过在系统中所有GPU之间进行来回通信来操作。 这种通信需要时间,并且确保所有进程了解彼此的状态在使用ddp模块时会在特定的触发点发生 这些触发点被添加到PyTorch模型中,特别是它们的 forward() 和 backward() 方法中当通…

2024-06-05 Android app jni里面c语言函数申请的局部变量数组过大会导致程序崩溃的问题分析

一、下面是一个app jni里面一个函数,函数里面定义一个数组,实际运行的时候发现数组过大的时候会导致app崩溃。 JNIEXPORT jint JNICALL JNI_FUNCTION(native_1getcapture_1data)(JNIEnv *env, jobject obj,jbyteArray des_data,jbyteArray src_data,jin…