|
这个DMA引擎在Xilinx 65nm的V5器件的PCIe IP上测试通过;已经在ML506 和ML555板上测试通过,欢迎大家下载使用和学习
Xilinx授权:公开全部源代码的 PCIe DMA 引擎
Readme
************************************************************************ ** Copyright : 2007, Token2000 [ Email: TOKEN2000@163.COM ] ** This design is FREEWARE. All Rights Reserved. ************************************************************************ ** DMA engine FREEWARE on Xilinx ML505/ML555 demo board with windows driver ** Author: Token2000 [ Email: TOKEN2000@163.COM ] ** Version: 1.0 ** Filename: ReadMe.txt ** Date Last Modified: 12/3/2007 ** Date Created: 11/1/2007 ** Purpose: Readme file with first design attempt. Please use this file ** to find your way through the design. ************************************************************************ ** ** Disclaimer: LIMITED WARRANTY AND DISCLAMER. ** These designs are provided to you "as is." The author reserves the ** right not to be responsible for the topicality, correctness, completeness ** or quality of the information provided. Liability claims regarding damage ** caused by the use of any information provided, including any kind of information ** which is incomplete or incorrect,will therefore be rejected. All offers ** are not-binding and without obligation. Parts of the pages or the complete ** content including all offers and information might be extended, changed or ** partly or completely deleted by the author without separate announcement. ** Copyright: ** The author intended not to use any copyrighted material for ** the publication or, if not possible, to indicate the copyright of the ** respective object. The copyright for any material created by the author ** is reserved. Author permit any duplication or use of objects free of charge. ************************************************************************
=======================================================================
This document contains the following sections:
1. Introduction 2. Directory Structure 3. DMA engine example design for ML505 es silicon and ML555 production silicon 4. Windows Driver and Application software 5. Run DMA demo on ML505/ML555 6. DMA Performance 7. Technical Support 8. Other Information
======================================================================= 1. Introduction This is a FREEWARE DMA engine design on Xilinx ML505/ML555 demo board. This FREEWARE includes: a. DMA engine design verilog source code b. Simulation testbench c. Simulation script for ModelSim d. P&R Implement script for ISE9.2 linux version f. Script to generate System ACE file for ML505 g. Script to generate Xilinx Flash file for ML555 h. Windows XP software device driver source code i. Windows XP software application source code ALL CONTENTS needed to rebuild the whole project is provided in this package. The development enviroments used for this FREEWARE includes: I. ISE 9.2.03i with ise_92i_ip_update2_install (Linux version) II. ModelSim 6.2e (Linux version) III. Verdi 2006 (Linux version) IV. Microsoft WDK Build 6001 16549 V. Microsoft Visual Studio 2005
2. Directory Structure
|-DMA_Freeware : Root directory for this FREEWARE |-pcie_software : Windows driver and application software |-driver : Windows driver for install |-PCIE : Windows driver source code |-PCIEBoardTest : Windows application source code |-run : Windows application executable |-pcie_ml505esx1_prj : FPGA design for ML505 engineering sample silicon, pcie x1 |-ml555cg |-endpoint_blk_plus_v1_5 |-doc : IPcore document |-example_design: DMA engine source verilog source code |-implement : DMA engine P&R directory |-results : DMA engine P&R results |-simulation : DMA engine simulation directory |-dsport : pci express simulation model |-functional : function smulation files |-novas : function smulation script |-tests : test cases |-pcie_ml555x4_prj : FPGA design for ML555 production silicon, pcie x4 |-ml555cg |-endpoint_blk_plus_v1_5 |-doc : IPcore document |-example_design: DMA engine source verilog source code |-implement : DMA engine P&R directory |-results : DMA engine P&R results |-simulation : DMA engine simulation directory |-dsport : pci express simulation model |-functional : function smulation files |-novas : function smulation script |-tests : test cases 3. DMA engine example design for ML505 es silicon and ML555 production silicon 3.1 Place and Route: run the implement.sh script [Token2000@LinuxWS01]$cd ~/DMA_Freeware/pcie_ml505esx1_prj/ml505cg/endpoint_blk_plus_v1_5/implement/ [Token2000@LinuxWS01]$source implement.sh ** NOTE: Before P&R, check you have installed ISE9.2.3 with IP update2. Also, ** NOTE: you may need to register for a free PCI express IPcore license from www.xilinx.com 3.2 Simulation: run the simulate_mti.do script [Token2000@LinuxWS01]$cd ~/DMA_Freeware/pcie_ml505esx1_prj/ml505cg/endpoint_blk_plus_v1_5/simulation/novas [Token2000@LinuxWS01]$vsim & In modelsim, "do simulate_mti.do" ** NOTE: Before simulation, check you have installed modelsim 6.x. ** NOTE: To setup Xilinx simulation library, check sim.pdf in ISE9.2 directory.You can use following command line. ** [Token2000@LinuxWS01]$compxlibgui & ** NOTE: Verdi (debussy) is for waveform browsing, if do not installed. You may remark following lines from board.v ** initial begin ** $fsdbDumpfile("bmd.fsdb"); ** $fsdbDumpvars; ** end 4. Windows Driver and Application software 4.1 Compile Windows driver: open a command line window from Microsoft WDK. D:\> cd D:\DMA_Freeware\pcie_software\PCIE D:\> bld ** NOTE: Before Compile Windows driver, check you have installed Microsoft WDK Build 6001 16549 4.2 Compile Windows application software: D:\> cd D:\work\PCI\PCIEBoardTest (assuming it is the software home directory) open PCIEBoardTest.vcproj with Microsoft VS2005, then build it. ** NOTE: Before Compile Windows driver, check you have installed Microsoft Visual Studio 2005 5. Run DMA demo on ML505/ML555 5.1 Run DMA demo on ML505 (ES silicon): I. download ml505_pcie_x1_plus_design_creation.pdf from Xilinx.com. Set boot from SYSACE CFG6. II. copy DMA_Freeware\pcie_ml505esx1_prj\ml505cg\endpoint_blk_plus_v1_5\implement\pcie_x1_plus_v1_5es_imp.ace into CF6 postion of CF card III. According to ml505_pcie_x1_plus_design_creation.pdf, setup ML505 in your PC. IV. Power on, when windows ask for driver, assign to DMA_Freeware\pcie_software\driver\PCIE.inf V. After driver installation. run DMA_Freeware\pcie_software\run\PCIEBoardTest.exe for a test. ** NOTE: Make sure your PC have been 100% power-off, before plug or unplug ML505/ML555. 5.2 Run DMA demo on ML555 (production silicon): I. download ug201.pdf from Xilinx.com. Set JUMP to boot from XCF32P U1, REV0. Set PCIE switch. II. Burn DMA_Freeware\pcie_ml555x4_prj\ml555cg\endpoint_blk_plus_v1_5\implement\ml555xcf32p.mcs into XCF32P U1. Detail steps is in "Programming the PROM" section of ug201.pdf III. According to ug201.pdf, setup ML555 in your PC. IV. Power on, when windows ask for driver, assign to DMA_Freeware\pcie_software\driver\PCIE.inf V. After driver installation. run DMA_Freeware\pcie_software\run\PCIEBoardTest.exe for a test. ** NOTE: Make sure your PC have been 100% power-off, before plug or unplug ML505/ML555.
6. DMA Performance Performance Screen shots can be found at DMA_Freeware\pcie_software screenshot_X1.jpg, screenshot_X4.jpg, screenshot_X4_read.jpg, screenshot_X4_write.jpg The PC platform is DELL GX280 (Intel 915G chipset). GX280 is the cheapest PC I can found. I got 218MBps(W)/172MBps(R) on ML505 PCIx1, 445MBps(W)/683MBps(R) on ML555 PCIx4 You may get better performance on new PC (INTEL 965G/P35/3000X/5000X chipset) than my old GX280. :) 7. Technical Support Send email to Token2000 [ Email: TOKEN2000@163.COM ]. Or post your question on www.edacn.net, I used to visit the website twice a week.
8. Other Information If you want more help or design service, contact Token2000 [ Email: TOKEN2000@163.COM ].
Have a happy journey with the fantastic PCI express.
Sincerely Token2000 [ Email: TOKEN2000@163.COM ]
|