0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

仿真例子工程介绍

FPGA技术江湖 来源:FPGA技术江湖 作者:赛灵思工程师 Ir 2022-06-14 11:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

PCIe 仿真需要Endpoint 模型和Root Port 模型协同工作。用户一般可以采用购买BFM/VIP 来模拟对端模型也可以自己设计对端模型,更简便的方法则是使用Xilinx 提供的模型 (Xilinx Root Port model) 。

仿真例子工程介绍

Versal 的PCIe 仿真和VU/VU+ 系列有些不一样,在endpoint 模式下,会有两种类型的example design, 默认的例子 是BMD 模式,(以前的器件默认的模式是PIO 模式 )在生成IP 后, 可以通过设置下面参数来切换产生的例子工程。

CONFIG.bmd_pio_mode {false}

用户仿真的例子一般有两个部分:

1. Root Port 模型,这个是模拟了RP 的产生config 读写,读写memory 空间并负责对收回来的数据进行检查。

2. Endpoint 用户代码部分,负责对收到的请求进行回复并且发起读写,中断请求。

在不同的测试间切换:

sample_tests.vh 定义了不同的测试名字,

sample_smoke_test0:

确认device/vender ID,运行BMD test (如果是BMD mode)

sample_smoke_test1:

确认device/vender ID,确认比较completion 数据。

pio_writeReadBack_test0 :

RP 模型会对每一个BAR发起一次写操作,再发起一次读操作,EP 收到后会发出CPLD。PR模型会对收到的CPLD 进行检查。RP 模型可以往EP 的特定位置写特定的值使得EP发起读写或者中断。

如果要在不同的测试间切换, 可以 TESTNAME 参数,比如:

demo_tb.exe-gui -view wave.wcfg -wdb wave_isim -tclbatch isim_cmd.tcl -testplusarg TESTNAME=sample_smoke_test0

修改仿真例子:

修改提供的 example 代码可以得到自己想要的测试。

如果需要修改 Sample_smoke_test0/1 中 ROOT PORT 对自己的设置, 可以直接修改 Sample_tests.vh 下面的代码,比如下面的代码实现的是读取地址1 往地址1里面写7 再读出来的过程,实现的是bus master /memory /IO 的使能。请注意这里的地址是DW Address , 也就是这个地址1 实际上是地址4 (byte address) 也就是协议固定的command register。

e4bee6b2-eb6b-11ec-ba43-dac502259ad0.jpg

可以复制以上代码 修改地址数据和byte enable 来实现对不同寄存器的操作。

如果需要修改对于EP侧 配置寄存器的直接控制,可以修改下面的代码,填入不同的地址实现不同寄存器的读写。

e4d4f736-eb6b-11ec-ba43-dac502259ad0.jpg

如果使用其他的分支,修改的方式类似。

RP 模型还提供了丰富的功能来实现对PCIe EP 配置空间的操作和memory 的读写操作。这些操作大部分都用通过一些task 在pci_exp_usrapp_tx / pci_exp_usrapp_rx 中实现。比如下面的 BAR_PROGRAM 任务 就是把对BAR 的读写以及控制的过程实现了一遍。

由于BAR 读写是所有memory 请求的基础,大部分的测试都会用到,所以一般就可以直接修改这个task 来丰富测试的内容。比如可以直接在这个 task 内部 ,复制下面的语句, 把地址修改为自己需要的配置地址来实现对其他配置寄存器的操作。最常见的修改就是修改下面的语句把 32‘h00000003 修改为32‘h00000007 使得 bus master 被打开。这样 EP 就具备了发起读写操作的能力。需要修改其他寄存器也是一样的道理, 请注意这里的地址区别与上面的DW address 而是byte address。(04 表示command register)

e4fe093c-eb6b-11ec-ba43-dac502259ad0.jpg

其他的修改也是类似。

审核编辑 :李倩
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真
    +关注

    关注

    55

    文章

    4532

    浏览量

    138652
  • PCIe
    +关注

    关注

    16

    文章

    1474

    浏览量

    88898

原文标题:开发者分享|Versal PCIe Example Design 仿真技巧 1

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    智造引擎,仿真之巅:Altair HyperWorks 重塑工程研发新格局?

    求解器,真正做到 “一次建模、多场景分析”,为工程师搭建高效、灵活的数字化研发桥梁。二、核心功能:覆盖全场景,解锁工程仿真无限可能1. 标杆前处理:高效建模,质量与速度双绝依托 HyperMesh
    发表于 04-03 14:45

    【产品介绍】Modelsim:HDL语言仿真软件

    概述ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真仿真器。它采用直接优化的编译技术、Tcl/Tk技术
    的头像 发表于 11-13 11:41 667次阅读
    【产品<b class='flag-5'>介绍</b>】Modelsim:HDL语言<b class='flag-5'>仿真</b>软件

    Vivado仿真之后没有出现仿真结果的解决方法

    一般,在添加好工程所需要的design sources和simulation sources之后,会进行仿真来验证工程是否有达到预期的效果,但是在Run Simulation-&gt
    发表于 10-31 06:24

    创建一个Library工程

    中修改相关配置 编译工程,就可以得到编译文件。 本文中测试的例子下载地址: https://codeload.github.com/lmshao/AES/zip/refs/heads/master
    发表于 10-20 09:30

    【产品介绍】Altair MotionSolve多体系统仿真软件

    AltairMotionSolve多体系统仿真MotionSolve是一款全面的多体仿真软件,可帮助您轻松构建和执行复杂的系统模型,以评估产品的动态响应并优化其性能。使用MotionSolve
    的头像 发表于 09-19 17:03 742次阅读
    【产品<b class='flag-5'>介绍</b>】Altair MotionSolve多体系统<b class='flag-5'>仿真</b>软件

    【产品介绍】Altair HyperView用于仿真和CAE分析的后处理和数据可视化

    AltairHyperView通过用于仿真和CAE分析的高级后处理和数据可视化解锁工程洞察力AltairHyperView是用于高保真后处理的CAE分析软件。HyperView专为工程师打造,可促进
    的头像 发表于 09-19 17:02 1028次阅读
    【产品<b class='flag-5'>介绍</b>】Altair HyperView用于<b class='flag-5'>仿真</b>和CAE分析的后处理和数据可视化

    【产品介绍】Altair MotionView支持多体仿真与优化软件

    AltairMotionView支持多体仿真与优化AltairMotionView革新了多体仿真、可视化和优化。与AltairMotionSolve相结合,可提高工程生产力并加速设计迭代。凭借
    的头像 发表于 09-19 17:02 982次阅读
    【产品<b class='flag-5'>介绍</b>】Altair MotionView支持多体<b class='flag-5'>仿真</b>与优化软件

    【产品介绍】Altair HyperWorks多物理场仿真软件

    AltairHyperWorks设计和仿真平台Altair设计和仿真平台涵盖众多学科,可以仿真结构、运动、流体、热学、电磁学、电子学、控制和嵌入式系统。解决方案还提供人工智能解决方案和高保真
    的头像 发表于 09-18 17:56 1094次阅读
    【产品<b class='flag-5'>介绍</b>】Altair HyperWorks多物理场<b class='flag-5'>仿真</b>软件

    KiCad电路仿真简易教程

    “  KiCad作为一款功能强大的开源EDA软件,不仅能进行原理图设计和PCB布局,还集成了强大的电路仿真功能。通过其内置的  ngspice  仿真引擎,工程师可以在设计早期验证电路的功能和性能
    的头像 发表于 09-09 11:19 1.3w次阅读
    KiCad电路<b class='flag-5'>仿真</b>简易教程

    SYSWELD焊接装配仿真流程介绍

    变形趋势。随着汽车行业走向数字化转型,基于有限元仿真技术在设计和工程阶段预测焊接变形与装配偏差,已成为提升尺寸精度与工艺效率的核心手段。
    的头像 发表于 08-06 15:37 1104次阅读
    SYSWELD焊接装配<b class='flag-5'>仿真</b>流程<b class='flag-5'>介绍</b>

    电磁遇上热与应力-CST多物理场仿真解决复杂工程挑战

    当电磁遇上热与应力,CST MPhysics Studio提供真正的全耦合多物理场仿真能力。电磁-热耦合、热失谐分析、热-机械耦合、电磁-机械耦合,解决复杂工程挑战。
    的头像 发表于 07-29 16:21 1088次阅读
    电磁遇上热与应力-CST多物理场<b class='flag-5'>仿真</b>解决复杂<b class='flag-5'>工程</b>挑战

    超声波倒车雷达工程仿真资料

    超声波倒车雷达工程仿真
    发表于 06-08 10:03 6次下载

    详解ADC电路的静态仿真和动态仿真

    ADC电路主要存在静态仿真和动态仿真两类仿真,针对两种不同的仿真,我们存在不同的输入信号和不同的数据采样,因此静态仿真和动态
    的头像 发表于 06-05 10:19 2279次阅读
    详解ADC电路的静态<b class='flag-5'>仿真</b>和动态<b class='flag-5'>仿真</b>

    第三章 仿真介绍

    本篇文章我们介绍了W55MH32板载的WIZ-Link仿真器的使用方法,让我们一起插上USB线开始下载、调试程序吧!
    的头像 发表于 05-21 11:54 1057次阅读
    第三章 <b class='flag-5'>仿真</b>器<b class='flag-5'>介绍</b>

    概伦电子千兆级高精度电路仿真器NanoSpice Giga介绍

    NanoSpiceGiga是概伦电子自主研发的千兆级晶体管级SPICE电路仿真器,通过基于大数据的并行仿真引擎处理十亿以上单元的电路仿真,可以用于各类存储器电路、定制数字电路和全芯片的仿真
    的头像 发表于 04-23 15:21 1380次阅读
    概伦电子千兆级高精度电路<b class='flag-5'>仿真</b>器NanoSpice Giga<b class='flag-5'>介绍</b>