硬件通过pcie总线,访存本机的内存,并进行修改,可以进行很多操作。
学习视频:乱讲DMA及TLP 1-pcileech项目简介和自定义模块介绍_哔哩哔哩_bilibili
vivado2024.1的下载文章链接和地址:AMD-Xilinx Vivado™ 2024.1 现已推出,可供下载-CSDN博客
百度网盘 请输入提取码
相关项目
pcileech-wifi:
GitHub - ekknod/pcileech-wifi: pcileech-fpga with wireless card emulation
可以让设备伪装成电脑上面的声卡网卡等pci设备
pcileech-wifi项目操作流程
进入目录
cd G:/FPGA_Learning/DMA_learning/dma_wifi/pcileech-wifi-main
source tcl
source vivado_generate_project_captain_75T.tcl
tcl是一个脚本文件。通过 source tcl,用户可以自动完成复杂且重复的流程,例如: 创建工程 添加源文件 配置约束 执行综合、实现和生成比特流。
项目中source 75tFPGA的TCL脚本。
source了之后,发现工程不完整,出了问题,所以需要下载一个新的vivado2024.1,用来执行项目。
创建并进入工程如图
代码整体逻辑解析
top解析
顶层下面包含3个子模块。
其中第一个子模块 pcileech_com 主要作用是usb数据交互和包缓存
第二子模块pcileech_fifo,解析USB的命令包并发送到不同的处理子模块进行进一步处理
第三个子模块 pcileech_pcie_a7,是pcie的处理模块,包含了pcie的配置逻辑,各种tlp包的处理逻辑以及设备伪造逻辑等等
pcie子模块
pcileech_pcie_cfg_a7模块用来配置pcie的IP核。
pcileech_pcie_tlp_a7模块包含各种tlp包的处理逻辑以及设备伪造,也就是tlp仿真逻辑。