|
SpaceWire Switch Core TestbenchThe VHDL SpaceWire testbench provides a complete test harness around the SpaceWire Switch Core (Router) and allows data to be generated, examined and consumed.The testbench philosophy is based on the above three requirements:-
The testbench top-level can be used to test any configuration of the Switch Core having anywhere between 2 and 32 ports. Listed below are some example stimuli that can be used to test a 4 port version of the Switch Core (1 user port plus 3 external ports). Example 1 - Nice & EasyThis example shows a fixed packet flow from a single input port to a single output port using hardware addressing.
The two important reports to examine in this example are input_02.txt and output_03.txt. The following point should also be noted from this example:-
Example 2 - BottleneckThis example shows a fixed packet flow from every input port to a single output port using hardware addressing.
The four important reports to examine in this example are input_01.txt, input_02.txt, input_03.txt and output_02.txt. The following point should also be noted from this example:-
Example 3 - Everything to EverywhereThis example shows random packet flow from every input port to every output port using hardware addressing.
All reports are worth examining in this example and for readability the first byte of each packet is set to the number of the input port where it originated. Example 4 - User PortThis example shows how to communicate with the internal User Port.
The two important reports to examine in this example are input_01.txt and output_01.txt. The following point should also be noted from this example:-
Example 5 - Logical AddressingThis example shows how to set-up and use two Logical Addresses, one with header deletion and one without.
The three important reports to examine in this example are input_01.txt, output_02.txt and output_03.txt. The following points should also be noted from this example:-
Example 6 - GroupingThis example shows how to set-up and use two Grouped Logical Addresses, one with header deletion and one without.
All reports are worth examining in this example and for readability the first byte of each packet is set to the number of the input port where it originated. The following points should also be noted from this example:-
Example 7 - Disconnected PortsThis example shows how Grouped Logical Addressed packets are automatically routed to the available and connected ports. For this example to work the active signal assignment in the testbench module must be commented out and the process beneath it uncommented.
All reports are worth examining in this example and for readability the first byte of each packet is set to the number of the input port where it originated. The following points should also be noted from this example:-
SummaryThe above stimuli only touch the surface of what is possible with PGive, PTake and PSnoop. By using the full capabilities of these modules comprehensive testbenches can be created within a very short space of time.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||