Questions tagged [specman]

Specman is a simulator for `e` (IEEE 1647), an Aspect Oriented Programming (AOP) hardware verification language that enables constrained-random stimulus generation and coverage.

Specman is and EDA tool from Cadence Design Systems that provides an environment for working with, compiling, and debugging testbench environments written in the e language. See also

http://www.cadence.com/products/fv/enterprise_specman_elite

261 questions
1
vote
2 answers

What is the difference between deep_copy and gen keeping in Specman?

can someone tell me what is the difference between coping one transaction(item) to the another like in examples bellow (add_method_port_1 and add_method_port_2): add_method_port_1 (added_item: item_s) is { var new_item: new_item_s; gen…
1
vote
1 answer

Specman(e) Questions

I want to emit an event only at the first rising edge of clock. for example event clkr_e is rise ('pll_clk') @ sim; clkr_e is emitted at every rising clock. But I need to emit an event only at first rising edge of pll_clk. Could any one please…
kumar
  • 11
  • 1
1
vote
2 answers

Specman : how to constraint a list to be all iterations of a variable but not only?

I've defined the following struct : struct my_struct { var_a : bit; var_b : bit; }; In another struct, I've instantiated a list of this struct : struct another_struct { my_list : list of my_struct; list_size : uint; keep…
1
vote
1 answer

List generation in specman

I have type my_type : [a,b,c,d,e,f]; I have my_list : list of my_type; I want to gen my_list, but there is restriction that c,d,f should come together. If there is c,d, or f in the generated list there MUST be all 3 of them. (I can have none of them…
Sonia
  • 15
  • 5
1
vote
1 answer

Specman - how to convert struct to a list of string

What is the efficient way to convert struct to a list of strings (list of all its field - name and value)? For example the following struct: struct spot_top_s { %D_LDO_SFS_EN : uint(bits:1); %D_COMP3P3_ACC_EN : uint(bits:1); %D_BGCOMP_TRIM…
Sarti
  • 143
  • 1
  • 1
  • 7
1
vote
3 answers

Specman e: Is there a way to know how many values there is in an enumerated type?

I need to know how many values there is in an enumerated type in my verification environment. E.g.: type my_type: [a, b, c, d]; I there a way to check on the fly that there 4 different values in the my_type? Thank you for your help
Halona
  • 1,475
  • 1
  • 15
  • 26
1
vote
1 answer

Specman e: How driver's items queue can be locked from a sequence?

In my verification environment, there are few sequences running simultaneously on the same driver (there is no matter when an item gets the bus in relation to other sequences' items). BUT, now I need to add additional sequence, that will run…
Halona
  • 1,475
  • 1
  • 15
  • 26
1
vote
1 answer

Specman e: "keep type .. is a" fails to refine the type of a field

I have the next code in my verification environment: // seq_file.e extend SPECIFIC_TYPE sequence { keep type driver is a SPECIFIC_TYPE sequence_driver; event some_event is @driver.as_a(SPECIFIC_TYPE sequence_driver).some_event; }; extend…
Halona
  • 1,475
  • 1
  • 15
  • 26
1
vote
3 answers

Specman soft select on variable, decimal vs. hexadecimal values

Here are two similar constraint blocks, one written using decimal notation, and the other using hexadecimal notation. The first works as expected, but the second only generates positive values (including 0) out of the 5 available values: -- positive…
evilpascal
  • 117
  • 3
  • 12
1
vote
2 answers

Specman e: Is there a way to print unit instance name?

I've built a generic agent that will be instantiated several times in the environment: unit agent_u { monitor : monitor_u is instance; }; The monitor prints some messages, e.g.: unit monitor_u { run() is also { message(LOW, "Hello…
Halona
  • 1,475
  • 1
  • 15
  • 26
1
vote
2 answers

Specman/e list of lists (multidimensional array)

How can I create a fixed multidimensional array in Specman/e using varibles? And then access individual elements or whole rows? For example in SystemVerilog I would have: module top; function automatic my_func(); bit [7:0] arr [4][8]; //…
evilpascal
  • 117
  • 3
  • 12
1
vote
2 answers

Does Specman e have struct constructor?

I have a struct with a list: struct my_struct { my_list : list of uint; // other fields }; I would like to build something similar to cpp class constructor: when I allocate my_struct using new operator, my_list will be initiated to have one…
Halona
  • 1,475
  • 1
  • 15
  • 26
1
vote
1 answer

Specman e: How the predefined sequence.item should be used?

I have a sequence: sequence bus_sequence using item=bus_item, created_driver=bus_sequence_driver; When I try to drive an item using the next code: extend bus_sequence { body() @driver.clock is only { do item; …
Halona
  • 1,475
  • 1
  • 15
  • 26
1
vote
2 answers

Specman e: define-as-computed macro error

I have multiple identical constrains on lists of uint in my verification environment. I wrote a macro so I would able to write only once the constrains and it will extend them to all other lists. For example, I would like to write: data_delay …
Halona
  • 1,475
  • 1
  • 15
  • 26
1
vote
2 answers

Specman -How to wait for an event to happen several times

I have to events: event clk_e is rise (smp.port_uart_clk$) @sim; event async_16_clk_e is rise (smp.port_br_clk_16$) @sim; *uart clk is faster than br_clk_16 update_int()@clk_e is { while TRUE { if…
Sara p
  • 31
  • 6