win 10 系统
ISE 10.1
modelsim 10.1a win32
注:xapp859官方文档说明了xapp859的编译环境为ISE10.1版本, 然后modelsim 必须是32位的。
主要参考 xapp859说明文档
数据流向 host -> fpga
DMA读过程 1、驱动程序向操作系统申请一片物理连续的内存; 2、主机向该地址写入数据; 3、主机将这个内存的物理地址告诉FPGA; 4、FPGA向主机发起读TLP请求—连续发出多个读请求; 5、主机向FPGA返回CPLD包—连续返回多个CPLD; 6、FPGA取出CPLD包中的有效数据; 7、FPGA发送完数据后通过中断等形式通知主机DMA完成;
从第3步开始,host与FPGA之间交互如下图所示
数据流向 fpga-> host
DMA写过程 1、驱动程序向操作系统申请一片物理连续的内存; 2、主机将这个内存的物理地址告诉FPGA; 3、FPGA向主机发起写TLP请求,并将数据放入TLP包中—连续发出多个写请求; 4、FPGA发送完数据后通过中断等形式通知主机DMA完成; 5、主机从内存中获取数据;
从第2步开始,host与FPGA之间交互如下图所示
参考xapp859说明文档,仿真需要UNISIM_VER, SIMPRIM_VER...等库文件。
因为xapp859是基于ISE10.1版本开发的,所以首先用ISE10.1 编译生成modelsim的仿真库文件。编译库的过程比较简单,这里不介绍,编译好之后,如图产生如下几个需要的库文件。
然后退回到ISE目录,此目录是笔者编译modelsim库时,指向的存放库路径,会看到多了一个modelsim.ini文件
将此文件copy到 xapp859/fpga/simulation/functional 目录下面,覆盖掉原来的ini文件。
打开modelsim 软件, 点击file -> change directory , 指向 xapp859/fpga/simulation/functional 目录,
modelsim首先读取ini文件,导入库文件,
直接在命令行窗口 输入 do tb.fdo回车,
然后添加波形信号,就可以开始仿真了。
1)网上下载的ISE10.1上仅提供的pcie plus core 1.6版本, 比xapp859的pcie 1.8要低,工程无法编译,从xilinx官方网站上( xilinx ip更新 )查到,ISE10.1版本支持pcie 1.8, 大概是license的问题,如果只是仿真,没什么影响。
2)modelsim仿真过程中,发现用modelsim 10.5c 64位 ,仿真时总是提示swiftpli_mti.dll 格式不正确,无法读取,网上未找到解决方法,最后在网上搜到个类似的问题,提示是modelsim 软件版本问题, 最后没办法,将modelsim退回到10.1 32bit版本,问题解决了,且能够正常仿真。