User guide

Table Of Contents
Appendix A: Avalon-ST Video Verification IP Suite A–19
Constrained Random Test
January 2013 Altera Corporation Video and Image Processing Suite
User Guide
Example A–5. Constrained Random Generation
fork
`SOURCE.start();
`SINK.start();
forever
begin
// Randomly determine which packet type to send :
r = $urandom_range(100, 0);
if (r>67)
begin
video_data_pkt1.set_max_length(100);
video_data_pkt1.randomize();
video_data_pkt1.populate();
// Send it to the source BFM :
m_video_items_for_src_bfm.put(video_data_pkt1);
// Copy and send to scoreboard :
video_data_pkt2 = new();
video_data_pkt2.copy(video_data_pkt1);
m_video_items_for_scoreboard.put(video_data_pkt2);
end
else if (r>34)
begin
video_control_pkt1.randomize();
m_video_items_for_src_bfm.put(video_control_pkt1);
// Copy and send to scoreboard :
video_control_pkt2 = new();
video_control_pkt2.copy(video_control_pkt1);
m_video_items_for_scoreboard.put(video_control_pkt2);
end
else
begin
user_pkt1.set_max_length(33);
user_pkt1.randomize() ;
m_video_items_for_src_bfm.put(user_pkt1);
// Copy and send to scoreboard :
user_pkt2 = new();
user_pkt2.copy(user_pkt1);
m_video_items_for_scoreboard.put(user_pkt2);
end
// Video items have been sent to the DUT and the scoreboard,
//wait for the analysis :
-> event_constrained_random_generation;
wait(event_dut_output_analyzed);
end
join