This pages describes the UART TX sequence file.
This file does all the requirement to operate the main sequence of the TX eVC.
The first part is the sequence declaration:
- --logical name
- type uart_tx_env_name_t : [];
- sequence uart_tx_sequence using item=uart_tx_byte_s,
- created_driver=uart_tx_driver_u;
The second part deals with the name of the eVC. This is a common name to all modules in this eVC.
The name is inherited from the eVC environment.
It also extends the sequence driver as shown below:
- extend uart_tx_byte_s {
- name : uart_tx_env_name_t;
- keep name == read_only(driver).name;
- };--extend uart_tx_byte_s
- extend uart_tx_sequence {
- name : uart_tx_env_name_t;
- keep name == read_only(driver).name;
- tx_byte : uart_tx_byte_s;
- };--extend uart_tx_sequence
- extend uart_tx_driver_u {
- name : uart_tx_env_name_t;
- };--extend uart_tx_driver_u
The last part defines pre and post body. This part mainly raises objection and drops it to end the simulation.
- extend MAIN uart_tx_sequence {
- drain_time : time;
- keep soft drain_time == 20 us;
- pre_body() @sys.any is first {
- message(NONE, "dbg raise_objection");
- driver.raise_objection(TEST_DONE);
- }; -- pre_body()
-
- body() @sys.any is also {
- messagef(NONE, "dbg A drop_objection %d", drain_time);
- wait delay(drain_time);
- message(NONE, "dbg B drop_objection");
- driver.drop_objection(TEST_DONE);
- }; -- post_body()
-
- }; -- extend MAIN uart_tx_sequence
To go to main project: main project page
|