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

where to find testbench with Scalable Switch Intel® FPGA IP for PCI Express?

wilson1977
Beginner
696 Views

After generate a R-tile scalable switch ip example for AGIB027R29A1E2VR3  with quartus25.1 ,there is no testbench.

 

how to do simuation?

Labels (1)
0 Kudos
11 Replies
Wincent_Altera
Employee
625 Views

Hi,

 

Which simulator that you try to use ?

You may find the simulation folder under ../xxx../switchIP/intel_pcie_sep_rtile_top_0_example_design/switch_ed/sim/

Please ensure that you enable the simulation tab upon design example generation

Wincent_Altera_0-1748234714515.png

 



Let me know if you still unable to find it.

 

Regards,

Wincent_Altera

 

0 Kudos
wilson1977
Beginner
622 Views

There is only a sim top file under switch_ed/sim directory,no testbench file.

can you snapshot?

0 Kudos
Wincent_Altera
Employee
589 Views

Hi Wilson,

Wincent_Altera_1-1748234823337.png

If you are refer to the xxx_tb.v file you can refer to switch_ed.v
Let me know if I am not answering your question or I miss-understand anything.

Regards,
Wincent_Altera

0 Kudos
wilson1977
Beginner
571 Views

There are two demux_1stage_pipeline code under switch_user_logic/demux.v .The upper parts are commented.The lower parts are opened.

 

I want to use the  upper parts code(commented). can it work?

 

// --------------------------------------------------------------------------------
// | single buffered pipeline stage
// --------------------------------------------------------------------------------
//module demux_1stage_pipeline
// #( parameter PAYLOAD_WIDTH = 8 )
// ( input clk,
// input reset_n,
// output reg in_ready,
// input in_valid,
// input [PAYLOAD_WIDTH-1:0] in_payload,
// input out_ready,
// output reg out_valid,
// output reg [PAYLOAD_WIDTH-1:0] out_payload
// );
//
// reg in_ready1;
// always @* begin
// in_ready = out_ready || ~out_valid;
// // in_ready = in_ready1;
// // if (!out_ready)
// // in_ready = 0;
// end
//
// always @ (posedge clk) begin
// if (!reset_n) begin
// in_ready1 <= 0;
// out_valid <= 0;
// out_payload <= 0;
// end else begin
// in_ready1 <= out_ready || !out_valid;
// if (in_valid) begin
// out_valid <= 1;
// end else if (out_ready) begin
// out_valid <= 0;
// end
// if(in_valid && in_ready) begin
// out_payload <= in_payload;
// end
// end // else: !if(!reset_n)
// end // always @ (negedge reset_n, posedge clk)
//endmodule //
module demux_1stage_pipeline
#( parameter PAYLOAD_WIDTH = 8 )
( input clk,
input reset_n,
output reg in_ready,
input in_valid,
input [PAYLOAD_WIDTH-1:0] in_payload,
input out_ready,
output reg out_valid,
output reg [PAYLOAD_WIDTH-1:0] out_payload
);

always @ (posedge clk or negedge reset_n)
begin
if (!reset_n)
begin
out_valid <= 0;
out_payload <= 0;
in_ready <= 0;
end
else
begin
in_ready <= out_ready;
out_valid <= in_valid;
out_payload <= in_payload;
end
end
endmodule//

0 Kudos
Wincent_Altera
Employee
544 Views

Hi Wilson,

Is there any special reason you need to used the commended part ?
Just try to understand more and check if the application is ideal or not.

I want to use the  upper parts code(commented). can it work?
>> Well,  as I go through the code, the (commented) code seen to be likely more robust in handling backpressure and ensuring data integrity in a pipeline scenario.
>> Meanwhile for the (uncommented) code simplifies the logic by directly mapping input signals to output signals
>> Answering your question, yes you can - depends on your application and needs. As long as the compilation PASS , it shall be no problem.

Regards,
WIncent_Altera

0 Kudos
wilson1977
Beginner
495 Views

The upper slice style has a buffer. 

0 Kudos
Wincent_Altera
Employee
478 Views

Hi Wilson,

That why it is depends on your application/needs.

Let me know if you have further question.

Regards,
Wincent_Altera

0 Kudos
wilson1977
Beginner
397 Views

But,the upper code is commented. 

Can it work after uncommented?

 

 

0 Kudos
Wincent_Altera
Employee
241 Views

Hi Wilson,

Based on the code , it seen to be different usage. The existing code shall be sufficient enough to test the overall performance.
If this code is something compulsory to you. The best way to confirm this is to re-run the compilation (after uncommented).
IF you seeing any issue on the compilation, please let me know , we can work together to solve this.

Regards,
Wincent_Altera

0 Kudos
Wincent_Altera
Employee
141 Views

Hi,


Is there anything else you think I could help you ?


Regards,

Wincent_Altera


0 Kudos
Wincent_Altera
Employee
64 Views

Hi,


Let me know if you need more time to response to this cases.


Regards

Wincent_Altera


0 Kudos
Reply