FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6670 Discussions

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

Derek_Teng
Novice
1,251 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,155 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,156 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