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.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

测试用例解析

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

在这里插入图片描述

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

相关推荐

  1. K3cloud-计算成本分析DEmo

    2024-06-05 22:28:01       23 阅读
  2. CSS3DObject 分子公式demo 实现

    2024-06-05 22:28:01       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-05 22:28:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-05 22:28:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-05 22:28:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-05 22:28:01       20 阅读

热门阅读

  1. Python|OpenCV-自动检测并识别车牌号(16)

    2024-06-05 22:28:01       12 阅读
  2. 【sklearn | 5】:集成学习与模型解释

    2024-06-05 22:28:01       10 阅读
  3. CSA 实现安全应用容器架构的最佳实践 课堂随笔

    2024-06-05 22:28:01       10 阅读
  4. MongoDB学习笔记

    2024-06-05 22:28:01       8 阅读
  5. Python利用列表、字典和zip函数处理数据

    2024-06-05 22:28:01       10 阅读
  6. 设计模式之装饰器模式

    2024-06-05 22:28:01       11 阅读
  7. python 第四章 函数 (pycharm) (2)

    2024-06-05 22:28:01       8 阅读
  8. 如何区分前端BUG和后端BUG

    2024-06-05 22:28:01       10 阅读
  9. 如何让centOS开机后自动执行某些命令

    2024-06-05 22:28:01       10 阅读
  10. 1120大整数加法

    2024-06-05 22:28:01       8 阅读