Questions tagged [e]

e is a hardware verification language (HVL) which is tailored to implementing highly flexible and reusable verification testbenches.

e is a hardware verification language (HVL) which is tailored to implementing highly flexible and reusable verification test-benches.

http://en.wikipedia.org/wiki/E_(verification_language)

The e language uses an Aspect-Oriented Programming (AOP) approach, which is an extension of the object-oriented programming approach to specifically address the needs required in functional verification.

AOP is a key feature in that it allows for users to easily bolt on additional functionality to existing code in a non-invasive manner. This permits easy reuse and code maintenance which is a huge benefit in the hardware world, where designs are continually being tweaked to meet market demands throughout the project life-cycle.

AOP also addresses cross cutting concerns (features that cut across various sections of the code) easily by allowing users to extend either specific or all instances of a particular struct to add functionality. Users can extend several structs to add functionality related to a particular feature and bundle the extensions into a single file if desired, providing for more organized file partitioning.

114 questions
0
votes
1 answer

Get reset value of field in vr_ad (specman) or simply reset the field

I'm running a sequence where I need to temporarily write to a certain field in a register, and after a while I wish to reset it back to its reset value. I don't want to reset the entire register using the reset() function, I wish only to reset the…
Shay Golan
  • 89
  • 7
0
votes
1 answer

Specman e: How to print a pointer to a struct?

I have the next message in my verification environment: message(LOW, vt.text_style(LIGHT_PURPLE, " bla bla bla "), some_struct); The output I get: bla bla bla - some_struct-@405 I would like to add additional information to the message using…
Halona
  • 1,475
  • 1
  • 15
  • 26
0
votes
1 answer

Specman e coverage: ignored values appear in the coverage statistics

I need to collect a coverage only when one of the items has a specific value (only when size == BYTE). The code I wrote: item size : size_t = trans.size using no_collect; item byte_alignment : uint(bits:2) = trans.addr using…
Halona
  • 1,475
  • 1
  • 15
  • 26
0
votes
1 answer

Specman e: simultaneous events error

in my environment I have a signal that must not change between 2 time points. To verify it, I use expect rule: my_signal : uint; event first_e; -- First time point event second_e; -- Second time point expect @first_e => {[0..]*(not…
Halona
  • 1,475
  • 1
  • 15
  • 26
0
votes
1 answer

Specman e: How a sequence should be started when gen_and_start_main constrained to FALSE?

I've disabled automatic start of MAIN sequence, so I can control my sequences flow: extend my_driver { keep soft gen_and_start_main == FALSE; }; But, I don't find a way to start the sequence not-automatically, since I get compilation error,…
Halona
  • 1,475
  • 1
  • 15
  • 26
0
votes
1 answer

Specman e UVM: Why to inherit from uvm_* units?

I'm implementing a verification environment according to e UVM user guide. My question is - why should my_monitor unit to inherit from uvm_monitor (same for other UVM components)? What exactly logic do every uvm_* have? Can I implement UVM…
Halona
  • 1,475
  • 1
  • 15
  • 26
0
votes
1 answer

Can I extend the dut_error() method?

I would like to extend dur_error() method in order to write the name of the package from which the error is reported.
0
votes
1 answer

Specman - error while connecting the monitor to scoreboard

I am using e (specman) in my project. I build verification environment for uart. I have a struct which is like any_sequence_item named uart_frame_s. I want to add scoreboard for the tx in the uart. I have the following instance in the…
Sara p
  • 31
  • 6
0
votes
1 answer

e HVL (IEEE 1647): expect expression fails unexpectedly

I'm trying to verify a pretty simple handshake between two modules. One module is on a slow clock and raises "req", the faster module should raise "ack" on the next fast clock and hold it until the next slow clock posedge. The end result looks like…
Shay Golan
  • 89
  • 7
0
votes
1 answer

e HVL (IEEE 1647): How to set 'X' value?

I would like to initialize some variables in my verification environment to 'X' value. How can I set 'X' value in e? Thank you for your help
Halona
  • 1,475
  • 1
  • 15
  • 26
0
votes
0 answers

Ethernet eVC: Inject LPI with no normal IDLEs after packet

I simply wanted to achieve this scenario in GMII: _ _ _ _ _ _ _ _ TX_CLK | |_| |_| |_| |_| |_| |_| |_| |_ ___________ TX_EN \___________________ ___________ ___________________ TX_D …
renvill
  • 143
  • 1
  • 10
0
votes
1 answer

Difference between two Specman events with the same sampling event @sim

I have two events with the same sampling event @sim: unit monitor_a_u is { sample_a : interface_port of tlm_analysis of data_item_s is instance; data_a : simple_port of uint(bits:32) is instance; keep data_a.hdl_path() == "
renvill
  • 143
  • 1
  • 10
0
votes
1 answer

Constrains for Specman's list of lists

How can I apply constrains to list of list, similarly to what I can do to simple list: list_size: uint; my_list: list of uint; keep my_list.size() == list_size; keep for each (item) using index (item_index) in my_list { item == item_index;}; My…
0
votes
0 answers

Specman: how to access a variable in a sequence?

I have a variable in my Specman sequence that i am using as a flag. I would like to check that flag after the sequence is called. Is there a way to access that varible in the MAIN function after the sequence has updated its value? Thanks
0
votes
2 answers

Are all field of a list belong to one CFS

Do generatable array fields always belong to the same CFS? In case one of the list fields has a constraint, and another field has a different constraint and they are not connected. Will both the fields belong to the same CFS?
Yanir
  • 1
  • 2