Professional Documents
Culture Documents
Brian Vandegriend
PMC-Sierra
8555 Baxter Place,
Burnaby, BC
Canada, V5A 4V7
604-415-6000
I.
INTRODUCTION
Deepali Joshi
PMC-Sierra
8555 Baxter Place,
Burnaby, BC
Canada, V5A 4V7
604-415-6000
Corey Goss,
Cadence,
1130 Morrison Dr,
Kanata, ON
Canada, K2H 9N6
613-828-5626
II.
Legend
TLM port connection
master virtual
sequence driver
master register
sequence driver
pointer connection
module UVC
module config
UVC traffic
sequence
register
sequence
module registers
payload
generator
UVC
protocol
UVC (TX)
scoreboard
module
checker
interface
UVC (TX)
module
monitor
protocol
UVC (RX)
interface
UVC (RX)
Module RTL
master virtual
sequence driver
disabled
component
master register
sequence driver
system UVC
system config
system registers
module A UVC
module config
module B UVC
register
sequence
module config
module registers
payload
generator
UVC
register
sequence
module registers
scoreboard
protocol
UVC (TX)
module
checker
interface
UVC (TX)
module
monitor
payload
generator
UVC
protocol
UVC (RX)
protocol
UVC (TX)
interface
UVC (RX)
interface
UVC (TX)
System RTL
Module A RTL
Module B RTL
scoreboard
module
checker
module
monitor
protocol
UVC (RX)
interface
UVC (RX)
get_uvc_enable(port:port_t, layer:layer_t)
: bool is {};
get_uvc_is_active(port:port_t, layer:layer_t)
: uvm_active_passive_t is {};
get_uvc_bind_enable(port:port_t, layer:layer_t)
: uvm_active_passive_t is {};
// usage examples
keep vip_env.agent.is_active ==
get_uvc_is_active(PORT_AXI, LAYER_ENET);
connect_pointer() is also {
if (get_uvc_bind_enable(PORT_AXI, LAYER_ENET) {
vip_env.agent.tlm_out_port.connect(
vip2_env.agent.tlm_in_port;
);
};
};
struct src_route_table_entry_s {
enable
: bool;
port_id
: uint;
channel_id : uint;
destinations : list of dest_route_table_entry_s;
};
};
not move forward to the next testflow phase until all the
module UVC testflow phases are completed. For example,
the testflow cannot proceed until all modules come out from
reset. (3) Execution in parallel with fire and forget, in which
the same testflow phases of all the module UVC are launched
in parallel, but the system UVC testflow phase moves on to the
next testlflow phase once all the testflow phases in the module
UVCs are launched. For example, all modules start their
traffic sequences with no need of co-ordination among the
sequences.
System verification engineer can use the three basic
testflow phase kinds to build up a common testflow that fits
the operation of the device with lots of flexibility. Figure 3
shows an example of the testflow phases used in our project:
1) initialize the testbench environment.
2) toggle the reset pin of the device
3) wait until device ready is ready for accepting register
access
4) configure the testbench with procedure code
5) configure the device with register or backdoor access
6) start traffic generation
Legend
(1) init_env
(2) reset
TABLE I.
Statistic measure
(3)
wait_reset_done
(4) config_tb
(5) config_device
(6)
start_traffic_seq
(7)
wait_device_sync
(8) perform
_feature_test
7)
8)
9)
10)
11)
12)
13)
14)
15)
(9)
wait_sim_timeout
(11)
end_traffic_seq
(12) wait_traffic
_seq_finish
(13)
wait_clean_traffic
(14) perform
_device_test
(15) perform_post
_process_test
(10)
abort_simulation
Previous
Project
Current
project
Changes
Gates count
60M
200M
+333%
575k
484k
-16%
324k
215k
-34%
56%
44%
-22%
104k
413k
+400%
CHALLENGES
[2]
[3]
[4]
VI.
FUTURE DEVELOPMENT
[5]
[6]
[7]
[8]
[9]