Forum Discussion
Hi SK Lim,
I found the cause of the error. Parameter enable_sriov_hwtcl must be equal to 1 (hip settings in hip_1811 file). I compiled the project with the corrected parameter in the latest version (v18.1.1).
Gen3 x16 configuration passed tests.
The reason is in the adapter.
Path: .../hip/altera_pcie_s10_gen3x16_adapter_inst/u_rx_st_if
Module: u_rx_st_if (altera_pcie_s10_gen3x16_rx_st_if)
module altera_pcie_s10_gen3x16_rx_st_if
#(
parameter pld_rx_parity_ena = "enable",
parameter enable_sriov_hwtcl = 0
)(
...
//avst rx interface
...
input logic rx_st_func_num_i,
...
output logic [1:0] rx_st_func_num_o,
...
);
localparam par_sriov = (pld_rx_parity_ena == "enable" && enable_sriov_hwtcl)? 1 : 0;
localparam only_sriov = (pld_rx_parity_ena != "enable" && enable_sriov_hwtcl)? 1 : 0;
localparam only_par = (pld_rx_parity_ena == "enable" && !enable_sriov_hwtcl)? 1 : 0;
...
//async FIFO read interface
always @ (posedge clk250)..
begin
...
if (rst_clk250)
begin
...
rx_st_func_num_o <= '0;
...
end
else
begin
...
rx_st_func_num_o <= (par_sriov) ? (rx_fifo_rdreq_q? {rx_fifo_rddata_hi[304], rx_fifo_rddata_lo[304]} : '0) : (only_sriov) ? (rx_fifo_rdreq_q? {rx_fifo_rddata_hi[272], rx_fifo_rddata_lo[272]} : '0) : '0 ;
...
end
end // always @ (posedge clk250)
...
endmodule
If enable_sriov_hwtcl = 0 then par_sriov = 0, only_sriov = 0 and rx_st_func_num_o is always zero.
I have two questions.
1. Is this a wrong description in the documentation?
From documentation:
4.2. Multifunction and SR-IOV System Settings
Table 13. Multifunction and SR-IOV System Settings
...
Enable SR-IOV Support On/Off When On, the variant supports multiple VFs. When Off, supports PFs only. SR-IOV is only available in H-Tile devices.
...
My device is L-Tile. For non-Gen3x16 configurations, this parameter can be omitted (tested in 17.1.0, 18.0.0, 18.1.0, 18.1.1). For Gen3x16 physical function 1 is not available (enable_sriov_hwtcl = 0).
My system is built using composition scripts. Adding an HIP instance with 2 functions:
Before (non-Gen3x16 configurations):
add_instance HIP altera_pcie_s10_hip_ast
...
set_instance_parameter_value HIP enable_multi_func_hwtcl 1
set_instance_parameter_value HIP total_pf_count_hwtcl 2
...
After:
add_instance HIP altera_pcie_s10_hip_ast
...
set_instance_parameter_value HIP enable_multi_func_hwtcl 1
set_instance_parameter_value HIP enable_sriov_hwtcl 1 <-- FIX Gen3x16
set_instance_parameter_value HIP total_pf_count_hwtcl 2
...
2. I use the parameter enable_multi_func_hwtcl, its was in 17.1:
4 Parameters
...
Table 10. System Settings
...
Enable multiple physical functions On/Off When On, you can enable multiple physical functions (PFs) on the Multifunction and SR-IOV System Settings tab. You can also also enable TLP Processing
Hints (TPH) and Address Translation Services (ATS) on the TPH/ATS Capabilities tab
...
4.2 Multifunction and SR-IOV System Settings
...
Enable SR-IOV Support On/Off When On, the variant supports multiple VFs. When Off, supports PFs only.
...
This parameter is missing in the latest documentation, but I can assign it in the scripts. Do I need to use it?
The description of SR-IOV is also different. In the latest edition there is a clarification about the tile. Is that the correct description?
Best regards,
Alex