Expanded test 1 and test 2 of RTPS Reader with different Generics

Tests are added for different Generics Settings (Durability,
Reliability, Keyed Topic).
Test 2 of RTPS Reader (User Tarffic Handling) is extended with a few
extra test cases.
This commit is contained in:
Greek 2021-02-21 15:20:27 +01:00
parent 4530688c8b
commit 0f7750bd5a
17 changed files with 6185 additions and 162 deletions

View File

@ -1,64 +0,0 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -divider SYSTEM
add wave -noupdate /l0_rtps_reader_test1/uut/clk
add wave -noupdate /l0_rtps_reader_test1/uut/reset
add wave -noupdate -divider INPUT
add wave -noupdate /l0_rtps_reader_test1/uut/empty_meta
add wave -noupdate /l0_rtps_reader_test1/uut/rd_meta
add wave -noupdate /l0_rtps_reader_test1/uut/last_word_in_meta
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test1/uut/data_in_meta
add wave -noupdate -divider OUTPUT
add wave -noupdate /l0_rtps_reader_test1/uut/start_hc
add wave -noupdate /l0_rtps_reader_test1/uut/opcode_hc
add wave -noupdate /l0_rtps_reader_test1/uut/ack_hc
add wave -noupdate /l0_rtps_reader_test1/uut/done_hc
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test1/uut/data_out_hc
add wave -noupdate -divider {MAIN FSM}
add wave -noupdate /l0_rtps_reader_test1/uut/stage
add wave -noupdate /l0_rtps_reader_test1/uut/stage_next
add wave -noupdate /l0_rtps_reader_test1/uut/cnt
add wave -noupdate -divider {MEMORY FSM}
add wave -noupdate /l0_rtps_reader_test1/uut/mem_op_done
add wave -noupdate /l0_rtps_reader_test1/uut/mem_op_start
add wave -noupdate /l0_rtps_reader_test1/uut/mem_opcode
add wave -noupdate /l0_rtps_reader_test1/uut/mem_stage
add wave -noupdate /l0_rtps_reader_test1/uut/mem_stage_next
add wave -noupdate /l0_rtps_reader_test1/uut/mem_cnt
add wave -noupdate /l0_rtps_reader_test1/uut/mem_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test1/uut/mem_addr_base
add wave -noupdate -expand -group MEM_CTRL -radix unsigned /l0_rtps_reader_test1/uut/mem_addr
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1/uut/mem_valid_in
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1/uut/mem_ready_in
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1/uut/mem_read
add wave -noupdate -expand -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test1/uut/mem_write_data
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1/uut/abort_read
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1/uut/mem_valid_out
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1/uut/mem_ready_out
add wave -noupdate -expand -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test1/uut/mem_read_data
add wave -noupdate -divider TESTBENCH
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1/start
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1/cnt_stim
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1/packet_sent
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1/mem_check_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1/stim_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1/test_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1/uut/idle_sig
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {Begin {8325000 ps} 1} {Error {9725000 ps} 1} {Cursor {9175000 ps} 0}
quietly wave cursor active 3
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 1
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ns
update
WaveRestoreZoom {8888200 ps} {9912200 ps}

View File

@ -0,0 +1,64 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -divider SYSTEM
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/clk
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/reset
add wave -noupdate -divider INPUT
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/empty_meta
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/rd_meta
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/last_word_in_meta
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test1_vrk/uut/data_in_meta
add wave -noupdate -divider OUTPUT
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/start_hc
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/opcode_hc
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/ack_hc
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/done_hc
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test1_vrk/uut/data_out_hc
add wave -noupdate -divider {MAIN FSM}
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/stage
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/stage_next
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/cnt
add wave -noupdate -divider {MEMORY FSM}
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/mem_op_done
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/mem_op_start
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/mem_opcode
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/mem_stage
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/mem_stage_next
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/mem_cnt
add wave -noupdate /l0_rtps_reader_test1_vrk/uut/mem_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test1_vrk/uut/mem_addr_base
add wave -noupdate -expand -group MEM_CTRL -radix unsigned /l0_rtps_reader_test1_vrk/uut/mem_addr
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1_vrk/uut/mem_valid_in
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1_vrk/uut/mem_ready_in
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1_vrk/uut/mem_read
add wave -noupdate -expand -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test1_vrk/uut/mem_write_data
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1_vrk/uut/abort_read
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1_vrk/uut/mem_valid_out
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1_vrk/uut/mem_ready_out
add wave -noupdate -expand -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test1_vrk/uut/mem_read_data
add wave -noupdate -divider TESTBENCH
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vrk/start
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vrk/cnt_stim
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vrk/packet_sent
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vrk/mem_check_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vrk/stim_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vrk/test_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vrk/uut/idle_sig
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {Begin {8325000 ps} 1} {Error {9725000 ps} 1} {Cursor {9175000 ps} 0}
quietly wave cursor active 3
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 1
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ns
update
WaveRestoreZoom {8888200 ps} {9912200 ps}

View File

@ -1,82 +0,0 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -divider SYSTEM
add wave -noupdate /l0_rtps_reader_test2/uut/clk
add wave -noupdate /l0_rtps_reader_test2/uut/reset
add wave -noupdate -divider INPUT
add wave -noupdate -group META /l0_rtps_reader_test2/uut/empty_meta
add wave -noupdate -group META /l0_rtps_reader_test2/uut/rd_meta
add wave -noupdate -group META /l0_rtps_reader_test2/uut/last_word_in_meta
add wave -noupdate -group META -radix hexadecimal /l0_rtps_reader_test2/uut/data_in_meta
add wave -noupdate -expand -group USER /l0_rtps_reader_test2/uut/empty_user
add wave -noupdate -expand -group USER /l0_rtps_reader_test2/uut/rd_user
add wave -noupdate -expand -group USER -radix hexadecimal /l0_rtps_reader_test2/uut/data_in_user
add wave -noupdate -expand -group USER /l0_rtps_reader_test2/uut/last_word_in_user
add wave -noupdate -divider HC
add wave -noupdate /l0_rtps_reader_test2/uut/start_hc
add wave -noupdate /l0_rtps_reader_test2/uut/opcode_hc
add wave -noupdate /l0_rtps_reader_test2/uut/ack_hc
add wave -noupdate /l0_rtps_reader_test2/uut/valid_out_hc
add wave -noupdate /l0_rtps_reader_test2/uut/ready_out_hc
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test2/uut/data_out_hc
add wave -noupdate /l0_rtps_reader_test2/uut/last_word_out_hc
add wave -noupdate /l0_rtps_reader_test2/uut/done_hc
add wave -noupdate /l0_rtps_reader_test2/uut/ret_hc
add wave -noupdate -divider {MAIN FSM}
add wave -noupdate /l0_rtps_reader_test2/uut/stage
add wave -noupdate /l0_rtps_reader_test2/uut/stage_next
add wave -noupdate /l0_rtps_reader_test2/uut/cnt
add wave -noupdate -divider {MEMORY FSM}
add wave -noupdate /l0_rtps_reader_test2/uut/mem_op_done
add wave -noupdate /l0_rtps_reader_test2/uut/mem_op_start
add wave -noupdate /l0_rtps_reader_test2/uut/mem_opcode
add wave -noupdate /l0_rtps_reader_test2/uut/mem_stage
add wave -noupdate /l0_rtps_reader_test2/uut/mem_stage_next
add wave -noupdate /l0_rtps_reader_test2/uut/mem_cnt
add wave -noupdate /l0_rtps_reader_test2/uut/mem_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test2/uut/mem_addr_base
add wave -noupdate -childformat {{/l0_rtps_reader_test2/uut/mem_endpoint_data.guid -radix hexadecimal} {/l0_rtps_reader_test2/uut/mem_endpoint_data.addr -radix hexadecimal} {/l0_rtps_reader_test2/uut/mem_endpoint_data.portn -radix hexadecimal} {/l0_rtps_reader_test2/uut/mem_endpoint_data.next_seq_nr -radix unsigned -childformat {{/l0_rtps_reader_test2/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} {/l0_rtps_reader_test2/uut/mem_endpoint_data.lease_deadline -radix hexadecimal} {/l0_rtps_reader_test2/uut/mem_endpoint_data.res_time -radix hexadecimal}} -subitemconfig {/l0_rtps_reader_test2/uut/mem_endpoint_data.guid {-height 15 -radix hexadecimal} /l0_rtps_reader_test2/uut/mem_endpoint_data.addr {-height 15 -radix hexadecimal} /l0_rtps_reader_test2/uut/mem_endpoint_data.portn {-height 15 -radix hexadecimal} /l0_rtps_reader_test2/uut/mem_endpoint_data.next_seq_nr {-height 15 -radix unsigned -childformat {{/l0_rtps_reader_test2/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} /l0_rtps_reader_test2/uut/mem_endpoint_data.next_seq_nr(0) {-height 15 -radix unsigned} /l0_rtps_reader_test2/uut/mem_endpoint_data.next_seq_nr(1) {-height 15 -radix unsigned} /l0_rtps_reader_test2/uut/mem_endpoint_data.lease_deadline {-height 15 -radix hexadecimal} /l0_rtps_reader_test2/uut/mem_endpoint_data.res_time {-height 15 -radix hexadecimal}} /l0_rtps_reader_test2/uut/mem_endpoint_data
add wave -noupdate -group MEM_CTRL -radix unsigned /l0_rtps_reader_test2/uut/mem_addr
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2/uut/mem_valid_in
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2/uut/mem_ready_in
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2/uut/mem_read
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2/uut/mem_write_data
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2/uut/abort_read
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2/uut/mem_valid_out
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2/uut/mem_ready_out
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2/uut/mem_read_data
add wave -noupdate -divider TESTBENCH
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2/start_meta
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2/packet_sent_meta
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2/start_user
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2/packet_sent_user
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2/check_stage
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2/out_check_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2/stim_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2/test_done
add wave -noupdate -divider GAP
add wave -noupdate -radix unsigned /l0_rtps_reader_test2/uut/gap_start
add wave -noupdate -radix unsigned /l0_rtps_reader_test2/uut/gap_list_base
add wave -noupdate -radix unsigned /l0_rtps_reader_test2/uut/gap_list_end
add wave -noupdate /l0_rtps_reader_test2/uut/bitmap_latch
add wave -noupdate /l0_rtps_reader_test2/uut/bitmap_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test2/uut/next_seq_nr
add wave -noupdate -radix unsigned /l0_rtps_reader_test2/uut/bitmap_cnt
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {Begin {49575000 ps} 1} {Error {53225000 ps} 1} {Cursor {50275000 ps} 0}
quietly wave cursor active 3
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 1
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ns
update
WaveRestoreZoom {49779800 ps} {50803800 ps}

View File

@ -0,0 +1,82 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -divider SYSTEM
add wave -noupdate /l0_rtps_reader_test2_trk/uut/clk
add wave -noupdate /l0_rtps_reader_test2_trk/uut/reset
add wave -noupdate -divider INPUT
add wave -noupdate -group META /l0_rtps_reader_test2_trk/uut/empty_meta
add wave -noupdate -group META /l0_rtps_reader_test2_trk/uut/rd_meta
add wave -noupdate -group META /l0_rtps_reader_test2_trk/uut/last_word_in_meta
add wave -noupdate -group META -radix hexadecimal /l0_rtps_reader_test2_trk/uut/data_in_meta
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_trk/uut/empty_user
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_trk/uut/rd_user
add wave -noupdate -expand -group USER -radix hexadecimal /l0_rtps_reader_test2_trk/uut/data_in_user
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_trk/uut/last_word_in_user
add wave -noupdate -divider HC
add wave -noupdate /l0_rtps_reader_test2_trk/uut/start_hc
add wave -noupdate /l0_rtps_reader_test2_trk/uut/opcode_hc
add wave -noupdate /l0_rtps_reader_test2_trk/uut/ack_hc
add wave -noupdate /l0_rtps_reader_test2_trk/uut/valid_out_hc
add wave -noupdate /l0_rtps_reader_test2_trk/uut/ready_out_hc
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test2_trk/uut/data_out_hc
add wave -noupdate /l0_rtps_reader_test2_trk/uut/last_word_out_hc
add wave -noupdate /l0_rtps_reader_test2_trk/uut/done_hc
add wave -noupdate /l0_rtps_reader_test2_trk/uut/ret_hc
add wave -noupdate -divider {MAIN FSM}
add wave -noupdate /l0_rtps_reader_test2_trk/uut/stage
add wave -noupdate /l0_rtps_reader_test2_trk/uut/stage_next
add wave -noupdate /l0_rtps_reader_test2_trk/uut/cnt
add wave -noupdate -divider {MEMORY FSM}
add wave -noupdate /l0_rtps_reader_test2_trk/uut/mem_op_done
add wave -noupdate /l0_rtps_reader_test2_trk/uut/mem_op_start
add wave -noupdate /l0_rtps_reader_test2_trk/uut/mem_opcode
add wave -noupdate /l0_rtps_reader_test2_trk/uut/mem_stage
add wave -noupdate /l0_rtps_reader_test2_trk/uut/mem_stage_next
add wave -noupdate /l0_rtps_reader_test2_trk/uut/mem_cnt
add wave -noupdate /l0_rtps_reader_test2_trk/uut/mem_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_trk/uut/mem_addr_base
add wave -noupdate -childformat {{/l0_rtps_reader_test2_trk/uut/mem_endpoint_data.guid -radix hexadecimal} {/l0_rtps_reader_test2_trk/uut/mem_endpoint_data.addr -radix hexadecimal} {/l0_rtps_reader_test2_trk/uut/mem_endpoint_data.portn -radix hexadecimal} {/l0_rtps_reader_test2_trk/uut/mem_endpoint_data.next_seq_nr -radix unsigned -childformat {{/l0_rtps_reader_test2_trk/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2_trk/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} {/l0_rtps_reader_test2_trk/uut/mem_endpoint_data.lease_deadline -radix hexadecimal} {/l0_rtps_reader_test2_trk/uut/mem_endpoint_data.res_time -radix hexadecimal}} -subitemconfig {/l0_rtps_reader_test2_trk/uut/mem_endpoint_data.guid {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_trk/uut/mem_endpoint_data.addr {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_trk/uut/mem_endpoint_data.portn {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_trk/uut/mem_endpoint_data.next_seq_nr {-height 15 -radix unsigned -childformat {{/l0_rtps_reader_test2_trk/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2_trk/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} /l0_rtps_reader_test2_trk/uut/mem_endpoint_data.next_seq_nr(0) {-height 15 -radix unsigned} /l0_rtps_reader_test2_trk/uut/mem_endpoint_data.next_seq_nr(1) {-height 15 -radix unsigned} /l0_rtps_reader_test2_trk/uut/mem_endpoint_data.lease_deadline {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_trk/uut/mem_endpoint_data.res_time {-height 15 -radix hexadecimal}} /l0_rtps_reader_test2_trk/uut/mem_endpoint_data
add wave -noupdate -group MEM_CTRL -radix unsigned /l0_rtps_reader_test2_trk/uut/mem_addr
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_trk/uut/mem_valid_in
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_trk/uut/mem_ready_in
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_trk/uut/mem_read
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2_trk/uut/mem_write_data
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_trk/uut/abort_read
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_trk/uut/mem_valid_out
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_trk/uut/mem_ready_out
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2_trk/uut/mem_read_data
add wave -noupdate -divider TESTBENCH
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_trk/start_meta
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_trk/packet_sent_meta
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_trk/start_user
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_trk/packet_sent_user
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_trk/check_stage
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_trk/out_check_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_trk/stim_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_trk/test_done
add wave -noupdate -divider GAP
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_trk/uut/gap_start
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_trk/uut/gap_list_base
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_trk/uut/gap_list_end
add wave -noupdate /l0_rtps_reader_test2_trk/uut/bitmap_latch
add wave -noupdate /l0_rtps_reader_test2_trk/uut/bitmap_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_trk/uut/next_seq_nr
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_trk/uut/bitmap_cnt
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {Begin {49575000 ps} 1} {Error {53225000 ps} 1} {Cursor {50275000 ps} 0}
quietly wave cursor active 3
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 1
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ns
update
WaveRestoreZoom {49779800 ps} {50803800 ps}

View File

@ -0,0 +1,82 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -divider SYSTEM
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/clk
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/reset
add wave -noupdate -divider INPUT
add wave -noupdate -group META /l0_rtps_reader_test2_vbk/uut/empty_meta
add wave -noupdate -group META /l0_rtps_reader_test2_vbk/uut/rd_meta
add wave -noupdate -group META /l0_rtps_reader_test2_vbk/uut/last_word_in_meta
add wave -noupdate -group META -radix hexadecimal /l0_rtps_reader_test2_vbk/uut/data_in_meta
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_vbk/uut/empty_user
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_vbk/uut/rd_user
add wave -noupdate -expand -group USER -radix hexadecimal /l0_rtps_reader_test2_vbk/uut/data_in_user
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_vbk/uut/last_word_in_user
add wave -noupdate -divider HC
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/start_hc
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/opcode_hc
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/ack_hc
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/valid_out_hc
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/ready_out_hc
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test2_vbk/uut/data_out_hc
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/last_word_out_hc
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/done_hc
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/ret_hc
add wave -noupdate -divider {MAIN FSM}
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/stage
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/stage_next
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/cnt
add wave -noupdate -divider {MEMORY FSM}
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/mem_op_done
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/mem_op_start
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/mem_opcode
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/mem_stage
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/mem_stage_next
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/mem_cnt
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/mem_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vbk/uut/mem_addr_base
add wave -noupdate -childformat {{/l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.guid -radix hexadecimal} {/l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.addr -radix hexadecimal} {/l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.portn -radix hexadecimal} {/l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.next_seq_nr -radix unsigned -childformat {{/l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} {/l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.lease_deadline -radix hexadecimal} {/l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.res_time -radix hexadecimal}} -subitemconfig {/l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.guid {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.addr {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.portn {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.next_seq_nr {-height 15 -radix unsigned -childformat {{/l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} /l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.next_seq_nr(0) {-height 15 -radix unsigned} /l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.next_seq_nr(1) {-height 15 -radix unsigned} /l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.lease_deadline {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vbk/uut/mem_endpoint_data.res_time {-height 15 -radix hexadecimal}} /l0_rtps_reader_test2_vbk/uut/mem_endpoint_data
add wave -noupdate -group MEM_CTRL -radix unsigned /l0_rtps_reader_test2_vbk/uut/mem_addr
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vbk/uut/mem_valid_in
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vbk/uut/mem_ready_in
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vbk/uut/mem_read
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2_vbk/uut/mem_write_data
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vbk/uut/abort_read
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vbk/uut/mem_valid_out
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vbk/uut/mem_ready_out
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2_vbk/uut/mem_read_data
add wave -noupdate -divider TESTBENCH
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vbk/start_meta
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vbk/packet_sent_meta
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vbk/start_user
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vbk/packet_sent_user
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vbk/check_stage
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vbk/out_check_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vbk/stim_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vbk/test_done
add wave -noupdate -divider GAP
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vbk/uut/gap_start
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vbk/uut/gap_list_base
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vbk/uut/gap_list_end
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/bitmap_latch
add wave -noupdate /l0_rtps_reader_test2_vbk/uut/bitmap_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vbk/uut/next_seq_nr
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vbk/uut/bitmap_cnt
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {Begin {49575000 ps} 1} {Error {53225000 ps} 1} {Cursor {50275000 ps} 0}
quietly wave cursor active 3
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 1
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ns
update
WaveRestoreZoom {49779800 ps} {50803800 ps}

View File

@ -0,0 +1,82 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -divider SYSTEM
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/clk
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/reset
add wave -noupdate -divider INPUT
add wave -noupdate -group META /l0_rtps_reader_test2_vrk/uut/empty_meta
add wave -noupdate -group META /l0_rtps_reader_test2_vrk/uut/rd_meta
add wave -noupdate -group META /l0_rtps_reader_test2_vrk/uut/last_word_in_meta
add wave -noupdate -group META -radix hexadecimal /l0_rtps_reader_test2_vrk/uut/data_in_meta
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_vrk/uut/empty_user
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_vrk/uut/rd_user
add wave -noupdate -expand -group USER -radix hexadecimal /l0_rtps_reader_test2_vrk/uut/data_in_user
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_vrk/uut/last_word_in_user
add wave -noupdate -divider HC
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/start_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/opcode_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/ack_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/valid_out_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/ready_out_hc
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test2_vrk/uut/data_out_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/last_word_out_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/done_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/ret_hc
add wave -noupdate -divider {MAIN FSM}
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/stage
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/stage_next
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/cnt
add wave -noupdate -divider {MEMORY FSM}
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/mem_op_done
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/mem_op_start
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/mem_opcode
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/mem_stage
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/mem_stage_next
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/mem_cnt
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/mem_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/mem_addr_base
add wave -noupdate -childformat {{/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.guid -radix hexadecimal} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.addr -radix hexadecimal} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.portn -radix hexadecimal} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr -radix unsigned -childformat {{/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.lease_deadline -radix hexadecimal} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.res_time -radix hexadecimal}} -subitemconfig {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.guid {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.addr {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.portn {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr {-height 15 -radix unsigned -childformat {{/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr(0) {-height 15 -radix unsigned} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr(1) {-height 15 -radix unsigned} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.lease_deadline {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.res_time {-height 15 -radix hexadecimal}} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data
add wave -noupdate -group MEM_CTRL -radix unsigned /l0_rtps_reader_test2_vrk/uut/mem_addr
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrk/uut/mem_valid_in
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrk/uut/mem_ready_in
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrk/uut/mem_read
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2_vrk/uut/mem_write_data
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrk/uut/abort_read
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrk/uut/mem_valid_out
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrk/uut/mem_ready_out
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2_vrk/uut/mem_read_data
add wave -noupdate -divider TESTBENCH
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/start_meta
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/packet_sent_meta
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/start_user
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/packet_sent_user
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/check_stage
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/out_check_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/stim_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/test_done
add wave -noupdate -divider GAP
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/gap_start
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/gap_list_base
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/gap_list_end
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/bitmap_latch
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/bitmap_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/next_seq_nr
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/bitmap_cnt
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {Begin {49575000 ps} 1} {Error {53225000 ps} 1} {Cursor {50275000 ps} 0}
quietly wave cursor active 3
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 1
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ns
update
WaveRestoreZoom {49779800 ps} {50803800 ps}

View File

@ -0,0 +1,82 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -divider SYSTEM
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/clk
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/reset
add wave -noupdate -divider INPUT
add wave -noupdate -group META /l0_rtps_reader_test2_vrn/uut/empty_meta
add wave -noupdate -group META /l0_rtps_reader_test2_vrn/uut/rd_meta
add wave -noupdate -group META /l0_rtps_reader_test2_vrn/uut/last_word_in_meta
add wave -noupdate -group META -radix hexadecimal /l0_rtps_reader_test2_vrn/uut/data_in_meta
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_vrn/uut/empty_user
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_vrn/uut/rd_user
add wave -noupdate -expand -group USER -radix hexadecimal /l0_rtps_reader_test2_vrn/uut/data_in_user
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_vrn/uut/last_word_in_user
add wave -noupdate -divider HC
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/start_hc
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/opcode_hc
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/ack_hc
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/valid_out_hc
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/ready_out_hc
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test2_vrn/uut/data_out_hc
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/last_word_out_hc
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/done_hc
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/ret_hc
add wave -noupdate -divider {MAIN FSM}
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/stage
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/stage_next
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/cnt
add wave -noupdate -divider {MEMORY FSM}
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/mem_op_done
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/mem_op_start
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/mem_opcode
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/mem_stage
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/mem_stage_next
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/mem_cnt
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/mem_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrn/uut/mem_addr_base
add wave -noupdate -childformat {{/l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.guid -radix hexadecimal} {/l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.addr -radix hexadecimal} {/l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.portn -radix hexadecimal} {/l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.next_seq_nr -radix unsigned -childformat {{/l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} {/l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.lease_deadline -radix hexadecimal} {/l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.res_time -radix hexadecimal}} -subitemconfig {/l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.guid {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.addr {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.portn {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.next_seq_nr {-height 15 -radix unsigned -childformat {{/l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} /l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.next_seq_nr(0) {-height 15 -radix unsigned} /l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.next_seq_nr(1) {-height 15 -radix unsigned} /l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.lease_deadline {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vrn/uut/mem_endpoint_data.res_time {-height 15 -radix hexadecimal}} /l0_rtps_reader_test2_vrn/uut/mem_endpoint_data
add wave -noupdate -group MEM_CTRL -radix unsigned /l0_rtps_reader_test2_vrn/uut/mem_addr
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrn/uut/mem_valid_in
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrn/uut/mem_ready_in
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrn/uut/mem_read
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2_vrn/uut/mem_write_data
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrn/uut/abort_read
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrn/uut/mem_valid_out
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrn/uut/mem_ready_out
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2_vrn/uut/mem_read_data
add wave -noupdate -divider TESTBENCH
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrn/start_meta
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrn/packet_sent_meta
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrn/start_user
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrn/packet_sent_user
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrn/check_stage
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrn/out_check_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrn/stim_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrn/test_done
add wave -noupdate -divider GAP
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrn/uut/gap_start
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrn/uut/gap_list_base
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrn/uut/gap_list_end
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/bitmap_latch
add wave -noupdate /l0_rtps_reader_test2_vrn/uut/bitmap_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrn/uut/next_seq_nr
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrn/uut/bitmap_cnt
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {Begin {49575000 ps} 1} {Error {53225000 ps} 1} {Cursor {50275000 ps} 0}
quietly wave cursor active 3
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 1
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ns
update
WaveRestoreZoom {49779800 ps} {50803800 ps}

4
sim/test_all.do Normal file
View File

@ -0,0 +1,4 @@
puts "Starting ALL Tests"
build ../src/Tests/testbench.pro
puts "DONE"
exit

View File

@ -77,7 +77,7 @@
- No
* Since Lifespan is a duration, there is an inherent difference in the expiration time between writer and reader. This in addition to the fact that the reader may use the Reception time for the expiration time calculation could lead to an actual expiration duration almost double in length (If sent right before expiring locally in the writer).
* The current implementation will sent a second unregister/dispose Sample, if the user does the unregister/dispose operation a second time. Should we handle that specially?
* If a Keyed Reader receives a DATA Message with no Key hash and no Payload, it will drop it since there is no way to determine the instance (And the SN will never be accepted).
* Fast-RTPS does not follow DDSI-RTPS Specification

View File

@ -0,0 +1,483 @@
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
library osvvm; -- Utility Library
context osvvm.OsvvmContext;
use work.rtps_package.all;
use work.user_config.all;
use work.rtps_config_package.all;
use work.rtps_test_package.all;
-- This testbench tests the metatraffic operation behaviour of the RTPS Reader. (Remote Endpoint matching and memory behaviour)
-- This testbench is using external names to access the memory of the rtps_reader directly and check the contents at the supposed locations.
-- This testbench covers following:
-- * Mathing Endpoint
-- * Memory Full Behaviour
-- * Unmatching Endpoint
-- * Unmatching Participant
-- * Updating previously matched Endpoint
-- * Unknown Metatraffic Operation
entity L0_rtps_reader_test1_vbk is
end entity;
architecture testbench of L0_rtps_reader_test1_vbk is
-- *CONSTANT DECLARATION*
constant MAX_REMOTE_ENDPOINTS : natural := 3;
-- *TYPE DECLARATION*
type TEST_STAGE_TYPE is (IDLE, BUSY);
type TEST_RAM_TYPE is array (0 to (MAX_REMOTE_ENDPOINTS*WRITER_ENDPOINT_FRAME_SIZE_B)-1) of std_logic_vector(WORD_WIDTH-1 downto 0);
-- *SIGNAL DECLARATION*
signal clk, empty_user, empty_meta, rd_meta, last_word_in_meta : std_logic := '0';
signal reset : std_logic := '1';
signal data_in_meta, data_out_hc : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
signal start_hc, ack_hc, done_hc, done_hc_delay : std_logic := '0';
signal opcode_hc : HISTORY_CACHE_OPCODE_TYPE := NOP;
signal ret_hc : HISTORY_CACHE_RESPONSE_TYPE := OK;
signal stim_stage : TEST_STAGE_TYPE := IDLE;
shared variable stimulus, reference : TEST_PACKET_TYPE := EMPTY_TEST_PACKET;
signal packet_sent : std_logic := '0';
signal cnt_stim : natural := 0;
signal start : std_logic := '0';
shared variable SB_out : osvvm.ScoreBoardPkg_slv.ScoreBoardPType;
shared variable SB_mem : work.ScoreBoardPkg_MemoryTest.ScoreBoardPType;
signal stim_done, mem_check_done, out_check_done, test_done : std_logic := '0';
-- *FUNCTION DECLARATION*
procedure wait_on_sent is
begin
wait until rising_edge(packet_sent);
end procedure;
procedure wait_on_mem_check is
begin
if (mem_check_done /= '1') then
wait until mem_check_done = '1';
end if;
end procedure;
procedure wait_on_completion is
begin
if (test_done /= '1') then
wait until test_done = '1';
end if;
end procedure;
begin
-- Unit Under Test
uut : entity work.rtps_reader(arch)
generic map (
ENTITYID => DEFAULT_READER_ENTITYID,
RELIABILTY_QOS => BEST_EFFORT_RELIABILITY_QOS,
LIVELINESS_QOS => AUTOMATIC_LIVELINESS_QOS,
DURABILITY_QOS => VOLATILE_DURABILITY_QOS,
HEARTBEAT_RESPONSE_DELAY => DURATION_ZERO,
HEARTBEAT_SUPPRESSION_DELAY => DURATION_ZERO,
LEASE_DURATION => DURATION_INFINITE,
WITH_KEY => TRUE,
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
-- SYSTEM
clk => clk,
reset => reset,
time => TIME_ZERO,
empty_user => '1',
rd_user => open,
data_in_user => (others => '0'),
last_word_in_user => '0',
empty_meta => empty_meta or packet_sent,
rd_meta => rd_meta,
data_in_meta => data_in_meta,
last_word_in_meta => last_word_in_meta,
wr_rtps => open,
full_rtps => '0',
last_word_out_rtps => open,
data_out_rtps => open,
start_hc => start_hc,
opcode_hc => opcode_hc,
ack_hc => ack_hc,
done_hc => done_hc,
ret_hc => ret_hc,
data_out_hc => data_out_hc,
valid_out_hc => open,
ready_out_hc => '0',
last_word_out_hc => open
);
stimulus_prc : process
variable RV : RandomPType;
variable p0, p1, participant : PARTICIPANT_DATA_TYPE := DEFAULT_PARTICIPANT_DATA;
variable e0, e1, e2, e3, endpoint : ENDPOINT_DATA_TYPE := DEFAULT_ENDPOINT_DATA;
-- Wrapper to use procedure as function
impure function gen_rand_loc_2 return LOCATOR_TYPE is
variable ret : LOCATOR_TYPE := EMPTY_LOCATOR;
begin
gen_rand_loc(RV, ret);
return ret;
end function;
impure function gen_rand_guid_prefix return GUIDPREFIX_TYPE is
variable ret : GUIDPREFIX_TYPE;
begin
ret := (0 => RV.RandSlv(WORD_WIDTH), 1 => RV.RandSlv(WORD_WIDTH), 2 => RV.RandSlv(WORD_WIDTH));
return ret;
end function;
procedure start_test is
begin
start <= '1';
wait until rising_edge(clk);
start <= '0';
wait until rising_edge(clk);
end procedure;
begin
SetAlertLogName("rtps_reader - (Volatile, Best Effort, Keyed) - Level 0 - Metatraffic Handling");
SetAlertEnable(FAILURE, TRUE);
SetAlertEnable(ERROR, TRUE);
SetAlertEnable(WARNING, TRUE);
SetLogEnable(DEBUG, FALSE);
SetLogEnable(PASSED, FALSE);
SetLogEnable(INFO, TRUE);
RV.InitSeed(RV'instance_name);
p0.guidPrefix := gen_rand_guid_prefix;
p1.guidPrefix := gen_rand_guid_prefix;
-- Endpoint 1
e0 := DEFAULT_ENDPOINT_DATA;
e0.participant := p0;
e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
e0.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
-- Endpoint 2
e1 := DEFAULT_ENDPOINT_DATA;
e1.participant := p0;
e1.entityid := RV.RandSlv(ENTITYID_WIDTH);
e1.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
-- Endpoint 3
e2 := DEFAULT_ENDPOINT_DATA;
e2.participant := p1;
e2.entityid := RV.RandSlv(ENTITYID_WIDTH);
e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
-- Endpoint 4
e3 := DEFAULT_ENDPOINT_DATA;
e3.participant := p1;
e3.entityid := RV.RandSlv(ENTITYID_WIDTH);
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
Log("Initiating Test", INFO);
stim_done <= '0';
start <= '0';
reset <= '1';
wait until rising_edge(clk);
wait until rising_edge(clk);
reset <= '0';
Log("Insert Endpoint 0 Participant 0", INFO);
endpoint := e0;
endpoint.nr := 0;
endpoint.match := MATCH;
gen_endpoint_match_frame(endpoint, stimulus);
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
start_test;
wait_on_sent;
stimulus := EMPTY_TEST_PACKET;
wait_on_mem_check;
-- MEMORY STATE [p0e0,0,0]
Log("Insert Endpoint 1 Participant 0", INFO);
endpoint := e1;
endpoint.nr := 1;
endpoint.match := MATCH;
gen_endpoint_match_frame(endpoint, stimulus);
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
start_test;
wait_on_sent;
stimulus := EMPTY_TEST_PACKET;
wait_on_mem_check;
-- MEMORY STATE [p0e0,p0e1,0]
Log("Insert Endpoint 2 Participant 1", INFO);
endpoint := e2;
endpoint.nr := 2;
endpoint.match := MATCH;
gen_endpoint_match_frame(endpoint, stimulus);
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
start_test;
wait_on_sent;
stimulus := EMPTY_TEST_PACKET;
wait_on_mem_check;
-- MEMORY STATE [p0e0,p0e1,p1e2]
Log("Ignore Endpoint 3 Participant 1 [Memory Full]", INFO);
endpoint := e3;
endpoint.match := MATCH;
gen_endpoint_match_frame(endpoint, stimulus);
-- Re-check Mem-State
endpoint := e0;
endpoint.nr := 0;
endpoint.match := MATCH;
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
endpoint := e1;
endpoint.nr := 1;
endpoint.match := MATCH;
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
endpoint := e2;
endpoint.nr := 2;
endpoint.match := MATCH;
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
start_test;
wait_on_sent;
stimulus := EMPTY_TEST_PACKET;
wait_on_mem_check;
-- MEMORY STATE [p0e0,p0e1,p1e3]
Log("Remove Endpoint 2 Participant 1", INFO);
endpoint := e2;
endpoint.nr := 2;
endpoint.match := UNMATCH;
gen_endpoint_match_frame(endpoint, stimulus);
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
SB_out.Push(std_logic_vector(to_unsigned(endpoint.nr, WORD_WIDTH)));
start_test;
wait_on_sent;
stimulus := EMPTY_TEST_PACKET;
wait_on_mem_check;
-- MEMORY STATE [p0e0,p0e1,0]
Log("Insert Endpoint 3 Participant 1", INFO);
endpoint := e3;
endpoint.nr := 2;
endpoint.match := MATCH;
gen_endpoint_match_frame(endpoint, stimulus);
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
start_test;
wait_on_sent;
stimulus := EMPTY_TEST_PACKET;
wait_on_mem_check;
-- MEMORY STATE [p0e0,p0e1,p1e3]
Log("Remove Participant 0", INFO);
participant := p0;
participant.match := UNMATCH;
gen_participant_match_frame(participant, stimulus);
-- Remove Endpoint 0
endpoint := e0;
endpoint.nr := 0;
endpoint.match := UNMATCH;
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
SB_out.Push(std_logic_vector(to_unsigned(endpoint.nr, WORD_WIDTH)));
-- Remove Endpoint 1
endpoint := e1;
endpoint.nr := 1;
endpoint.match := UNMATCH;
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
SB_out.Push(std_logic_vector(to_unsigned(endpoint.nr, WORD_WIDTH)));
start_test;
wait_on_sent;
stimulus := EMPTY_TEST_PACKET;
wait_on_mem_check;
-- MEMORY STATE [0,0,p1e3]
Log("Insert Endpoint 2 Participant 1", INFO);
endpoint := e2;
endpoint.nr := 0;
endpoint.match := MATCH;
gen_endpoint_match_frame(endpoint, stimulus);
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
start_test;
wait_on_sent;
stimulus := EMPTY_TEST_PACKET;
wait_on_mem_check;
-- MEMORY STATE [p1e2,0,p1e3]
Log("Unknown Metatraffic Operation followed by insertion of Enpoint 0 Participant 0", INFO);
for i in 0 to 9 loop
stimulus.data(i) := RV.RandSlv(WORD_WIDTH);
end loop;
stimulus.last(9) := '1';
stimulus.length := 10;
endpoint := e0;
endpoint.nr := 1;
endpoint.match := MATCH;
gen_endpoint_match_frame(endpoint, stimulus);
-- Re-check Mem-State
endpoint := e2;
endpoint.nr := 0;
endpoint.match := MATCH;
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
endpoint := e0;
endpoint.nr := 1;
endpoint.match := MATCH;
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
endpoint := e3;
endpoint.nr := 2;
endpoint.match := MATCH;
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
start_test;
wait_on_sent;
stimulus := EMPTY_TEST_PACKET;
wait_on_mem_check;
-- MEMORY STATE [p1e2,p0e0,p1e3]
Log("Update Endpoint 2 Participant 1", INFO);
endpoint := e2;
endpoint.nr := 0;
endpoint.match := MATCH;
endpoint.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
gen_endpoint_match_frame(endpoint, stimulus);
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
start_test;
wait_on_sent;
stimulus := EMPTY_TEST_PACKET;
wait_on_mem_check;
-- MEMORY STATE [p1e2,p0e0,p1e3]
stim_done <= '1';
wait_on_completion;
TranscriptOpen(RESULTS_FILE, APPEND_MODE);
SetTranscriptMirror;
ReportAlerts;
TranscriptClose;
std.env.stop;
wait;
end process;
clock_prc : process
begin
clk <= '0';
wait for 25 ns;
clk <= '1';
wait for 25 ns;
end process;
in_empty_prc : process
begin
empty_meta <= '0';
wait until rd_meta = '1';
wait until rising_edge(clk);
empty_meta <= '1';
wait until rising_edge(clk);
end process;
alert_prc : process(all)
begin
if rising_edge(clk) then
alertif(empty_meta = '1' and rd_meta = '1', "Input FIFO read signal high while empty signal high", ERROR);
end if;
end process;
input_prc : process(all)
begin
data_in_meta <= stimulus.data(cnt_stim);
last_word_in_meta <= stimulus.last(cnt_stim);
if rising_edge(clk) then
if (reset = '1') then
cnt_stim <= 0;
stim_stage <= IDLE;
packet_sent <= '1';
else
case (stim_stage) is
when IDLE =>
if (start = '1' and stimulus.length /= 0) then
stim_stage <= BUSY;
packet_sent <= '0';
end if;
when BUSY =>
if (rd_meta = '1') then
if (cnt_stim = stimulus.length-1) then
stim_stage <= IDLE;
packet_sent <= '1';
cnt_stim <= 0;
else
cnt_stim <= cnt_stim + 1;
end if;
end if;
end case;
end if;
end if;
end process;
done_proc : process(clk)
begin
if rising_edge(clk) then
if (stim_done = '1' and SB_out.empty and SB_mem.empty) then
test_done <= '1';
else
test_done <= '0';
end if;
end if;
end process;
out_check_prc : process(all)
begin
if rising_edge(clk) then
done_hc <= done_hc_delay;
if (start_hc = '1') then
ack_hc <= '1';
done_hc_delay <= '1';
case (opcode_hc) is
when REMOVE_WRITER =>
SB_out.check(data_out_hc);
when others =>
Alert("Unexpected HC Opcode", ERROR);
end case;
else
ack_hc <= '0';
done_hc_delay <= '0';
end if;
end if;
end process;
mem_check_prc : process
alias mem is <<signal uut.mem_ctrl_inst.ram_inst.mem : TEST_RAM_TYPE>>;
alias mem_op_done is <<signal uut.mem_op_done : std_logic>>;
alias idle_sig is <<signal uut.idle_sig : std_logic>>;
variable reference : TEST_WRITER_ENDPOINT_MEMORY_FRAME_TYPE_B;
begin
mem_check_done <= '0';
-- SAFEGUARD: (Prevent Fall-through Behavior)
if (reset /= '0') then
wait until reset = '0';
end if;
-- Wait for Packet to be sent
wait until rising_edge(packet_sent);
-- Wait for UUT IDLE state
if (idle_sig /= '1') then
wait until idle_sig = '1';
end if;
-- Wait for ongoing memory operation
if (mem_op_done /= '1') then
wait until mem_op_done = '1';
end if;
while (not SB_mem.empty) loop
SB_mem.Pop(reference);
for i in 0 to reference'length-1 loop
AffirmIf(?? (mem(reference(i).addr) ?= reference(i).data), "Address: " & integer'image(reference(i).addr) & " Received: " & to_hstring(mem(reference(i).addr)) & " Expected: " & to_hstring(reference(i).data));
end loop;
end loop;
-- Toggle High for one clock cycle
mem_check_done <= '1';
wait until rising_edge(clk);
end process;
watchdog : process
begin
wait for 1 ms;
Alert("Test timeout", FAILURE);
std.env.stop;
end process;
end architecture;

View File

@ -20,10 +20,10 @@ use work.rtps_test_package.all;
-- * Updating previously matched Endpoint
-- * Unknown Metatraffic Operation
entity L0_rtps_reader_test1 is
entity L0_rtps_reader_test1_vrk is
end entity;
architecture testbench of L0_rtps_reader_test1 is
architecture testbench of L0_rtps_reader_test1_vrk is
-- *CONSTANT DECLARATION*
constant MAX_REMOTE_ENDPOINTS : natural := 3;
@ -140,7 +140,7 @@ begin
end procedure;
begin
SetAlertLogName("rtps_reader - Level 0 - Metatraffic Handling");
SetAlertLogName("rtps_reader - (Volatile, Reliable, Keyed) - Level 0 - Metatraffic Handling");
SetAlertEnable(FAILURE, TRUE);
SetAlertEnable(ERROR, TRUE);
SetAlertEnable(WARNING, TRUE);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@ use work.user_config.all;
use work.rtps_config_package.all;
use work.rtps_test_package.all;
-- This testbench tests the User traffic handling of the RTPS Reader (Volatile, Reliable, With Key).
-- This testbench tests the User traffic handling of the RTPS Reader.
-- The testbench checks which packets are accepted and propagated as Cache Changes to the History Cache.
-- This testbench covers following:
-- * Traffic from matched/unmatched remote Endpoint
@ -20,10 +20,10 @@ use work.rtps_test_package.all;
-- * Inline-QoS Handling
-- * Traffic without Payload (Unregister/Dispose DDS Operations)
entity L0_rtps_reader_test2 is
entity L0_rtps_reader_test2_vrk is
end entity;
architecture testbench of L0_rtps_reader_test2 is
architecture testbench of L0_rtps_reader_test2_vrk is
-- *CONSTANT DECLARATION*
constant MAX_REMOTE_ENDPOINTS : natural := 4;
@ -79,7 +79,7 @@ begin
clk => clk,
reset => reset,
time => TIME_ZERO,
empty_user => empty_meta or packet_sent_user,
empty_user => empty_user or packet_sent_user,
rd_user => rd_user,
data_in_user => data_in_user,
last_word_in_user => last_word_in_user,
@ -198,7 +198,7 @@ begin
end procedure;
begin
SetAlertLogName("rtps_reader - Level 0 - User Traffic Handling");
SetAlertLogName("rtps_reader - (Volatile, Reliable, Keyed) - Level 0 - User Traffic Handling");
SetAlertEnable(FAILURE, TRUE);
SetAlertEnable(ERROR, TRUE);
SetAlertEnable(WARNING, TRUE);
@ -475,7 +475,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Ignore Endpoint 2 sent DATA [SN 16]", INFO);
Log("Ignore Endpoint 2 sent DATA [SN 18]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_DATA;
@ -1023,7 +1023,7 @@ begin
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
sub.data := gen_payload;
cc := gen_cache_change(sub);
cc.kind := NOT_ALIVE_DISPOSED;
cc.kind := NOT_ALIVE_UNREGISTERED;
cc.src_timestamp := src_ts;
gen_inline_qos(cc, life_ts, sub.inlineQos);
gen_sentinel(sub.inlineQos);
@ -1036,10 +1036,75 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Ignore Endpoint 1 sent DATA [SN 17, No Payload, Inline-QoS (Lifespan, Status Info)]", INFO);
src_ts := gen_duration(2,600);
life_ts := gen_duration(3,600);
endpoint := e1;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_DATA;
sub.writerId := endpoint.entityid;
sub.readerId := DEFAULT_READER_ENTITYID;
sub.writerSN := gen_sn(17);
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
cc := gen_cache_change(sub);
cc.kind := NOT_ALIVE_DISPOSED;
cc.src_timestamp := src_ts;
gen_inline_qos(cc, life_ts, sub.inlineQos);
gen_sentinel(sub.inlineQos);
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
start_user_test;
wait_on_user_sent;
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
src_ts := TIME_INVALID;
life_ts := TIME_INVALID;
-- *HISTORY CACHE RESPONSE HANDLING*
Log("Test History Cache Response Handling", INFO);
Log("Accept Endpoint 0 sent DATA [SN 3, HC Reject]", INFO);
endpoint := e0;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_DATA;
sub.writerId := endpoint.entityid;
sub.readerId := DEFAULT_READER_ENTITYID;
sub.writerSN := gen_sn(3);
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
sub.data := gen_payload;
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
cc := gen_cache_change(sub);
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
push_reference(FALSE);
start_user_test;
wait_on_user_sent;
wait_on_out_check;
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Accept Endpoint 0 sent DATA [SN 3]", INFO);
endpoint := e0;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_DATA;
sub.writerId := endpoint.entityid;
sub.readerId := DEFAULT_READER_ENTITYID;
sub.writerSN := gen_sn(3);
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
sub.data := gen_payload;
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
cc := gen_cache_change(sub);
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
push_reference(TRUE);
start_user_test;
wait_on_user_sent;
wait_on_out_check;
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
-- *CONCURRENT TRAFFIC HANDLING*
Log("Test Concurrent User and Metatraffic Handling", INFO);
Log("Unmatch Endpoint 0 and Ignore Endpoint 0 sent DATA [SN 3]", INFO);
Log("Unmatch Endpoint 0 and Ignore Endpoint 0 sent DATA [SN 4]", INFO);
e0.match := UNMATCH;
gen_endpoint_match_frame(e0, stimulus_meta);
endpoint := e0;
@ -1047,7 +1112,7 @@ begin
sub.submessageID := SID_DATA;
sub.writerId := endpoint.entityid;
sub.readerId := DEFAULT_READER_ENTITYID;
sub.writerSN := gen_sn(1);
sub.writerSN := gen_sn(4);
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
sub.data := gen_payload;
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
@ -1081,7 +1146,6 @@ begin
empty_meta_prc : process
begin
empty_meta <= '0';
wait; -- TODO: Remove
wait until rd_meta = '1';
wait until rising_edge(clk);
empty_meta <= '1';
@ -1091,7 +1155,6 @@ begin
empty_user_prc : process
begin
empty_user <= '0';
wait; -- TODO: Remove
wait until rd_user = '1';
wait until rising_edge(clk);
empty_user <= '1';

File diff suppressed because it is too large Load Diff

View File

@ -1236,7 +1236,7 @@ begin
when 0 =>
valid_out_hc <= '1';
data_out_hc <= status_info;
data_out_hc(SSI_KEY_HASH_FLAG) <= key_hash_rcvd;
data_out_hc(SSI_KEY_HASH_FLAG) <= key_hash_rcvd when WITH_KEY;
data_out_hc(SSI_PAYLOAD_FLAG) <= data_flag;
-- Output Guard
if (ready_out_hc = '1') then
@ -1398,6 +1398,7 @@ begin
when 0 =>
mem_op_start <= '1';
mem_opcode <= GET_NEXT_ENDPOINT;
mem_field_flags <= EMF_LEASE_DEADLINE_FLAG or EMF_RES_TIME_FLAG;
cnt_next <= 1;
-- Check Endpoint
when 1 =>