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

Configure 'print' to display full struct fields

I have nested structs defined as follows: struct some_struct { some_field : uint; some_struct_field : some_other_struct; some_other_field : uint; }; struct some_other_struct { some_field : uint; some_other_field : uint; }; When I print…
Tudor Timi
  • 7,453
  • 1
  • 24
  • 53
0
votes
1 answer

Specman: How to find if a list of bytes exists in another list taking order of the list into account

I have a payload which is a lists of type bytes: var payload : list of byte; payload= {1;2;3;4;5;6}; var item1 :list of byte; item = {3;4;5}; var item2 :list of byte; item = {1;4}; I would like to implement a code that checks if a list is a…
0
votes
2 answers

Printing failure message in a try else block

I have a code block like this. try { gen keeping { }; } else { error(Failed to generate){ out(); }; }; I would like to have Specman print out the regular debug message from a gen…
qzcx
  • 361
  • 1
  • 12
0
votes
1 answer

In Specman, determinant is not constrained by its when subtype attributes

Next question to post: Hi, I have the following test case: <’ struct item_s { payload:list of byte; kind:[SMALL,BIG]; when SMALL item_s { keep payload.size() < 10; }; …
0
votes
2 answers

sync to data occurrence in the same cycle

I am using Sync in the following way: sync true (ports.ocp_cmd$ == 3'b010); I want the simulator to go to the next command the same cycle the data in ocp_cmd is 010. currently the simulator automatically jumps 1 cycle and only then goes to the next…
tom
  • 31
  • 6
0
votes
1 answer

How can I avoid repeating messages in vr_ad?

In my environment I see too many messages coming from the vr_ad. typical "disturbing" example: Three consecutive messages, all informing of one access – reading from address 0x5 [14] C_BUS: (info - Fetch) Fetch EX_CBUS_MAP vr_ad_map-@1, address:…
0
votes
1 answer

which mask should I use for backdoor access in vr_ad?

I'm trying to understand the backdoor access feature in vr_ad. Seems there are two different masks: One is the backdoor_mask field, and the other – get_bd_mask(). What is the difference between the two? which of them should I use?
0
votes
1 answer

Increase the number of e compilation errors reported

Is there option to increase the number of compilation errors, that are reported at the end of e compilation? 10 is too few for me
sab
  • 1
0
votes
3 answers

How to reduce the overhead of emitting an event from DPI?

I’m using e coverage for sampling signals in my DUT. In order to sample the covergroup, I’m emitting the coverage sample event inside a DPI code (defined in c interface of e, called in my hdl code). But it seems like when emitting this event there…
0
votes
1 answer

vr_ad performance enhancement mode

I want to use the vr_ad performance enhancement mode, VR_AD_ON_DEMAND_STATIC_INFO. What do I have to change in my register model code? What if I use a register model that was developed elsewhere – and I cannot edit it?
0
votes
4 answers

using deep_copy() and copy() methods in e language

What is the difference between copy and deep_copy methods in e language? When do i have to use deep_copy(), and when using copy() is good enough? Thanks!
Raz
  • 175
  • 5
0
votes
4 answers

a good way to constrain sum of different instances

I have a struct (mystruct_s for example) under which there are several same type structs (packet_s for example) in different hierarchies. struct packet_s { size:uint; active:bool; }; struct mystruct_s { // packet struct paths: // p …
0
votes
3 answers

Does e language provides a more efficient solution or data structure for dealing with FIFO management?

I am extensively using lists in our UVC’s monitor, due to our protocol specifications a lot is modeled using FIFO operation of list.push() and list.pop0(), since pop0() is a very expansive operation in ‘e’ on large list, Does e language provides a…
0
votes
2 answers

Is there a way to access user defined variables in vsfi file?

Summary: Is there a way to access user defined variables in vsfi file? After my simulation is done, in a vsif file, I kick off a post simulation script that will launch Matlab to analyze the output of the DUT. In order to analyze the data in Matlab…
0
votes
0 answers

How to disable coverage of a sub-block when using `-COVERAGE a -COVDut`

I am working on a design that has a hierarchy that looks like this: Top_level_block o Sub_block_1 ..... o Sub_block_6 o Sub_block_7 I use the elaboration options in ncelab to enable the coverage for the top_level_block: -COVERAGE a…