Description
Known Issue: v1.4, v1.3, v1.2
The Virtex-6 FPGA Integrated Block for PCI Express can be clocked with a 100, 125 or 250 MHz system reference clock for both Gen 1 and Gen 2 applications. See (Xilinx Answer 18329) for more information about clocking.
The current v1.4 release does not allow users to select the 100 MHz option during the CORE Generator software customization process. How, does the user enable 100 MHz in the v1.4 release.
Solution
The 100 MHz option is fully supported for Gen 2 applications, so users can lay boards out for 100 MHz even though the GUI is not supporting it yet. The v1.5 release in ISE 12.1 software enables the option to choose 100 MHz reference clock for Gen 2 applications.
For ISE 11.5, users need to replace gtx_wrapper_v6.v/vhd file in the '<Core>/source' directory with the relevant file in the following link and then follow the instructions given below:
http://www.xilinx.com/txpatches/pub/applications/pci/ar32934.zip
- Edit the core top level Verilog or VHDL file (e.g. v6_pcie_v1_5.v/vhd) in the <Core_Name>/source directory, set REF_CLK_FREQ to '0' instead of '2' in the generic list. The name of the file will be the same as the generated core name entered during the customization process.
- For simulation of Verilog designs make the following changes:
- Edit simulation/functional/board.v:
- At the top of the file change the parameter REF_CLK_FREQ to ?0? instead of ?2?. This is the parameter defined as: "parameter REF_CLK_FREQ 2".
- In the instantiation of the xilinx_pcie_2_0_rport module instance change REF_CLK_FREQ to '0'.
- Edit simulation/functional/board_common.v and change SYS_CLK_COR_HALF_CLK_PERIOD to ?5000? from ?2000?.
- For simulation of VHDL designs edit <Core>/simulation/functional/board.vhd and make these changes:
- In generic map for entity board : REF_CLK_FREQ : integer := 0;
- Generic map for instance CLK_GEN_RP of sys_clk_gen : CLK_FREQ => 100
- Generic map for instance CLK_GEN_EP of sys_clk_gen_ds : CLK_FREQ => 100
- Change the following in the XCF file:
- TIMESPEC "TS_SYSCLK" = PERIOD "SYSCLK" 100 MHz HIGH 50 %;
- TIMESPEC "TS_CLK_125" = PERIOD "CLK_125" TS_SYSCLK*1.25;
- TIMESPEC "TS_CLK_250" = PERIOD "CLK_250" TS_SYSCLK*2.5 HIGH 50 %;
- If the Design is a x1 Gen2, also update TIMESPEC "TS_USR_CLK" = PERIOD ?CLK_USR? TS_SYSCLK/1.6 HIGH 50 %;
- Change the following in the UCF:
- TIMESPEC "TS_SYSCLK" = PERIOD "SYSCLK" 100 MHz HIGH 50 % <>;
- TIMESPEC "TS_CLK_125" = PERIOD "CLK_125" TS_SYSCLK*1.25 HIGH 50 % <>;
- TIMESPEC "TS_CLK_250" = PERIOD "CLK_250" TS_SYSCLK*2.5 HIGH 50 % <>;
- If the Design is a x1 Gen2, also update TIMESPEC "TS_USER_CLK" = PERIOD "CLK_USER_CLK" TS_SYSCLK/1.6 HIGH 50 % <>;
- If the Design is a x8 Gen2, also update TIMESPEC "TS_CLK_500" = PERIOD "CLK_500" TS_SYSCLK*5 HIGH 50 % PRIORITY 1;
Revision History
3/22/2010- Added step-by-step instructions to enable 100 MHz for Gen2.
2/22/2010 - Removed the 250 MHz only restriction and added support for Gen 2 at 100 MHz.
12/02/2009 - Updated for 11.4
09/16/2009 - Updated for ISE Design Suite 11.3 and wrapper v1.3
06/24/2009 - Initial Release