本文作者:赛灵思工程师 iris yang
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。
可以复制以上代码 修改地址数据和byte enable 来实现对不同寄存器的操作。
如果需要修改对于ep侧 配置寄存器的直接控制,可以修改下面的代码,填入不同的地址实现不同寄存器的读写。
如果使用其他的分支,修改的方式类似。
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)
其他的修改也是类似。
原文标题:开发者分享|versal pcie example design 仿真技巧 1
文章出处:【微信公众号:xilinx开发者社区】欢迎添加关注!文章转载请注明出处。
程序员的职业生命到底有多长 核心竞争力是什么
交换机采用155Mbit/s中继对通信网络带来的影响
中宇豪公司成功完成欧盟CE认证的更新
视频监控系统已向智能化方向发展
应用材料公司AIx平台依托大数据和人工智能的力量,加速半导体技术从实验室到晶圆厂的突破
Versal PCIe仿真例子工程介绍
浅谈集成电路封装的重要性
dfrobotRGB LED模块 5050简介
三相感应电动机的启动与调速
Intel:32nm六核心Xeon已出货10万
VOC和PM2.5传感器对睡眠的帮助
2018亚太区块链峰会(夏季场)东京热辣来袭!
特斯拉:好的作品是看得见的
从华为海思麒麟看中国半导体崛起之路
动态函数接口的调用原理
英特尔对眼神追踪技术公司Tobii投资2100万美元
2020Medtec中国展如期举行 近50+知名企业已组团报名现场参观
“2020中国新材料资本技术大会”回顾
慕容话币|新手如何进入区块链行业?
AR教育未来的发展方向