PCI Express Packet Analysis with Down Stream Port Model and PIO Example Design. Deepesh Man Shakya. Page 1 of 66

Size: px
Start display at page:

Download "PCI Express Packet Analysis with Down Stream Port Model and PIO Example Design. Deepesh Man Shakya. Page 1 of 66"

Transcription

1 PCI Express Packet Analysis with Down Stream Port Model and PIO Example Design Deepesh Man Shakya Page 1 of 66

2 Table of Contents Introduction...3 PIO Example Design...3 Downstream Port Model...4 Files Hierarchy...4 PIO Example Design Schematics...5 Downstream Port Model Architecture...15 Xilinx_pci_exp_dsport.vhd...16 RX_APP (pci_exp_usrapp_rx.vhd)...16 PROC_READ_DATA...16 PROC_DECIPHER_FRAME...16 PROC_3DW/PROC_4dW...17 PROC_PARSE_FRAME...17 TX_APP (pci_exp_usrapp_tx.vhd)...19 pio_writereadback_test0 (tests.vhd)...21 test_interface.vhd...24 PROC_SYSTEM_INITIALIZATION...24 PROC_BAR_INIT...24 PROC_BAR_SCAN...25 PROC_BUILD_PCIE_MAP...26 PROC_BAR_PROGRAM...27 PROC_TX_SYNCHRONIZE...28 PROC_TX_TYPE0_CONFIGURATION_WRITE...28 PROC_TX_TYPE1_CONFIGURATION_READ...30 PROC_READ_DATA / PROC_PARSE_FRAME / PROC_DECIPHER_FRAME / PROC_4DW...30 PROC_TX_IO_WRITE...30 PROC_TX_MEMORY_WRITE_ PROC_WAIT_FOR_READ_DATA...33 PIO Example Design Packet Analysis...34 Fmt and Type...36 Configuration Write...37 Configuration Write Completion...41 Memory Write 64 / Memory Read 64 / Completion...42 Memory Write 32 / Memory Read 32 / Completion...51 Limitations and Features of Downstream port model...53 Limitations of PIO Example Design...54 Playing with Packets...54 Length Parameter Modification...54 Poisoning Memory Read TLP...56 Poisoning Configuration Write Request...58 Testing with a new TLP...60 Appendix...62 Generic TLP Header Fields...62 IO Request Header Format...64 Memory Request Header Format...64 Configuration Request Header Format...65 Message Request Header Format...65 Completion Header Format...65 Few points to note...65 References...66 Page 2 of 66

3 Introduction This document discusses the PIO example design and the downstream port model that comes with the generation of the PCI Express Block Plus core. The main goal of this document is to provide detail information on the architecture of the PIO example design and the simulation setup that includes downstream port model. The PIO example design simulation emulates the packet transaction between the real root complex and the endpoint. We will look into how the initialization process takes place, how the configuration transaction is initiated by the downstream port model and how the normal Memory Read, Memory Write and IO Read Write transaction is initiated by the host. We will also look into the generation of the completion packets by the endpoint. Latter part of this document goes through the packet analysis of the TLPs generated by downstream port model and the corresponding completions generated by the endpoint example design. PIO Example Design The PIO example design is a simple target-only application that interfaces with the Endpoint for PCIe core's Transaction (TRN) interface. Following are the main features of the PIO example design: Four transaction-specific 2 kb target region using the internal Xilinx FPGA Block RAMs, providing a total target space of 8192 bytes. Supports single DWORD payload Read and Write PCI Express transactions to 32/64 bit address memory spaces and IO space with support for completion TLPs. Utilizes the core's trn_rbar_hit_n[6:0] signals to differentiate between TLP destination Base Address Registers. Provides separate implementations optimized for 32-bit and 64-bit TRN interfaces. The following block diagram shows the PIO example design components: Page 3 of 66

4 Downstream Port Model Downstream port model acts as a root complex but it is not really a "root complex". The model represents only the downstream port interface which allows training with the endpoint. A complete root complex functionality represents a lot of other things. The downstream port and the provided testbench only provide just enough tools to do writes and read to the user design. The downstream port model is not a full blown simulation model as a true BFM available from third party vendors. However, it enables enough functionality to do basic testing of the user design. Downstream port model provides a mechanism for generating downstream PCI Express TLP traffic to access the user application. It also provides a mechanism to receive upstream PCI Express TLP traffic from the customer design in a simulation environment. Downstream port model initializes the core's configuration space, creates TLP transactions, generates TLP logs, and provides an interface for creating and verifying tests. The following diagram shows the high level architecture of downstream port model. Files Hierarchy Following screen shots gives the files hierarchy for the PIO example design simulation setup. All the files are generated during the generation of the PCI express block plus core. This hierarchy has been captured by creating an ISE project of the VHDL files provided in the example design and the downstream port model. Page 4 of 66

5 PIO Example Design Architecture The following diagram shows the top level schematics of the PIO Example design. The following schematic shows the block instantiations inside the above block. Page 5 of 66

6 The following schematic gives the top level view of the PIO example design user application. Page 6 of 66

7 The following schematic gives the top level view of the PCIe endpoint block plus core. Page 7 of 66

8 The following schematic shows the PIO Module inside the user application block. Page 8 of 66

9 The rest of the IOs in the user application block are tied off as shown below: Page 9 of 66

10 Following schematic shows a block (pio_ep) inside the pio interface. Inside PIO_EP, a memory block and the RX and TX engines are defined as shown below: Page 10 of 66

11 The following schematic shows the close-up view of the EP_MEM_ACCESS module. Page 11 of 66

12 Inside this module, there is a module called EP_MEM module where entire memory blocks used in the PIO example design have been instantiated. The PIO_EP_MEM_ACCESS module processes data written to the memory from incoming Memory and IO Write TLPs and provides data read from the memory in response to Memory and IO Read TLPs. The EP_MEM module processes 1 DWORD 32- and 64 bit addressable Memory and IO Write requests based on the information received from the RX Engine. The following schematic shows the internals of the EP_MEM_ACCESS module. The following schematic shows the internals of the EP_MEM module. Page 12 of 66

13 The following schematic shows the close-up view of the EP_RX_64 (Receive Engine) block. Page 13 of 66

14 The following schematic shows the close-up view of the TX engine block. PIO_64_TX_ENGINE (PIO_32_TX_ENGINE) module generates completions for received memory and IO read TLPS. The PIO design does not generate outbound read or write requests. However, user can add this functionality to further customize the design. Page 14 of 66

15 The following table shows the inputs required by the TX engine to generate completion packets. After the completion is sent, the TX engine asserts the compl_done_i output indicating to the RX engine that it can assert trn_rdst_rdy_n and continue receiving TLPs. Downstream Port Model Architecture Downstream port model consists of following components: Page 15 of 66

16 Xilinx_pci_exp_dsport.vhd This block essentially acts as a root complex. However, the model shouldn't be strictly treated as a root complex as it doesn't provide many features that a real root complex would normally provide. The endpoint PCIe block plus at the user side transmits TLPs across the PCI express link to the Downstream Port (dsport) model. The dsport and the PCIe block plus core are responsible for the data link layer and physical layer processing when communicating across the PCI Express fabric. dsport_cfg configures the downstream port model. RX_APP (pci_exp_usrapp_rx.vhd) Following are different procedures defined in RX_APP: 1. PROC_READ_DATA 2. PROC_DECIPHER_FRAME 3. PROC_3DW 4. PROC_4DW 5. PROC_PARSE_FRAME PROC_READ_DATA This procedure reads receive transaction data line (trn_rd) and stores it in frame_store_rx as shown below: PROC_DECIPHER_FRAME This procedure extracts the information from the data collected by PROC_READ_DATA as shown below: Page 16 of 66

17 PROC_3DW/PROC_4dW These procedures print the frame information to the output log as shown below: PROC_PARSE_FRAME PROC_PARSE_FRAME calls PROC_DECIPHER_FRAME, PROC_4DW and PROC_3DW (last two writes to the tx.dat and rx.dat file) Page 17 of 66

18 The following code gives the RX_APP state machine: Page 18 of 66

19 TX_APP (pci_exp_usrapp_tx.vhd) The usrapp_tx block sends TLPs to the dsport block for transmission across the PCI Express Link to the Endpoint DUT. Transaction sequences or test programs are initiated by the usrapp_tx block to stimulate the endpoint device's fabric interface. All test programs are defined inside the test_interface.vhd. All transaction sequences are defined in tests.vhd file. There are different tests that you can perform based on the VHDL or Verilog version of the core you generate. Following table gives the details of entire test suite that you can perform with the downstream port model. Page 19 of 66

20 Page 20 of 66

21 We will discuss here a test flow with reference to pio_write_readback_test0 test which is available both in verilog and vhdl version of the core generation. All downstream port model tests follow the same six steps as listed below: 1. Perform conditional comparison of a unique test name 2. Set up master timeout in case of simulation hangs 3. Wait for Reset and link-up 4. Initialize the configuration space of the endpoint 5. Transmit and receive TLPs between the Downstream Port Model and the Endpoint DUT 6. Verify that the test succeeded An entire source code relating to the TX_APP is presented here along with the description from the userguide (in the form of screen shot) and relevant description of the procedures where needed. The main objective behind publishing source code for all procedures defined in the TX_APP is to allow readers to get understanding of the working mechanism of the PIO example design without needing to generate the core and browse through the source code and the user guide. pio_writereadback_test0 (tests.vhd) This section will present the entire source code for pio_writereadback_test0 test suite provided in the downstream port model. The code involves number of procedure calls. Source code will be presented for each procedure used in the test. PROC_SYSTEM_INITIALIZATION will cause the test program to wait for the system reset to deassert as well as the endpoint's trn_lnk_up_n signal to assert. This is an indication that the endpoint is ready to be configured by the test program via the Downstream Port Model. PROC_BAR_INIT will perform a series of Type 0 Configuration Writes and Reads to the Endpoint core's PCI Configuration Space, determine the memory and IO requirements of the endpoint, and then program the endpoint's Base Address Registers so that it is ready to receive TLPs from the Downstream Port Model. In the following part of the source code, the sample program work together to cycle through all the endpoint's BARs and determine whether they are enabled, and if so determine their type, for example, Mem32, Mem64, or IO). Whether the BAR is enabled or not is checked by probing BAR_ENABLED[] global array. A non-zero value indicates that the corresponding BAR is enabled. If the BAR is not enabled then test program flow will move on to Page 21 of 66

22 check the next BAR. The previous call to PROC_BAR_INIT performed the necessary configuration TLP communication to the endpoint device and filled in the appropriate values into the BAR_ENABLED[ ] array. If the array element is enabled (that is, non-zero), the element's value indicates the BAR type. A value of 1, 2, and 3 indicates IO, Memory 32, and Memory 64 spaces, respectively. Page 22 of 66

23 Page 23 of 66

24 test_interface.vhd All the procedures called in the tests.vhd are defined in test_interface.vhd. Following are the procedures defined in this file: PROC_SYSTEM_INITIALIZATION PROC_BAR_INIT PROC_BAR_SCAN PROC_BUILD_PCIE_MAP PROC_DISPLAY_PCIE_MAP PROC_BAR_PROGRAM PROC_TX_SYNCHRONIZE PROC_TX_TYPE0_CONFIGURATION_WRITE PROC_TX_TYPE1_CONFIGURATION_READ PROC_READ_DATA PROC_PARSE_FRAME PROC_DECIPHER_FRAME PROC_4DW PROC_TX_IO_WRITE PROC_TX_IO_READ PROC_TX_MEMORY_WRITE_32 PROC_TX_MEMORY_READ_32 PROC_WAIT_FOR_READ_DATA PROC_TX_MEMORY_WRITE_64 PROC_TX_MEMORY_READ_64 PROC_SYSTEM_INITIALIZATION This procedure waits for transaction interface reset and linkup between the Downstream Port Model and the Endpoint DUT. This task must be invoked prior to the Endpoint core initialization. PROC_BAR_INIT PROC_BAR_INIT will perform a series of Type 0 Configuration Writes and Reads to the Endpoint core's PCI Configuration Space, determine the memory and IO requirements of the endpoint, and then program the endpoint's Base Address Registers so that it is ready to receive TLPs from the Downstream Port Model. Page 24 of 66

25 PROC_BAR_SCAN This procedure performs a sequence of PCI Type 0 Configuration Writes and Configuration Reads using the PCI Express fabric in order to determine the memory and IO requirements for the Endpoint. The task stores this information in the global array BAR_RANGE[]. This task should only be called after PROC_SYSTEM_INITIALIZATION. Page 25 of 66

26 PROC_BUILD_PCIE_MAP [From User Guide] Performs memory/io mapping algorithm and allocates Memory 32, Memory 64, and IO space based on the Endpoint requirements. This task has been customized to work in conjunction with the limitations of the PIO design and should only be called after completion of PROC_BAR_SCAN. [From Source Code] This checks whether the BAR_RANGE has been defined or not. If it is then that BAR is enabled. If not the BAR is disabled. Page 26 of 66

27 PROC_BAR_PROGRAM Page 27 of 66

28 PROC_TX_SYNCHRONIZE The main function of this procedure is to synchronize the trn_clk and trn_tdst_rdy_n signals. Before a TLP is transferred it waits for trn_clk to detect its positive edge and trn_tdst_rdy_n to be asserted. Within PROC_TX_SYNCHRONIZE calls PROC_READ_DATA and PROC_PARSE_FRAME PROC_PARSE_FRAME calls PROC_DECIPHER_FRAME PROC_4DW and PROC_3DW. These chain of procedures are called to log the outgoing TLPs into output log (i.e. tx.dat). This is shown in the following source code snippet. PROC_TX_TYPE0_CONFIGURATION_WRITE Page 28 of 66

29 This procedure sends a Type 0 PCI Express Config Write TLP from Downstream Port Model to reg_addr_ of Endpoint DUT with tag_ and first_dw_be_ inputs. Completion returned from Endpoint DUT will use contents of global COMPLETE_ID_CFG as completion ID. Inputs to this procedure are as follows: First PROC_TX_SYNCHRONIZE is called. The first call only synchronizes the trn_clk and trn_tdst_rdyn_n signals. After that the TLP information is put into trn_td_c. The second PROC_TX_SYNCHRONIZE call synchronizes the signals as well as logs the TLP information into local buffer to be parsed and sent to output log. The whole outgoing TLP information is sent to the output log after the transmission of the last TLP data. Page 29 of 66

30 PROC_TX_TYPE1_CONFIGURATION_READ This procedure sends a Type 1 PCI Express Config Read TLP from Downstream Port Model to reg_addr_ of Endpoint DUT with tag_ and first_dw_be_ inputs. CplD returned from Endpoint DUT will use contents of global COMPLETE_ID_CFG as completion ID. The definition of this procedure is same as that for PROC_TX_TYPE0_CONFIGURATION_WRITE. PROC_READ_DATA / PROC_PARSE_FRAME / PROC_DECIPHER_FRAME / PROC_4DW These procedures are the general procedures used to log the TLP information in the output log i.e. tx.dat and rx.dat. The description for these procedures has been provided in the RX_APP section. PROC_TX_IO_WRITE This procedure sends a PCI Express IO Write TLP from Downstream Port Model to IO address addr_[31:2] of Endpoint DUT. CplD returned from Endpoint DUT will use contents of global COMPLETE_ID_CFG as completion ID. The code snippet for PROC_TX_IO_WRITE is as follows: Page 30 of 66

31 PROC_TX_MEMORY_WRITE_32 The inputs for this procedure are as follows: The header format for 32 bit address memory write TLP is as follows: The code snippet for the PROC_TX_MEMORY_WRTE_32 is as shown below: Page 31 of 66

32 Page 32 of 66

33 PROC_WAIT_FOR_READ_DATA This procedure waits for the next completion with data TLP that was sent by the Endpoint DUT. On successful completion, the first DWORD of data from the CplD will be stored in the global P_READ_DATA. This task should be called immediately following any of the read tasks in the TPI that request Completion with Data TLPs to avoid any race conditions. By default this task will locally time out and terminate the simulation after 1000 transaction interface clocks. The global cpld_to_finish can be set to zero so that local time out returns execution to the calling test and does not result in simulation timeout. For this case test programs should check the global cpld_to, which when set to one indicates that this task has timed out and that the contents of P_READ_DATA are invalid. Page 33 of 66

34 This procedure is called from the main test (pio_writereadback_test0) code as follows: PIO Example Design Packet Analysis In the previous section a complete description of the pio_writereadback_test0 test was given. In this section a detail description of TLP packet analysis will be presented by simulating the example design based on pio_weritereadback_test0 downstream port model test suite. To recap the whole working mechanism of this test a flow chart is presented below: Page 34 of 66

35 Page 35 of 66

36 Fmt and Type In packet analysis, it is important to understand what Fmt and Type value in the packet indicate to. The following table shows the Fmt and Type encodings: Page 36 of 66

37 Configuration Write The following waveform shows the zoomed out view of the example design simulation output with the default settings. The first TLP that is initiated by the dsport model is the configuration write transaction. If you open tx.dat you will see following information of the first configuration write transaction: This configuration write transaction is called from the PROC_BAR_PROGRAM. The first call to PROC_TX_TYPE0_CONFIGURATION_WRITE is to program BAR0. The code snippet with the parameters for the first call is as shown below. Our main goal here is to trace the parameters in the tx.dat and the simulation waveform. Page 37 of 66

38 Let s bring in the PROC_TX_TYPE0_CONFIGURATION_WRITE definition: Page 38 of 66

39 Let s look at the header format for the configuration write transaction: Based on the source code provided for the configuration write call and the definition of the procedure, let s track down the parameter values for the above header format. R = 0 Fmt = 10 Type = R = 0 TC = 000 Reserved = 0000 TD = 0 EP = 0 Attr = 00 R = 00 Length = Requester ID = COMPLETER_ID_CFG ( This value is the global constant definition) Tag = 0f (This is passed from the PROC_TX_TYPE0_CONFIGURATION_WRITE call) Last DW BE = st DW BE = f (This is passed from the PROC_TX_TYPE0_CONFIGURATION_WRITE call) Bus Number/Device Number/ Function Number = COMPLETER_ID_CFG Reserved = 0000 Ext Reg Number / Register Number = x010 (provided in the procedure call) The reg_data is the content to be programmed into BAR (0) as shown below: Page 39 of 66

40 reg_data(7 downto 0) & reg_data(15 downto 8) & reg_data(23 downto 16) & reg_data(31 downto 24); Here BAR(0) = reg_data Therefore, Reg_data (7 downto 0) = 0x00 Reg_data (15 downto 8) = 0x00 Reg_data (23 downto 16) =0x00 Reg_data (31 downto 24) = 0x10 Now let s check the waveform and see if the above parameter values are reflected in the waveform or not. The first 64 bits of trn_td in binary representation of the waveform is as follows: The second 64 bits of trn_td in binary representation of the waveform is as follows: If we break this down and put it in the header format above, we will get following: Page 40 of 66

41 There are altogether 9 configuration writes which is also seen in the waveform: Configuration Write Completion The yellow box in the waveform below shows the configuration write completiond. Since there were 9 configuration writes, there are corresponding 9 configuration write completions. Let s check rx.dat for the output log of the first configuration write completion. Let s look at the completion header format: If you zoom in the waveform to trace the first configuration write completion TLP, we get following: Page 41 of 66

42 In the waveform, both completer ID and Requester ID are same i.e. 01A0. The important bit is the Tag. In the first configuration write the Tag was 0F. We see the same tag for the completion as well indicating the completion for the specific configuration write. Now let s look at the second configuration write log and the corresponding configuration write completion log and verify that both have the same Tag or not. From tx.dat From rx.dat Memory Write 64 / Memory Read 64 / Completion Let s explore the Memory_Write_64 TLP as shown in the yellow box below: Page 42 of 66

43 A close-up view is as shown below. It is broken into two parts for clarity. The first two hexadecimal bits (60) indicates that this TLP is Memory Write TLP with 4DW header i.e. the write TLP is addressing the memory location with 64 bits address. Before going further let s check how the BARs were configured. You can see it in the modelsim console. As you can see here, in our current example design configuration the first BAR has been enabled for 64 bits address. Hence, the second bar is automatically disabled. The third BAR i.e. BAR 2 has been enabled to map to 32 bits memory address location. If you refer to the flow chart presented above, the first TLP that will be sent will be PROC_TX_MEMORY_WRITE_64. Let s explore how this procedure has been defined. Page 43 of 66

44 Page 44 of 66

45 PROC_TX_MEMORY_WRITE_64 procedure has been called in pio_writereadback_test0 as follows: Now let s take a look at 4DW Memory Request header: Let s check the corresponding parameters for the TLP as assigned in PROC_TX_MEMORY_WRITE_64 and the input parameters passed during this procedure call. R = 0 Fmt = 11 Type = R = 0 TC = 000 (Passed during procedure call) Reserved = 0000 Page 45 of 66

46 TD = 0 EP = 0 Attr = 00 R = 00 Length = (passed during the procedure call) Requester ID = COMPLETER_ID_CFG (This value is a global constant definition) Tag = 04 (passed during the procedure call) Last DW BE = 0000 (passed during procedure call) 1 st DW BE = 0xf (passed during procedure call) Bus Number/Device Number/ Function Number = COMPLETER_ID_CFG Address [63:32] = BAR (1) = 0x Address [31:2] = BAR (0) = 0x R =00 Let s put first 32 bits from the above parameters together and see if this matches with what we see in the waveform: 0110_0000_0000_0000_0000_0000_0000_0001 From the waveform we get: Let s look into second 32 bits from the above parameter values. We will look into hexadecimal values. 01A0_04_0_f = 01A0040f Now, let s look in the waveform: Next 64 bits is the memory address, from the above parameter definition, should be: _ In the waveform we see the same value: In this TLP, the length of payload size is specified to be 1. Therefore, the payload data of 1DW is attached with this TLP. In pio_writereadback_test0, DATA_STORE is assigned values as follows: Page 46 of 66

47 Now let s go back to PROC_TX_MEMORY_WRITE_64 definition i := i+8; The first condition in the if statement is true therefore DATA_STORE (4,5,6,7) are filled with 0. The while loop will run only once. The above source code will transfer 64 bits data with first 32 bits as and rest 0. Let s see in the waveform if the data is correctly transferred or not: The output log in tx.dat for this TLP is as shown below: Page 47 of 66

48 The yellow box in the following waveform shows the TLP sent from the dsport reaching the trn receive interface at the endpoint. The zoomed in view is as shown below: The data in the yellow box is the garbage data. Since the length of the payload is 1 (i.e. 1DW) this value doesn t count. In pio_writereadback_test0, Write TLP is followed by a Read TLP just to make sure that the value is written correctly. In the waveform below, the blue box is the Write TLP discussed above and the yellow box is the Read TLP (this can be verified by checking the first two Hexadecimal bits which is 20 here). The output log for this read TLP in the tx.dat is as follows: c Page 48 of 66

49 Memory read is the non-posted transaction. Therefore, a completion packet should be sent upstream by the endpoint example design. This completion packet should be visible at the trn transmit interface of the endpoint example design and also at the trn receive interface of the dsport model. Let s trace the packet at these two interfaces in the simulation waveform. In the waveform below, the yellow box shows the completion packet at the user s side. By zooming into the yellow box we see: Before analyzing this packet let s check the format of the completion packet. The first 8 bits in the completion packet i.e. 4A indicates it is a Completion with Data packet. Let s look at the output log for this completion packet received: Page 49 of 66

50 As you can see in the waveform, the correct value is returned in the completion packet. The main interest here is the Tag value. In the Memory read packet the Tag value was 0x05 (shown below for reference) If we check the Tag value in the completion packet it is the same i.e. 0x05 indicating that this completion belongs to the memory read packet that was sent earlier. Also the completion status field is 0x0 indicating that completion is successful: As seen in the yellow box in the completion packet, this is the byte count field. Byte count is defined as follows: Page 50 of 66

51 Since there are four bytes remaining to be received after this 64 bits, the value of 4 here is correct. The following waveform shows the packet being received at the receive trn interface of the dsport model. Following requirement as specified in the specification should be satisfied by the completion packet: Memory Write 32 / Memory Read 32 / Completion The yellow box in the following waveform shows the Memory Write TLP that addresses 32 bit memory address. The memory write TLP is immediately followed by Memory Read TLP to the same memory location. This TLP is included in the same box. Page 51 of 66

52 The close up view of the Memory Write TLP (followed by the Memory Read TLP) is shown below: 40 indicates Memory Write TLP addressing 32 bit memory. 00 indicates Memory Read TLP addressing 32 bit memory. The output log for the memory write packet in tx.dat is as follows: The output log for the memory read packet in tx.data is as follows: The yellow box in the following waveform shows the completion for the above Memory Read packet. Page 52 of 66

53 The close up view of the completion packet is shown below: The output log for this packet in rx.dat is: The yellow box in the following waveform shows the Memory Write and Memory Read from the Expansion Rom which is mapped to BAR6. Limitations and Features of Downstream port model Following are the limitations of downstream port model: 1. The PIO design was created to support at most one IO BAR, one Mem64 BAR, and two Mem32 BARs (one of which must be the EROM space), the Downstream Port Model by default makes a check during device configuration that verifies that the core has been configured to meet this requirement. A violation of this check will cause a warning message to be displayed as well as for the offending BAR to be gracefully disabled in the test bench. This check can be disabled by setting the pio_check_design variable to zero in the pci_exp_usrapp_tx.v file. Page 53 of 66

54 2. Dsport model consists of a parallel test. This test involves more than one process thread. The test sample_smoke_test1 is an example of a parallel test with two process threads. Parallel tests are very useful when verifying that a specific set of events have occurred, however the order of these events are not known. 3. Currently the VHDL version of the Downstream Port Model Test Bench does not support Parallel tests. 4. The Downstream Port Model has a 128-byte MPS capability in the receive direction and a 512-byte MPS capability in the transmit direction. 5. The downstream port and the provided testbench only provide just enough tools to do writes and read to the user design. The downstream port model is not a full blows simulation model as a true BFM available from third party vendors. However, it enables enough functionality to do basic testing of the user design. Limitations of PIO Example Design 1. The PIO design is a simple target-only application that interfaces with the Endpoint for PCIe core s Transaction (TRN) interface. 2. The PIO design only supports single DWORD payload Read and Write PCI Express transactions to 32/64 bit address memory spaces and IO space with support for completion TLPs. 3. The example design supports one IO space BAR, one 32-bit Memory space (that cannot be the Expansion ROM space), and one 64-bit Memory space. If these limits are exceeded, only the first space of a given type will be active accesses to the other spaces will not result in completions. 4. Each space is implemented with a 2 kb memory. If the corresponding BAR is configured to a wider aperture, accesses beyond the 2 kb limit wrap around and overlap the 2 kb memory space. 5. The PIO design successfully processes single DWORD payload Memory Read and Write TLPs and IO Read and Write TLPs. Memory Read or Memory Write TLPs of lengths larger than one DWORD are not processed correctly by the PIO design; however, the core does accept these TLPs and passes them along to the PIO design. If the PIO design receives a TLP with a length of greater than 1 DWORD, the TLP is received completely from the core and discarded. No corresponding completion is generated. 6. PIO design handles Memory writes and IO TLP writes in different ways: the PIO design responds to IO writes by generating a Completion Without Data (cpl), a requirement of the PCI Express specification. 7. The PIO_32_TX_ENGINE and PIO_64_TX_ENGINE modules generate completions for received memory and IO read TLPs. The PIO design does not generate outbound read or write requests. However, users can add this functionality to further customize the design. Playing with Packets Length Parameter Modification As stated in the earlier section, the PIO example design will not generate completion for TLP whose payload is greater that 1. Let s see the behaviour of the simulation if the memory read TLP has Length parameter of 2. Let s change the parameter value in the pio_writereadback_test0 as shown below: If we simulate the resulting design, the simulation times out. The TLP is passed from the dsport to the endpoint. It appears at the receive trn interface of the endpoint of the example design as well but the completion is never generated and hence the simulation times out. In the yellow box in the following waveform, we can see that the TLP with the modified length parameter leaves the trn transmit interface at the dsport model. Page 54 of 66

55 In the waveform below, in the yellow box, the TLP does arrive at the user side but completion is never generated. Let s take a closer look at the modified TLP and check whether the new length value shows up in the outgoing packet or not. Page 55 of 66

56 Poisoning Memory Read TLP Now let s see what happens if the Memory_Read_32 TLP is poisoned. The TLP is poisoned by assigning the value of ep as 1 as shown below. The following code snippet is from PROC_TX_MEMORY_READ_32 procedure in test_interface.vhd.. The packet is generated and passed to the endpoint backend application. The user application detects that the TLP with poisoned data has been received. The message is printed on the console window as shown below: The user guide says following: Page 56 of 66

57 Let s see if we see similar behavior in our simulation or not: Looking at the waveform, it is not clear what the behavior of the completion should be for the poisoned incoming non-posted packet. The completion packet seems to be generated correctly with completions status set to successful. This needs to be clarified. Page 57 of 66

58 Poisoning Configuration Write Request Let s see what happens when configuration write request is poisoned. This is done by modifying the ep bit in PROC_TX_TYPE0_CONFIGURATION_WRITE procedure in test_interface.vhd as shown below: PCI Express specification says: We see this behavior in our simulation as well. Following is the message printed on the console when poisoned configuration write is transmitted from the dsport model. In the following waveform, the red box is the poisoned configuration write request, the yellow box is the corresponding completion for this request. We will first look into whether the output configuration write request is poisoned or not. Then we will look into the incoming completion to see whether the Completion Status field is set to 001 indicating Unsupported Request. Page 58 of 66

59 The following waveform shows the close-up view of the first outgoing configuration write request with poisoned bit ep set to 1. The header format for the configuration request TLP is presented below for the quick reference for the readers. Following waveform shows the corresponding completion with completion status set to Unsupported Request. The header format from the completion TLP is presented below for the quick reference for the readers. Page 59 of 66

60 Testing with a new TLP Let s insert a new TLP that will write to BAR mapped to 32-bit memory address and then read it back. This is done by modifying the tests.vhd file as follows: We are not creating any fancy TLP here. We are just replicating the PROC_TX_MEMORY_WRITE_32 TLP to read and write different data set to the same memory location as would be done by PROC_TX_MEMORY_WRITE_32. For this, a new procedure is defined in test_interface.vhd called PROC_TX_MEMORY_WRITE_321. The content of this procedure will basically remain the same except for DATA_STORE. A new array has been defined called DATA_STORE1. A different set of values is stored in this array as shown in the code snippet above. Let s look at the resulting waveform. In our previous simulation we had 3 TLPs going down from dsport to the endpoint. In this case we will have 5 TLPs. Page 60 of 66

61 Let s take a closer look at the new outgoing TLP. We should see the following data payload with this TLP. DATA_STORE1(0) := X"DE"; DATA_STORE1(1) := X"AD"; DATA_STORE1(2) := X"BE"; DATA_STORE1(3) := X"EF"; The output log in tx.dat for this TLP is as shown below: A Memory Read TLP is issued, let s if we see the same data pattern in the completion sent back from the endpoint for this Memory Read TLP. The output log in rx.dat for this completion packet is as shown below: Page 61 of 66

62 Appendix Some reference contents have been added in this section to make it easier for the readers to do packet analysis and hence debug their design. The contents in this section have been taken from chapter-4 of the PCI Express System Architecture book from Mindshare. Generic TLP Header Fields Page 62 of 66

63 Page 63 of 66

64 IO Request Header Format Memory Request Header Format Page 64 of 66

65 Configuration Request Header Format Message Request Header Format Completion Header Format Few points to note 1. Byte enables bits are high true. A value of 0 indicates the corresponding byte in the data payload should not be written by the completer. A value of 1, indicates it should. 2. If the header Length field indicates a transfer is more than 1DW, the first DW Byte Enabled must have at least one bit enabled. 3. A write request with a transfer length of 1DW and no byte enables set is legal, but has no effect on the completer. 4. If a read request of 1 DW is done with no byte enable bits set, the completer returns a 1DW data payload of undefined data. This may be used as a Flush mechanism. Because of ordering rules, a flush may be used to force all previously posted writes to memory before the completion is returned. 5. The first byte of the data in the payload (immediately after the header) is always associated with the lowest (start) address. 6. Receivers also must check for discrepancies between the value in the Length field and the actual amount of data transferred in a TLP with data. Violations are also handled as Malformed TLPs. Page 65 of 66

66 7. Requests must not mix combinations of start address and transfer length which will cause a memory space access to crass a 4KB boundary. While checking is optional in this case, receivers checking for violations of this rule will report it as a Malformed TLPs. References 1. PCI Express Base Specification Revision 1.1,March 28, LogiCORE IP Endpoint Block Plus v1.9 for PCI Express,UG341 September 19, PCI Express System Architecture by Ravi Budruk, Don Anderson, Tom Shanley, MindShare, Inc. Page 66 of 66

Design and Simulation of a PCI Express based Embedded System

Design and Simulation of a PCI Express based Embedded System Design and Simulation of a PCI Express based Embedded System Faraj Nassar 1, Jan Haase 1, Christoph Grimm 1, Herbert Nachtnebel 1, Majid Ghameshlu 2 1 Institute of Computer Technology, Vienna University

More information

Xilinx Answer Generating Quick Test Cases for Xilinx Integrated PCI Express Block and Serial RapidIO Cores Verilog Simulation

Xilinx Answer Generating Quick Test Cases for Xilinx Integrated PCI Express Block and Serial RapidIO Cores Verilog Simulation Xilinx Answer 53776 Generating Quick Test Cases for Xilinx Integrated PCI Express Block and Serial RapidIO Cores Verilog Simulation Important Note: This downloadable PDF of an Answer Record is provided

More information

Xilinx Answer Virtex-6 Integrated PCIe Block Wrapper Debugging and Packet Analysis Guide

Xilinx Answer Virtex-6 Integrated PCIe Block Wrapper Debugging and Packet Analysis Guide Xilinx Answer 50234 Virtex-6 Integrated PCIe Block Wrapper Debugging and Packet Analysis Guide Important Note: This downloadable PDF of an answer record is provided to enhance its usability and readability.

More information

Virtex-7 FPGA Gen3 Integrated Block for PCI Express

Virtex-7 FPGA Gen3 Integrated Block for PCI Express Virtex-7 FPGA Gen3 Integrated Block for PCI Express Product Guide Table of Contents Chapter 1: Overview Feature Summary.................................................................. 9 Applications......................................................................

More information

Summary. Overview. Application Note: Virtex-5/-4/-II Pro, Spartan-3A/-3E/-3 FPGAs. XAPP1002 (v1.0) October 22, 2007

Summary. Overview. Application Note: Virtex-5/-4/-II Pro, Spartan-3A/-3E/-3 FPGAs. XAPP1002 (v1.0) October 22, 2007 XAPP1002 (v1.0) October 22, 2007 Application Note: Virtex-5/-4/-II Pro, Spartan-3A/-3E/-3 FPGAs Using ChipScope Pro to Debug Endpoint Block Plus Wrapper, Endpoint, and Endpoint PIPE Designs for PCI Express

More information

Xilinx Answer Virtex-7 FPGA Gen3 Integrated Block for PCI Express core SRIOV Example Design Simulation

Xilinx Answer Virtex-7 FPGA Gen3 Integrated Block for PCI Express core SRIOV Example Design Simulation Xilinx Answer 57342 Virtex-7 FPGA Gen3 Integrated Block for PCI Express core SRIOV Example Design Simulation Important Note: This downloadable PDF of an answer record is provided to enhance its usability

More information

PCI-SIG ENGINEERING CHANGE NOTICE

PCI-SIG ENGINEERING CHANGE NOTICE PCI-SIG ENGINEERING CHANGE NOTICE TITLE: Lightweight Notification (LN) Protocol DATE: Introduced: Jan 27, 2009; Last Updated Oct 2, 2011 Protocol Workgroup Final Approval: October 6, 2011 AFFECTED DOCUMENT:

More information

PCI Express*: Migrating to Intel Stratix 10 Devices for the Avalon Streaming Interface

PCI Express*: Migrating to Intel Stratix 10 Devices for the Avalon Streaming Interface PCI Express*: Migrating to Intel Stratix 10 Devices for the Avalon Streaming Interface AN791 2017.05.08 Last updated for Intel Quartus Prime Design Suite: Quartus Prime Pro v17.1 Stratix 10 Editions Subscribe

More information

PCI-SIG ENGINEERING CHANGE NOTICE

PCI-SIG ENGINEERING CHANGE NOTICE PCI-SIG ENGINEERING CHANGE NOTICE TITLE: Hierarchy ID Message DATE: Introduced: Feb 23, 216 Updated: Sept 8, 216 14-day Cross WG Review: Sept 15, 216 Member Review: October 2, 216 Final Approval: February

More information

LogiCORE IP Endpoint PIPE v1.8 for PCI Express

LogiCORE IP Endpoint PIPE v1.8 for PCI Express LogiCORE IP Endpoint PIPE v1.8 for PCI Express DS321 July 23, 2010 Introduction The LogiCORE IP Endpoint PIPE (PHY Interface) for PCI Express 1-lane core is a high-bandwidth scalable and reliable serial

More information

PCI Express TM. Architecture. Link Layer Test Considerations Revision 1.0

PCI Express TM. Architecture. Link Layer Test Considerations Revision 1.0 PCI Express TM Architecture Link Layer Test Considerations Revision 1.0 April 26, 2004 Revision History Revision Issue Date Comments 1.0 4/26/2004 Initial release. PCI-SIG disclaims all warranties and

More information

January 19, 2010 Product Specification Rev1.0. Core Facts. Documentation Design File Formats. Slices 1 BUFG/

January 19, 2010 Product Specification Rev1.0. Core Facts. Documentation Design File Formats. Slices 1 BUFG/ January 19, 2010 Product Specification Rev1.0 Design Gateway Co.,Ltd 54 BB Building 13 th Fl., Room No.1302 Sukhumvit 21 Rd. (Asoke), Klongtoey-Nua, Wattana, Bangkok 10110 Phone: (+66) 02-261-2277 Fax:

More information

Configuring Memory Read Completions Sent by PCIe QVIP

Configuring Memory Read Completions Sent by PCIe QVIP Configuring Memory Read Completions Sent by PCIe QVIP by Arushi Jain and Rajat Rastogi Mentor, A Siemens Business PCI Express (PCIe) is a point-to-point serial transceiver interconnect that provides higher

More information

LogiCORE IP Endpoint v3.7 for PCI Express

LogiCORE IP Endpoint v3.7 for PCI Express LogiCORE IP Endpoint v3.7 for PCI Express DS506 April 19, 2010 Introduction The LogiCORE Endpoint for PCI Express offers high-bandwidth, scalable, and reliable serial interconnect intellectual property

More information

Bus Master Performance Demonstration Reference Design for the Xilinx Endpoint PCI Express Solutions Author: Jake Wiltgen and John Ayer

Bus Master Performance Demonstration Reference Design for the Xilinx Endpoint PCI Express Solutions Author: Jake Wiltgen and John Ayer XAPP1052 (v3.2) September 29, 2011 Application Note: Virtex-6, Virtex-5, Spartan-6 and Spartan-3 FPGA Families Bus Master Performance Demonstration Reference Design for the Xilinx Endpoint PCI Express

More information

A (Very Hand-Wavy) Introduction to. PCI-Express. Jonathan Heathcote

A (Very Hand-Wavy) Introduction to. PCI-Express. Jonathan Heathcote A (Very Hand-Wavy) Introduction to PCI-Express Jonathan Heathcote Motivation Six Week Project Before PhD Starts: SpiNNaker Ethernet I/O is Sloooooow How Do You Get Things In/Out of SpiNNaker, Fast? Build

More information

Advanced module: Video en/decoder on Virtex 5

Advanced module: Video en/decoder on Virtex 5 Advanced module: Video en/decoder on Virtex 5 Content 1. Advanced module: Video en/decoder on Virtex 5... 2 1.1. Introduction to the lab environment... 3 1.1.1. Remote control... 4 1.2. Getting started

More information

SATA-IP Device reference design manual

SATA-IP Device reference design manual SATA-IP Device reference design manual Rev1.2 02-Jun-09 1. Introduction Serial ATA (SATA) is an evolutionary replacement for the Parallel ATA (PATA) physical storage interface. SATA interface increases

More information

Figure 1 SATA Communitcation Layer

Figure 1 SATA Communitcation Layer Stratix4GX SATA3 Host reference design manual Rev1.0 16-Jan-12 1. Introduction Serial ATA (SATA) is an evolutionary replacement for the Parallel ATA (PATA) physical storage interface. SATA interface increases

More information

AN 690: PCI Express DMA Reference Design for Stratix V Devices

AN 690: PCI Express DMA Reference Design for Stratix V Devices AN 690: PCI Express DMA Reference Design for Stratix V Devices an690-1.0 Subscribe The PCI Express Avalon Memory-Mapped (Avalon-MM) DMA Reference Design highlights the performance of the Avalon-MM 256-Bit

More information

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items January 18, 2018 Product Specification Rev2.2 Design Gateway Co.,Ltd 54 BB Building 14 th Fl., Room No.1402 Sukhumvit 21 Rd. (Asoke), Klongtoey-Nua, Wattana, Bangkok 10110 Phone: (+66) 02-261-2277 Fax:

More information

Bus Master DMA Performance Demonstration Reference Design for the Xilinx Endpoint PCI Express Solutions Author: Jake Wiltgen and John Ayer

Bus Master DMA Performance Demonstration Reference Design for the Xilinx Endpoint PCI Express Solutions Author: Jake Wiltgen and John Ayer XAPP1052 (v2.5) December 3, 2009 Application Note: Virtex-6, Virtex-5, Spartan-6 and Spartan-3 FPGA Families Bus Master DMA Performance Demonstration Reference Design for the Xilinx Endpoint PCI Express

More information

UltraScale Devices Gen3 Integrated Block for PCI Express v4.4

UltraScale Devices Gen3 Integrated Block for PCI Express v4.4 UltraScale Devices Gen3 Integrated Block for PCI Express v4.4 LogiCORE IP Product Guide Vivado Design Suite Table of Contents IP Facts Chapter 1: Overview Feature Summary..................................................................

More information

Section III. Transport and Communication

Section III. Transport and Communication Section III. Transport and Communication This section describes communication and transport peripherals provided for SOPC Builder systems. This section includes the following chapters: Chapter 16, SPI

More information

May 7, 2018 Product Specification Rev2.3. Core Facts. Documentation Design File Formats

May 7, 2018 Product Specification Rev2.3. Core Facts. Documentation Design File Formats May 7, 2018 Product Specification Rev2.3 Design Gateway Co.,Ltd 54 BB Building 14 th Fl., Room No.1402 Sukhumvit 21 Rd. (Asoke), Klongtoey-Nua, Wattana, Bangkok 10110 Phone: 66(0)2-261-2277 Fax: 66(0)2-261-2290

More information

Peripheral Component Interconnect - Express

Peripheral Component Interconnect - Express PCIe Peripheral Component Interconnect - Express Preceded by PCI and PCI-X But completely different physically Logical configuration separate from the physical configuration Logical configuration is backward

More information

PEX 8114BA PCI Express-to-PCI/PCI-X Bridge. Errata Documentation. Product Revision Description Status

PEX 8114BA PCI Express-to-PCI/PCI-X Bridge. Errata Documentation. Product Revision Description Status PEX 8114BA Errata Documentation Revision 2.2 March, 2011 PEX 8114BA PCI Express-to-PCI/PCI-X Bridge Errata Documentation A. Affected Silicon Revision This document details Errata for the following silicon:

More information

AN 829: PCI Express* Avalon -MM DMA Reference Design

AN 829: PCI Express* Avalon -MM DMA Reference Design AN 829: PCI Express* Avalon -MM DMA Reference Design Updated for Intel Quartus Prime Design Suite: 18.0 Subscribe Latest document on the web: PDF HTML Contents Contents 1....3 1.1. Introduction...3 1.1.1.

More information

January 25, 2017 Product Specification Rev1.5. Core Facts. ModelSim-Altera

January 25, 2017 Product Specification Rev1.5. Core Facts. ModelSim-Altera January 25, 2017 Product Specification Rev1.5 Design Gateway Co.,Ltd 54 BB Building 14 th Fl., Room No.1402 Sukhumvit 21 Rd. (Asoke), Klongtoey-Nua, Wattana, Bangkok 10110 Phone: 66(0)2-261-2277 Fax: 66(0)2-261-2290

More information

Virtex-6 FPGA Integrated Block for PCI Express

Virtex-6 FPGA Integrated Block for PCI Express Virtex-6 FPGA Integrated Block for PCI Express User Guide Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products.

More information

Understanding Performance of PCI Express Systems

Understanding Performance of PCI Express Systems White Paper: Virtex-4 and Virtex-5 FPGAs R WP350 (v1.1) September 4, 2008 Understanding Performance of PCI Express Systems By: Alex Goldhammer and John Ayer Jr. PCI Express technology, which is a serialized

More information

e-issn: p-issn:

e-issn: p-issn: Available online at www.ijiere.com International Journal of Innovative and Emerging Research in Engineering e-issn: 2394-3343 p-issn: 2394-5494 PCIe CHECKER LIBRARY GENERATION OF SEQUENCES & DRIVER COMPONENT

More information

Creating PCI Express Links in Intel FPGAs

Creating PCI Express Links in Intel FPGAs Creating PCI Express Links in Intel FPGAs Course Description This course provides all necessary theoretical and practical know how to create PCI Express links in Intel FPGAs. The course goes into great

More information

AN 575: PCI Express-to-DDR2 SDRAM Reference Design

AN 575: PCI Express-to-DDR2 SDRAM Reference Design AN 575: PCI Express-to-DDR2 SDRAM Reference Design April 2009 AN-575-1.0 Introduction This application note introduces the dedicated PCI Express logic block implemented in Arria II GX FPGA hardware and

More information

Errata Documentation. Product Revision Description Status. The following documentation is the baseline functional description of the silicon:

Errata Documentation. Product Revision Description Status. The following documentation is the baseline functional description of the silicon: PEX 8114BC Errata Documentation Revision 1.9 March 2011 PEX 8114BC PCI Express-to-PCI/PCI-X Bridge Errata Documentation A. Affected Silicon Revision This document details Errata for the following silicon:

More information

Point-to-Point Connectivity Using Integrated Endpoint Block for PCI Express Designs Authors: Sunita Jain and Guru Prasanna

Point-to-Point Connectivity Using Integrated Endpoint Block for PCI Express Designs Authors: Sunita Jain and Guru Prasanna Application Note: Virtex-5 Family XAPP869 (v1.0) October 4, 2007 Point-to-Point Connectivity Using Integrated Endpoint Block for PCI Express Designs Authors: Sunita Jain and Guru Prasanna Summary This

More information

ENGN 1630: CPLD Simulation Fall ENGN 1630 Fall Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim

ENGN 1630: CPLD Simulation Fall ENGN 1630 Fall Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim ENGN 1630 Fall 2018 Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim You will use the Xilinx ISim simulation software for the required timing simulation of the XC9572XL CPLD programmable

More information

User Guide of the PCIe SG DMA Engine on AVNET Virtex5 Development Board

User Guide of the PCIe SG DMA Engine on AVNET Virtex5 Development Board User Guide of the PCIe SG DMA Engine on AVNET Virtex5 Development Board V.3 Wenxue Gao weng.ziti@gmail.com 4 September 2 Revision Date Comment. 2 Aug 29 Created.. 26 Nov 29 Correction of some errors..2

More information

PCI Express to PCI/PCI-X Bridge Specification Revision 1.0

PCI Express to PCI/PCI-X Bridge Specification Revision 1.0 PCI Express to PCI/PCI-X Bridge Specification Revision 1.0 July 14, 03 REVISION REVISION HISTORY DATE 1.0 Initial release 7/14/03 PCI-SIG disclaims all warranties and liability for the use of this document

More information

PCI-SIG ENGINEERING CHANGE NOTICE

PCI-SIG ENGINEERING CHANGE NOTICE TITLE: PCI-SIG ENGINEERING CHANGE NOTICE Optimized Buffer Flush/Fill DATE: Updated 30 April 2009, original request: 8 February 2008 AFFECTED DOCUMENTS: SPONSORS: Part I PCI Express Base Specification,

More information

LogiCORE IP Serial RapidIO Gen2 v1.2

LogiCORE IP Serial RapidIO Gen2 v1.2 LogiCORE IP Serial RapidIO Gen2 v1.2 Product Guide Table of Contents Chapter 1: Overview System Overview............................................................ 5 Applications.................................................................

More information

Bus Master DMA Reference Design for the Xilinx Endpoint Block Plus Core for PCI Express Author: Jake Wiltgen

Bus Master DMA Reference Design for the Xilinx Endpoint Block Plus Core for PCI Express Author: Jake Wiltgen XAPP1052 (v1.1) August 22, 2008 Application Note: Virtex-5 Family Bus Master DMA eference Design for the Xilinx Endpoint Block Plus Core for PCI Express Author: Jake Wiltgen Summary This application note

More information

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis,

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, June 2012 Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, ColdFire+, C-Ware, the Energy Efficient Solutions logo, Kinetis, mobilegt, PowerQUICC, Processor Expert, QorIQ, Qorivva,

More information

PCI-SIG ENGINEERING CHANGE NOTICE

PCI-SIG ENGINEERING CHANGE NOTICE PCI-SIG ENGINEERING CHANGE NOTICE TITLE: Multicast DATE: December 14, 2007; approved by PWG May 8, 2008 AFFECTED DOCUMENT: PCI Express Base Specification version 2.0 SPONSORS: Hewlett-Packard, Integrated

More information

Xilinx Answer LogiCORE IP Serial RapidIO Gen2 Debugging and Packet Analysis Guide

Xilinx Answer LogiCORE IP Serial RapidIO Gen2 Debugging and Packet Analysis Guide Xilinx Answer 50166 LogiCORE IP Serial RapidIO Gen2 Debugging and Packet Analysis Guide Important Note: This downloadable PDF of an answer record is provided to enhance its usability and readability. It

More information

Functional Verification of xhci (extensible host controller Interface) for USB 3.1 Using HDL

Functional Verification of xhci (extensible host controller Interface) for USB 3.1 Using HDL Functional Verification of xhci (extensible host controller Interface) for USB 3.1 Using HDL 1 Mr. Dipesh Gehani, 2 Prof. Ketan N. Patel, M.E. Student, Assistant Professor Vishwakarma Government Engineering

More information

Dynamic Phase Alignment for Networking Applications Author: Tze Yi Yeoh

Dynamic Phase Alignment for Networking Applications Author: Tze Yi Yeoh XAPP7 (v.2) July 2, 25 Application te: Virtex-4 Family Dynamic Phase Alignment for Networking Applications Author: Tze Yi Yeoh Summary This application note describes a dynamic phase alignment (DPA) application

More information

2. Software Generation of Advanced Error Reporting Messages

2. Software Generation of Advanced Error Reporting Messages 1. Introduction The PEX 8612 provides two mechanisms for error injection: Carter Buck, Sr. Applications Engineer, PLX Technology PCI Express Advanced Error Reporting Status register bits (which normally

More information

Fibre Channel Arbitrated Loop v2.3

Fibre Channel Arbitrated Loop v2.3 - THIS IS A DISCONTINUED IP CORE - 0 Fibre Channel Arbitrated Loop v2.3 DS518 March 24, 2008 0 0 Introduction The LogiCORE IP Fibre Channel Arbitrated Loop (FC-AL) core provides a flexible, fully verified

More information

Management Component Transport Protocol (MCTP) PCIe VDM Transport Binding Specification

Management Component Transport Protocol (MCTP) PCIe VDM Transport Binding Specification 1 2 3 4 Document Identifier: Date: 2018-11-29 Version: 1.1.0 5 6 7 Management Component Transport Protocol (MCTP) PCIe VDM Transport Binding Specification 8 9 10 11 Supersedes: 1.0.2 Document Class: Normative

More information

Architecture Specification

Architecture Specification PCI-to-PCI Bridge Architecture Specification, Revision 1.2 June 9, 2003 PCI-to-PCI Bridge Architecture Specification Revision 1.1 December 18, 1998 Revision History REVISION ISSUE DATE COMMENTS 1.0 04/05/94

More information

55:131 Introduction to VLSI Design Project #3 -- Fall 2010 64-bit PCI Target with EDAC Due Date: Friday November 19, 2010 Introduction In this project we will modify the PCI Target from project 2 to change

More information

EXOSTIV Dashboard. User's Guide. Rev February 26,

EXOSTIV Dashboard. User's Guide. Rev February 26, EXOSTIV Dashboard User's Guide Rev. 1.0.12- February 26, 2019 https://www.exostivlabs.com 1 Table of Contents Introduction...4 Exostiv Dashboard...4 EXOSTIV Dashboard: Main controls...4 EXOSTIV Dashboard

More information

AXI4-Stream Verification IP v1.0

AXI4-Stream Verification IP v1.0 AXI4-Stream Verification IP v1.0 LogiCORE IP Product Guide Vivado Design Suite Table of Contents IP Facts Chapter 1: Overview Feature Summary..................................................................

More information

October 9, 2018 Product Specification Rev1.1. Core Facts. Documentation. Design File Formats. Additional Items

October 9, 2018 Product Specification Rev1.1. Core Facts. Documentation. Design File Formats. Additional Items October 9, 2018 Product Specification Rev1.1 Design Gateway Co.,Ltd 54 BB Building 14 th Fl., Room No.1402 Sukhumvit 21 Rd. (Asoke), Klongtoey-Nua, Wattana, Bangkok 10110 Phone: 66(0)2-261-2277 Fax: 66(0)2-261-2290

More information

PCI-SIG ENGINEERING CHANGE NOTICE

PCI-SIG ENGINEERING CHANGE NOTICE PCI-SIG ENGINEERING CHANGE NOTICE TITLE: Process Address Space ID (PASID) DATE: March 31, 11 AFFECTED DOCUMENT: PCI Express Base Specification, Version 3.0 SPONSOR: AMD, HP Part I 1. Summary of the Functional

More information

LogiCORE IP AXI DataMover v3.00a

LogiCORE IP AXI DataMover v3.00a LogiCORE IP AXI DataMover v3.00a Product Guide Table of Contents SECTION I: SUMMARY IP Facts Chapter 1: Overview Operating System Requirements..................................................... 7 Feature

More information

An Introduction to the RapidIO. Bus Functional Models. White Paper

An Introduction to the RapidIO. Bus Functional Models. White Paper White Paper An Introduction to the RapidIO Bus Functional Models By: Sam Fuller, President, RapidIO Trade Association Maria Salieva, RapidIO Team Leader, Motorola Global Software Group The RapidIO Bus

More information

PCI Express Avalon-MM DMA Reference Design

PCI Express Avalon-MM DMA Reference Design PCI Express Avalon-MM DMA Reference Design AN-690 2016.05.28 Subscribe Send Feedback Contents Contents 1 AN 690:...3 1.1 Deliverables Included with the Reference Design...3 1.2 Reference Design Functional

More information

By FaaDoOEngineers.com

By FaaDoOEngineers.com ABSTRACT The seemingly endless entanglement of data wires connecting today s electronic devices has become slightly less jumbled with the introduction of Bluetooth technology and the creation of a wireless

More information

100 Gbps/40 Gbps PCS/PMA + MAC IP Core

100 Gbps/40 Gbps PCS/PMA + MAC IP Core 100 Gbps/40 Gbps PCS/PMA + MAC IP Core Getting started guide: 1. Prerequisites: In order to simulate and implement Aitia's 100 Gbps / 40 Gbps Ethernet PCS/PMA + MAC IP core you must meet the following

More information

Xilinx Solutions Guide for PCI Express

Xilinx Solutions Guide for PCI Express Xilinx Solutions Guide for PCI Express User Guide R R Xilinx is disclosing this user guide, manual, release note, and/or specification (the "Documentation") to you solely for use in the development of

More information

LogiCORE IP Serial RapidIO v5.6

LogiCORE IP Serial RapidIO v5.6 DS696 March 1, 2011 Introduction The LogiCORE IP Serial RapidIO Endpoint solution comprises a highly flexible and optimized Serial RapidIO Physical Layer core and a Logical (I/O) and Transport Layer interface.

More information

A PCI Express to PCIX Bridge Optimized for Performance and Area

A PCI Express to PCIX Bridge Optimized for Performance and Area A PCI Express to PCIX Bridge Optimized for Performance and Area by Margaret J. Chong Submitted to the Department of Electrical Engineering and Computer Science in Partial Fulfillment of the Requirements

More information

PCI Express Compiler. PCI Express Compiler Version Issues

PCI Express Compiler. PCI Express Compiler Version Issues January 2007, Compiler Version 2.0.0 Errata Sheet This document addresses known errata and documentation issues for the PCI Express Compiler version 2.0.0. Errata are functional defects or errors, which

More information

Virtex-5 FPGA Integrated Endpoint Block for PCI Express Designs

Virtex-5 FPGA Integrated Endpoint Block for PCI Express Designs Virtex-5 FPGA Integrated Endpoint Block for PCI Express Designs User Guide Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use

More information

Using PEX 8648 SMA based (SI) Card

Using PEX 8648 SMA based (SI) Card Using PEX 8648 SMA based (SI) Card White Paper Version 1.3 July 2010 Website: Technical Support: www.plxtech.com www.plxtech.com/support Copyright 2008 by PLX Technology, Inc. All Rights Reserved Version

More information

Intel Arria 10 and Intel Cyclone 10 Avalon-ST Hard IP for PCIe* Design Example User Guide

Intel Arria 10 and Intel Cyclone 10 Avalon-ST Hard IP for PCIe* Design Example User Guide Intel Arria 10 and Intel Cyclone 10 Avalon-ST Hard IP for PCIe* Design Example User Guide Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents 1 Quick Start Guide... 3 1.1 Directory

More information

Introduction to Verilog and XILINX

Introduction to Verilog and XILINX DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA Introduction to Verilog and XILINX Lab Session Computer Structure WARNING: A written solution of the preliminary

More information

CPLD Experiment 4. XOR and XNOR Gates with Applications

CPLD Experiment 4. XOR and XNOR Gates with Applications CPLD Experiment 4 XOR and XNOR Gates with Applications Based on Xilinx ISE Design Suit 10.1 Department of Electrical & Computer Engineering Florida International University Objectives Materials Examining

More information

AXI Bridge for PCI Express Gen3 Subsystem v3.0

AXI Bridge for PCI Express Gen3 Subsystem v3.0 AXI Bridge for PCI Express Gen3 Subsystem v3.0 Product Guide Vivado Design Suite Table of Contents IP Facts Chapter 1: Overview Feature Summary..................................................................

More information

CARDBUS INTERFACE USER MANUAL

CARDBUS INTERFACE USER MANUAL CARDBUS INTERFACE USER MANUAL 1 Scope The COM-13xx ComBlock modules are PC cards which support communication with a host computer through a standard CardBus interface. These ComBlock modules can be used

More information

CPEN 230L: Introduction to Digital Logic Laboratory Lab #6: Verilog and ModelSim

CPEN 230L: Introduction to Digital Logic Laboratory Lab #6: Verilog and ModelSim CPEN 230L: Introduction to Digital Logic Laboratory Lab #6: Verilog and ModelSim Purpose Define logic expressions in Verilog using register transfer level (RTL) and structural models. Use Quartus II to

More information

Virtex-5 GTP Aurora v2.8

Virtex-5 GTP Aurora v2.8 0 DS538 October 10, 2007 0 0 Introduction The Virtex -5 GTP Aurora core implements the Aurora protocol using the high-speed serial GTP transceivers in Virtex-5 LXT and SXT devices. The core can use up

More information

Virtex-5 FPGA Integrated Endpoint Block for PCI Express Designs

Virtex-5 FPGA Integrated Endpoint Block for PCI Express Designs Virtex-5 FPGA Integrated Endpoint Block for PCI Express Designs User Guide R Xilinx is disclosing this Document and Intellectual Property (hereinafter the Design ) to you for use in the development of

More information

STUDY, DESIGN AND SIMULATION OF FPGA BASED USB 2.0 DEVICE CONTROLLER

STUDY, DESIGN AND SIMULATION OF FPGA BASED USB 2.0 DEVICE CONTROLLER STUDY, DESIGN AND SIMULATION OF FPGA BASED USB 2.0 DEVICE CONTROLLER 1 MS. PARUL BAHUGUNA CD 1 M.E. [VLSI & Embedded System Design] Student, Gujarat Technological University PG School, Ahmedabad, Gujarat.

More information

Commas and Data Alignment Lab

Commas and Data Alignment Lab Lab Workbook Introduction In this lab, you will use commas to control data flow and align serial data into bytes. Objectives After completing this lab, you will be able to: Procedure Define a data alignment

More information

MicroBlaze Tutorial on EDK 10.1 using Sparatan III E Behavioural Simulation of MicroBlaze System

MicroBlaze Tutorial on EDK 10.1 using Sparatan III E Behavioural Simulation of MicroBlaze System MicroBlaze Tutorial on EDK 10.1 using Sparatan III E Behavioural Simulation of MicroBlaze System Ahmed Elhossini January 24, 2010 1 Introduction 1.1 Objectives This tutorial will demonstrate process of

More information

Turbo Encoder Co-processor Reference Design

Turbo Encoder Co-processor Reference Design Turbo Encoder Co-processor Reference Design AN-317-1.2 Application Note Introduction The turbo encoder co-processor reference design is for implemention in an Stratix DSP development board that is connected

More information

PCI and PCI Express Bus Architecture

PCI and PCI Express Bus Architecture PCI and PCI Express Bus Architecture Computer Science & Engineering Department Arizona State University Tempe, AZ 85287 Dr. Yann-Hang Lee yhlee@asu.edu (480) 727-7507 7/23 Buses in PC-XT and PC-AT ISA

More information

Controller IP for a Low Cost FPGA Based USB Device Core

Controller IP for a Low Cost FPGA Based USB Device Core National Conference on Emerging Trends in VLSI, Embedded and Communication Systems-2013 17 Controller IP for a Low Cost FPGA Based USB Device Core N.V. Indrasena and Anitta Thomas Abstract--- In this paper

More information

EEC-484/584 Computer Networks

EEC-484/584 Computer Networks EEC-484/584 Computer Networks Lecture 13 wenbing@ieee.org (Lecture nodes are based on materials supplied by Dr. Louise Moser at UCSB and Prentice-Hall) Outline 2 Review of lecture 12 Routing Congestion

More information

GENERATION OF GRAPH FOR ETHERNET VERIFICATION USING TREK M.Vinodhini* 1, P.D. Rathika 2, J.U.Nambi 2, V.Kanmani 1

GENERATION OF GRAPH FOR ETHERNET VERIFICATION USING TREK M.Vinodhini* 1, P.D. Rathika 2, J.U.Nambi 2, V.Kanmani 1 ISSN 2277-2685 IJESR/May 2015/ Vol-5/Issue-5/187-193 M. Vinodhini et. al./ International Journal of Engineering & Science Research GENERATION OF GRAPH FOR ETHERNET VERIFICATION USING TREK M.Vinodhini*

More information

Single Channel HDLC Core V1.3. LogiCORE Facts. Features. General Description. Applications

Single Channel HDLC Core V1.3. LogiCORE Facts. Features. General Description. Applications Sept 8, 2000 Product Specification R Powered by Xilinx Inc. 2100 Logic Drive San Jose, CA 95124 Phone: +1 408-559-7778 Fax: +1 408-559-7114 E-mail: logicore@xilinx.com URL: www.xilinx.com/ipcenter Support:

More information

Intel Arria 10 or Intel Cyclone 10 Avalon -MM DMA Interface for PCIe* Solutions User Guide

Intel Arria 10 or Intel Cyclone 10 Avalon -MM DMA Interface for PCIe* Solutions User Guide Intel Arria 10 or Intel Cyclone 10 Avalon -MM DMA Interface for PCIe* Solutions User Guide Updated for Intel Quartus Prime Design Suite: 17.1 Subscribe Send Feedback Latest document on the web: PDF HTML

More information

Implementing High-Speed Search Applications with APEX CAM

Implementing High-Speed Search Applications with APEX CAM Implementing High-Speed Search Applications with APEX July 999, ver.. Application Note 9 Introduction Most memory devices store and retrieve data by addressing specific memory locations. For example, a

More information

Inspirel. YAMI4 Requirements. For YAMI4Industry, v page 1

Inspirel. YAMI4 Requirements. For YAMI4Industry, v page 1 YAMI4 Requirements For YAMI4Industry, v.1.3.1 www.inspirel.com info@inspirel.com page 1 Table of Contents Document scope...3 Architectural elements...3 Serializer...3 Socket...3 Input buffer...4 Output

More information

User Guide of the PCIe SG DMA Engine on Xilinx ML605 Virtex6 Development Board

User Guide of the PCIe SG DMA Engine on Xilinx ML605 Virtex6 Development Board User Guide of the PCIe SG DMA Engine on Xilinx ML65 Virtex6 Development Board V1.7 Wenxue Gao weng.ziti@gmail.com Sabatini Simone sabatini.simone@gmail.com 26 March 212 Revision Date Comment 1. 2 Aug 29

More information

Intel Arria 10 Avalon -ST Interface with SR-IOV PCIe* Solutions User Guide

Intel Arria 10 Avalon -ST Interface with SR-IOV PCIe* Solutions User Guide Intel Arria 10 Avalon -ST Interface with SR-IOV PCIe* Solutions User Guide Updated for Intel Quartus Prime Design Suite: 17.1 Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents

More information

Byte-to-Pixel Converter IP User Guide

Byte-to-Pixel Converter IP User Guide FPGA-IPUG-02027 Version 1.0 July 2017 Contents 1. Introduction... 4 1.1. Quick Facts... 4 1.2. Features... 5 1.3. Conventions... 5 1.3.1. Nomenclature... 5 1.3.2. Data Ordering and Data Types... 5 1.3.3.

More information

... Application Note AN-531. PCI Express System Interconnect Software Architecture. Notes Introduction. System Architecture.

... Application Note AN-531. PCI Express System Interconnect Software Architecture. Notes Introduction. System Architecture. PCI Express System Interconnect Software Architecture Application Note AN-531 Introduction By Kwok Kong A multi-peer system using a standard-based PCI Express (PCIe ) multi-port switch as the system interconnect

More information

ML605 PCIe x8 Gen1 Design Creation

ML605 PCIe x8 Gen1 Design Creation ML605 PCIe x8 Gen1 Design Creation March 2010 Copyright 2010 Xilinx XTP044 Note: This presentation applies to the ML605 Overview Virtex-6 PCIe x8 Gen1 Capability Xilinx ML605 Board Software Requirements

More information

Implementation and verification of PCI express interface in a SoC

Implementation and verification of PCI express interface in a SoC Implementation and verification of PCI express interface in a SoC Vinay Kumar Pamula a) and Sai Raghavendra Mantripragada b) Department of ECE, University College of Engineering Kakinada, JNTUK, Kakinada

More information

KCU GBASE-KR Ethernet TRD User Guide

KCU GBASE-KR Ethernet TRD User Guide KCU1250 10GBASE-KR Ethernet TRD User Guide KUCon-TRD05 Vivado Design Suite Revision History The following table shows the revision history for this document. Date Version Revision 04/13/2015 2016.1 Replaced

More information

32 Channel HDLC Core V1.2. Applications. LogiCORE Facts. Features. General Description. X.25 Frame Relay B-channel and D-channel

32 Channel HDLC Core V1.2. Applications. LogiCORE Facts. Features. General Description. X.25 Frame Relay B-channel and D-channel May 3, 2000 Xilinx Inc. 2100 Logic Drive San Jose, CA 95124 Phone: +1 408-559-7778 Fax: +1 408-559-7114 E-mail: logicore@xilinx.com URL: www.xilinx.com/ipcenter Support: www.support.xilinx.com Features

More information

Configurable LocalLink CRC Reference Design Author: Nanditha Jayarajan

Configurable LocalLink CRC Reference Design Author: Nanditha Jayarajan XAPP562 (v1.1.1) April 20, 2007 Application Note: Virtex Series and Virtex-II Family Configurable LocalLink CC eference Design Author: Nanditha Jayarajan Summary The Cyclic edundancy Check (CC) is a checksum

More information

Arria 10 Avalon-MM DMA Interface for PCIe Solutions

Arria 10 Avalon-MM DMA Interface for PCIe Solutions Arria 10 Avalon-MM DMA Interface for PCIe Solutions User Guide Last updated for Altera Complete Design Suite: 14.0 Arria 10 Edition Subscribe UG-01145_avmm_dma 101 Innovation Drive San Jose, CA 95134 www.altera.com

More information

The Optimization of a Design Using VHDL Concepts

The Optimization of a Design Using VHDL Concepts The Optimization of a Design Using VHDL Concepts Iuliana CHIUCHISAN 1, Alin Dan POTORAC 2 "Stefan cel Mare" University of Suceava str.universitatii nr.13, RO-720229 Suceava 1 iuliap@eed.usv.ro, 2 alinp@eed.usv.ro

More information

PCI-X Addendum to the PCI Local Bus Specification. Revision 1.0

PCI-X Addendum to the PCI Local Bus Specification. Revision 1.0 PCI-X Addendum to the PCI Local Bus Specification Revision 1.0 September 22, 1999 REVISION REVISION HISTORY DATE 1.0 Initial release. 9/22/99 The PCI Special Interest Group disclaims all warranties and

More information

PCI Compliance Checklist

PCI Compliance Checklist PCI Compliance Checklist Actel CorePCIF v2.02 January 2006 Device is: Reserved () Device Address: 0x80000000 Vendor ID: 0x11AA Device ID: 0x6004 Revision 2.2 PCI Compliance Checklist Rev. 2.2 1 Component

More information