FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
6673 Discussions

Question about TXS interface of the PCIe IP core (AVMM) for Cyclone 10 GX

Derek_Teng
Novice
1,265 Views

Hi

Regarding the txs_address_i[w-1:0] of the TXS interface of the PCIe IP core (AVMM) for Cyclone 10 GX, the user manual states: "Address of the read or write request from the external Avalon-MM master. This address translates to 64-bit or 32-bit PCI Express addresses based on the translation table. The value is determined when the system is created."

In addition, it also states: "Note: The PCI Express-to-Avalon-MM bridge supports both 32- and 64-bit addresses. If you select 64-bit addressing the bridge does not perform address translation."

When I instantiate the PCIe IP core and set the Avalon-MM address width to 64-bit, the parameters "Number of address pages" and "Size of address pages" will not appear. Instead, there is "Address width of accessible PCIe memory space". The value of w in txs_address_i[w-1:0] is equal to the value of the parameter "Address width of accessible PCIe memory space".

My questions are:

When I choose to set the Avalon-MM address width to 64-bit, is the address on txs_address_i equal to the address of the PCIe domain to be accessed?

If so, do I need to set the "Address width of accessible PCIe memory space" to 64?

If I don't set it to 64, then txs_address_i cannot cover the 64-bit address.

If the PCIe core does not perform address translation, how can it obtain the 64-bit PCIe domain address through this address that is less than 64 bits?

In addition, it should be noted that my PCIe address is 64-bit.

0 Kudos
1 Solution
TanmayK_Altera
Beginner
1,169 Views

When I choose to set the Avalon-MM address width to 64-bit, is the address on txs_address_i equal to the address of the PCIe domain to be accessed?
Yes. When the Avalon-MM address width is configured to 64 bits, the value presented on 
txs_address_i is sent directly as the PCIe address for the transaction. The bridge performs no address translation.

If so, do I need to set the "Address width of accessible PCIe memory space" to 64?

Yes, if you need to access the full 64-bit PCIe address space, you must set the "Address width of accessible PCIe memory space" parameter to 64.

 

If I don't set it to 64, then txs_address_i cannot cover the 64-bit address.

If you configure the "Address width of accessible PCIe memory space" to be less than 64, then txs_address_i cannot represent the entire 64-bit PCIe address range. Only a subset of the PCIe address space will be accessible.

 

If the PCIe core does not perform address translation, how can it obtain the 64-bit PCIe domain address through this address that is less than 64 bits?

 If the Avalon-MM address width or the "Address width of accessible PCIe memory space" parameter is less than 64 bits, so only a partial range of the PCIe address space can be accessed. To access the full 64-bit PCIe address space, both parameters must be set to 64.

 

Let us know if you have any further doubts.

References:

View solution in original post

1 Reply
TanmayK_Altera
Beginner
1,170 Views

When I choose to set the Avalon-MM address width to 64-bit, is the address on txs_address_i equal to the address of the PCIe domain to be accessed?
Yes. When the Avalon-MM address width is configured to 64 bits, the value presented on 
txs_address_i is sent directly as the PCIe address for the transaction. The bridge performs no address translation.

If so, do I need to set the "Address width of accessible PCIe memory space" to 64?

Yes, if you need to access the full 64-bit PCIe address space, you must set the "Address width of accessible PCIe memory space" parameter to 64.

 

If I don't set it to 64, then txs_address_i cannot cover the 64-bit address.

If you configure the "Address width of accessible PCIe memory space" to be less than 64, then txs_address_i cannot represent the entire 64-bit PCIe address range. Only a subset of the PCIe address space will be accessible.

 

If the PCIe core does not perform address translation, how can it obtain the 64-bit PCIe domain address through this address that is less than 64 bits?

 If the Avalon-MM address width or the "Address width of accessible PCIe memory space" parameter is less than 64 bits, so only a partial range of the PCIe address space can be accessed. To access the full 64-bit PCIe address space, both parameters must be set to 64.

 

Let us know if you have any further doubts.

References:

Reply