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

qemu安装时ninja和meson版本不匹配

ninja和meson版本太旧,通过pip3 install安装
在这里插入图片描述

在这里插入图片描述

使用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.c

mv net/netfilter/xt_TCPMSS.c net/netfilter/xt_TCPMSS.c.bak
mv net/netfilter/xt_TCPMSS.c.bak net/netfilter/xt_tcpmss.c

mv 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

启动虚拟机之后仍报错,后来想到qemu自身也可能存在支持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

在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KGback

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值