以下是代码片段:
1 编译xilinx库文件(13.2 modelsim仿真需要6.6d以上的modelsim版本) 开始->Design suite->ISE Design Tool –> Tool->Simulation Library Compilation Wizard编译xilinx库文件;
2编译好后,打开modelsim的ini文件,增加初始化库文件,并指定到编译好的库文件中。
其中lib名字一定要和Simulation Library Compilation Wizard生成的库文件名相同,否则modelsim编译时会显示找不到库的错误。 3 例化一个PCIE的IP,打开modelsim,改变文件夹到例化到的例子的simulation的functional文件夹,将ISE/verilog/src/文件中的glbl.v文件在work库中编译一下,并去掉simulate_mti.do文件中的glbl.v文件的加载,然后编译就可以了。
运行,过程中出现modelsim让终止的对话框选择no,运行结果如下:
经仿真,例子只给了链路训练的仿真。 仿真文档参考Virtex-6 FPGA Integrated Block for PCI Express User Guide(ug517)。 模块的结构图如下:
Board为顶层模块,EP为用户例化PCIE PIO例子,实际调试中可以改为添加用户逻辑的PCIE代码,RP为测试模块代码,RP源文件在simulation的functional和dsport文件中。 Pci_exp_usrapp_rx/tx分别定义了用于仿真的package产生task,可以根据需要调用task进行测试。
//Test starts here if (testname == "dummy_test") begin $display("[%t] %m: Invalid TESTNAME: %0s", $realtime, testname); $finish(2); end `include "tests.v" else begin $display("[%t] %m: Error: Unrecognized TESTNAME: %0s", $realtime, testname); $finish(2); End Pci_exp_usrapp_tx一段代码,测试程序可以在tests.v文件中通过调用task经行测试。实际测试中需要把用户测试代码添加到sample_test1文件中。 仿真的打印信息:
仿真首先要TSK_BAR_INIT,然后再进行其他操作,才会出来波形,否则只能进行链路训练。 仿真环境默认只支持一个bar,如果有多个bar可将pci_exp_usrapp_tx.v中的pio_check_design改为0(检测在TSK_BAR_INIT中完成)。
如果用户想实测带有用户逻辑的代码,需要在example design的基础上添加用户代码,但是要注意最好不要改变设计中顶层模块的名字以便simulation_mit.do文件找不到编译文件,如果改变了,用户可以通过修改.do文件的内容来仿真。 E:/loongson/PCIE/Xilinx_PCIe_V6/pcie_1x1_example/ipcore_dir/pcie/simulation/functional仿真PCIE PIO的例子
|
用户1826710 2015-12-29 15:54
用户1577612 2015-12-16 10:25
用户1360512 2015-1-5 23:40
用户1821650 2014-11-22 11:19
用户1252893 2014-8-11 17:31
用户1639460 2014-2-15 15:14
用户1631568 2014-1-20 09:55
用户377235 2014-1-14 14:42
用户377235 2013-9-29 15:24
我的qq是2480736935,本人菜鸟,很想掌握pcie,希望指导下小弟,互相交流下,谢谢。
用户440271 2013-6-26 19:57