module Vt_debug_emitv_t; input logic clk; input logic in; typedef enum logic [2:0] { ZERO = 3'h0, ONE = 3'h1 } e_t; typedef struct packed { logic [2:0] a; } ps_t; typedef struct { logic signed [2:0] a; } us_t; typedef union { logic a; } union_t; const struct packed { logic [2:0] a; } ps[0:2]; struct { logic signed [2:0] a; } us; union { logic a; } unu; integer signed i1; int signed array[0:2]; initial begin array = '{0:32'sh1, 1:32'sh2, 2:32'sh3}; end logic [63:32] downto_32; downto_32 = 32'h0; function ident; input int signed value; begin : label0 ident = ???? // CRESET ; ident = value; disable label0; end endfunction Iface the_ifaces[3:0] (); initial begin begin if ($test$plusargs("HELLO")) begin $display("Hello argument found."); end if ((Pkg::FOO == 'sh0)) begin $write(""); end if ((ZERO == 'sh0)) begin $write(""); end if ($value$plusargs("TEST=%d", i1)) begin $display("value was %d", i1); end else begin $display("+TEST= not found"); end if (downto_32[33]) begin $write(""); end if (downto_32[(ident('sh21) - 'h20)[5:0] + 32 +:1]) begin $write(""); end if ((| downto_32[48:40])) begin $write(""); end if ((| downto_32[57:55])) begin $write(""); end if ((| downto_32[60:54])) begin $write(""); end if (the_ifaces[2].ifsig) begin $write(""); end #1; $write("After #1 delay"); end end bit [6:5] [4:3] [2:1] arraymanyd[10:11][12:13][14:15]; logic [15:0] pubflat; logic [15:0] pubflat_r; logic [15:0] pubflat_w; assign pubflat_w = pubflat; int signed fd; int signed i; int signed q[$]; int signed qb[$:'sh3]; int signed assoc[string]; int signed assocassoc[string][real]; int signed dyn[]; typedef struct packed { logic nn1; } nested_named_t; typedef struct packed { struct packed { logic nn2; } nested_anonymous; struct packed { logic nn1; } nested_named; logic [11:10] nn3; } nibble_t; struct packed { struct packed { logic nn2; } nested_anonymous; struct packed { logic nn1; } nested_named; logic [11:10] nn3; } [5:4] nibblearray[3:2]; task t; $display("stmt"); endtask function f; input int signed v; begin : label1 $display("stmt"); f = ((v == 'sh0) ? 'sh63 : ((~ v) + 'sh1)); disable label1; end endfunction initial begin begin : unnamedblk1 int signed other; other = ???? // CRESET ; begin begin : unnamedblk2 int signed i; i = 'sh0; while ((i < 'sh3)) begin begin other = f(i); $display("stmt %d %d", i, other); t(); end i = (i + 'h1); end end end begin : named $display("stmt"); end end end final begin begin $display("stmt"); end end always @( in) begin begin $display("stmt"); end end always @(posedge clk) begin begin $display("posedge clk"); pubflat_r <= pubflat_w; end end always @(negedge clk) begin begin $display("negedge clk, pfr = %x", pubflat_r); end end int signed cyc; int signed fo; int signed sum; real r; string str; int signed mod_val; int signed mod_res; always @(posedge clk) begin begin cyc <= (cyc + 'sh1); r <= (r + 0.01); fo = cyc; sub.inc(fosum); sum = sub.f(sum); $display("[%0t] sum = %d", $time, sum); $display("a?= %d", ($c('sh1) ? $c('sh14) : $c('sh1e))); $c(;); $display("%d", $c(0)); fd = $fopen("/dev/null"); ; $fclose(fd); fd = $fopen("/dev/null", "r"); ; $fgetc(fd); $fflush(fd); $fscanf(fd, "%d", sum); ; $fdisplay(32'h69203d20, "%d", sum); $fwrite(fd, "hello"); $readmemh(string'(fd), array); $readmemh(string'(fd), array, 'sh0); $readmemh(string'(fd), array, 'sh0, 'sh0); sum = 'sh0; begin : unnamedblk3 int signed i; i = 'sh0; begin : label2 while ((i < cyc)) begin begin sum = (sum + i); if ((sum > 'sha)) begin disable label2; end else begin sum = (sum + 'sh1); end end i = (i + 'h1); end end end if ((cyc == 'sh63)) begin $finish; end if ((cyc == 'sh64)) begin $stop; end case (in) // synopsys full_case parallel_case'sh1: begin $display("1"); end default: begin $display("default"); end endcase priority case (in) 'sh1: begin $display("1"); end default: begin $display("default"); end endcase unique case (in) 'sh1: begin $display("1"); end default: begin $display("default"); end endcase unique0 case (in) 'sh1: begin $display("1"); end default: begin $display("default"); end endcase if (in) begin $display("1"); end else begin $display("0"); end priority if (in) begin $display("1"); end else begin $display("0"); end unique if (in) begin $display("1"); end else begin $display("0"); end unique0 if (in) begin $display("1"); end else begin $display("0"); end $display("%d%d", $past(cyc), $past(cyc, 'sh1)); str = $sformatf("cyc=%d", cyc); ; $display("str = %s", str); $display("struct = %p", ps); $display("%% [%t] [%t] to=%o td=%d", $time, $realtime, $time, $time); $sscanf(40'h666f6f3d35, "foo=%d", i); ; $printtimescale; if ((i != 'sh5)) begin $stop; end sum = $random(); sum = $random('sha); sum = $urandom(); sum = $urandom('sha); sum = array.r_sum() with ((item * 'sh2)) ; if ((PKG_PARAM != 'sh1)) begin $stop; end sub.r = 62.0; mod_res = (mod_val % 'sh5); $display("%g", $log10(r)); $display("%g", $ln(r)); $display("%g", $exp(r)); $display("%g", $sqrt(r)); $display("%g", $floor(r)); $display("%g", $ceil(r)); $display("%g", $sin(r)); $display("%g", $cos(r)); $display("%g", $tan(r)); $display("%g", $asin(r)); $display("%g", $acos(r)); $display("%g", $atan(r)); $display("%g", $sinh(r)); $display("%g", $cosh(r)); $display("%g", $tanh(r)); $display("%g", $asinh(r)); $display("%g", $acosh(r)); $display("%g", $atanh(r)); if ($sampled(cyc[1])) begin $write(""); end if ($rose(cyc)) begin $write(""); end if ($fell(cyc)) begin $write(""); end if ($stable(cyc)) begin $write(""); end if ((! $stable(cyc))) begin $write(""); end if ($past(cyc[1])) begin $write(""); end if ($rose(cyc, @( clk))) begin $write(""); end if ($fell(cyc, @( clk))) begin $write(""); end if ($stable(cyc, @( clk))) begin $write(""); end if ((! $stable(cyc, @( clk)))) begin $write(""); end if ($past(cyc[1], 'sh5)) begin $write(""); end force sum = 'sha; begin : unnamedblk1_1 integer signed __Vrepeat0; __Vrepeat0 = 'sh2; while ((__Vrepeat0 > 32'h0)) begin if ((sum != 'sha)) begin $stop; end __Vrepeat0 = (__Vrepeat0 - 32'h1); end end release sum; end end property p; @(posedge clk) ##1 sum[0] endproperty property p1; @( clk) sum[0] endproperty assert property (@( clk) (! ##1 in) ) begin end else begin end initial begin begin begin : assert_simple_immediate_else assert ('sh0) begin end else begin $display("fail"); end end begin : assert_simple_immediate_stmt assert ('sh0) begin $display("pass"); end else begin end end begin : assert_simple_immediate_stmt_else assert ('sh0) begin $display("pass"); end else begin $display("fail"); end end begin : assume_simple_immediate assume ('sh0) begin end else begin end end begin : assume_simple_immediate_else assume ('sh0) begin end else begin $display("fail"); end end begin : assume_simple_immediate_stmt assume ('sh0) begin $display("pass"); end else begin end end begin : assume_simple_immediate_stmt_else assume ('sh0) begin $display("pass"); end else begin $display("fail"); end end end end always begin begin : assert_observed_deferred_immediate assert #0 ('sh0) begin end else begin end end end always begin begin : assert_observed_deferred_immediate_else assert #0 ('sh0) begin end else begin $display("fail"); end end end always begin begin : assert_observed_deferred_immediate_stmt assert #0 ('sh0) begin $display("pass"); end else begin end end end always begin begin : assert_observed_deferred_immediate_stmt_else assert #0 ('sh0) begin $display("pass"); end else begin $display("fail"); end end end always begin begin : assume_observed_deferred_immediate assume #0 ('sh0) begin end else begin end end end always begin begin : assume_observed_deferred_immediate_else assume #0 ('sh0) begin end else begin $display("fail"); end end end always begin begin : assume_observed_deferred_immediate_stmt assume #0 ('sh0) begin $display("pass"); end else begin end end end always begin begin : assume_observed_deferred_immediate_stmt_else assume #0 ('sh0) begin $display("pass"); end else begin $display("fail"); end end end always begin begin : assert_final_deferred_immediate assert final ('sh0) begin end else begin end end end always begin begin : assert_final_deferred_immediate_else assert final ('sh0) begin end else begin $display("fail"); end end end always begin begin : assert_final_deferred_immediate_stmt assert final ('sh0) begin $display("pass"); end else begin end end end always begin begin : assert_final_deferred_immediate_stmt_else assert final ('sh0) begin $display("pass"); end else begin $display("fail"); end end end always begin begin : assume_final_deferred_immediate assume final ('sh0) begin end else begin end end end always begin begin : assume_final_deferred_immediate_else assume final ('sh0) begin end else begin $display("fail"); end end end always begin begin : assume_final_deferred_immediate_stmt assume final ('sh0) begin $display("pass"); end else begin end end end always begin begin : assume_final_deferred_immediate_stmt_else assume final ('sh0) begin $display("pass"); end else begin $display("fail"); end end end property prop; @(posedge clk) 'sh0 endproperty begin : assert_concurrent assert property ( prop ) begin end else begin end end begin : assert_concurrent_else assert property ( prop ) begin end else begin $display("fail"); end end begin : assert_concurrent_stmt assert property ( prop ) begin $display("pass"); end else begin end end begin : assert_concurrent_stmt_else assert property ( prop ) begin $display("pass"); end else begin $display("fail"); end end begin : assume_concurrent assume property ( prop ) begin end else begin end end begin : assume_concurrent_else assume property ( prop ) begin end else begin $display("fail"); end end begin : assume_concurrent_stmt assume property ( prop ) begin $display("pass"); end else begin end end begin : assume_concurrent_stmt_else assume property ( prop ) begin $display("pass"); end else begin $display("fail"); end end begin : cover_concurrent cover property ( prop ) begin end end begin : cover_concurrent_stmt cover property ( prop ) begin $display("pass"); end end int signed a; int signed ao; initial begin begin : assert_intrinsic assert ((| $_EXPRSTMT( ao = (a); , 32'h1); )) begin end else begin end end end restrict (@(posedge clk) ##1 a[0] ); logic [2:0] cg_sig; logic [1:0] cg_sig2; covergroup Vt_debug_emitv_cg_basic; function new; cp_sig: coverpoint cg_sig { bins low = {['sh0:'sh3]}; bins high = {['sh4:'sh6]}; bins dflt = default; ignore_bins ign = {'sh7}; illegal_bins ill = {'sh5}; }; endfunction int signed __Vint; struct { string name; int signed weight; int signed goal; string comment; int signed at_least; int signed auto_bin_max; int signed cross_num_print_missing; bit cross_retain_auto_bins; bit detect_overlap; bit per_instance; bit get_inst_coverage; } option; struct { int signed weight; int signed goal; string comment; bit strobe; bit merge_instances; bit distribute_first; real real_interval; } type_option; function sample; endfunction function start; endfunction function stop; endfunction function get_coverage; get_coverage = ???? // CRESET ; input string covered_bins; input string total_bins; endfunction function get_inst_coverage; get_inst_coverage = ???? // CRESET ; input string covered_bins; input string total_bins; endfunction function set_inst_name; input string name; endfunction endcovergroup covergroup Vt_debug_emitv_cg_clocked; @(posedge clk)function new; cp_cyc: coverpoint cg_sig; endfunction int signed __Vint; struct { string name; int signed weight; int signed goal; string comment; int signed at_least; int signed auto_bin_max; int signed cross_num_print_missing; bit cross_retain_auto_bins; bit detect_overlap; bit per_instance; bit get_inst_coverage; } option; struct { int signed weight; int signed goal; string comment; bit strobe; bit merge_instances; bit distribute_first; real real_interval; } type_option; function sample; endfunction function start; endfunction function stop; endfunction function get_coverage; get_coverage = ???? // CRESET ; input string covered_bins; input string total_bins; endfunction function get_inst_coverage; get_inst_coverage = ???? // CRESET ; input string covered_bins; input string total_bins; endfunction function set_inst_name; input string name; endfunction endcovergroup covergroup Vt_debug_emitv_cg_trans; function new; cp_t: coverpoint cg_sig { bins t01 = (3'h0 => 3'h1); bins t12 = (3'h1 => 3'h2); }; endfunction int signed __Vint; struct { string name; int signed weight; int signed goal; string comment; int signed at_least; int signed auto_bin_max; int signed cross_num_print_missing; bit cross_retain_auto_bins; bit detect_overlap; bit per_instance; bit get_inst_coverage; } option; struct { int signed weight; int signed goal; string comment; bit strobe; bit merge_instances; bit distribute_first; real real_interval; } type_option; function sample; endfunction function start; endfunction function stop; endfunction function get_coverage; get_coverage = ???? // CRESET ; input string covered_bins; input string total_bins; endfunction function get_inst_coverage; get_inst_coverage = ???? // CRESET ; input string covered_bins; input string total_bins; endfunction function set_inst_name; input string name; endfunction endcovergroup covergroup Vt_debug_emitv_cg_cross; function new; cp_x: coverpoint cg_sig { bins x0 = {'sh0}; bins x1 = {'sh1}; }; cp_y: coverpoint cg_sig2 { bins y0 = {'sh0}; bins y1 = {'sh1}; }; cx: cross cp_x, cp_y; endfunction int signed __Vint; struct { string name; int signed weight; int signed goal; string comment; int signed at_least; int signed auto_bin_max; int signed cross_num_print_missing; bit cross_retain_auto_bins; bit detect_overlap; bit per_instance; bit get_inst_coverage; } option; struct { int signed weight; int signed goal; string comment; bit strobe; bit merge_instances; bit distribute_first; real real_interval; } type_option; function sample; endfunction function start; endfunction function stop; endfunction function get_coverage; get_coverage = ???? // CRESET ; input string covered_bins; input string total_bins; endfunction function get_inst_coverage; get_inst_coverage = ???? // CRESET ; input string covered_bins; input string total_bins; endfunction function set_inst_name; input string name; endfunction endcovergroup Vt_debug_emitv_cg_basic cg_basic_instVt_debug_emitv_cg_basic; cg_basic_inst = new(); Vt_debug_emitv_cg_clocked cg_clocked_instVt_debug_emitv_cg_clocked; cg_clocked_inst = new(); Vt_debug_emitv_cg_trans cg_trans_instVt_debug_emitv_cg_trans; cg_trans_inst = new(); Vt_debug_emitv_cg_cross cg_cross_instVt_debug_emitv_cg_cross; cg_cross_inst = new(); endmodule package Vt_debug_emitv_std; class Vt_debug_emitv_semaphore; int signed m_keyCount; function new; input int signed keyCount; m_keyCount = keyCount; endfunction task put; input int signed keyCount; m_keyCount = (m_keyCount + keyCount); endtask task get; input int signed keyCount; while ((m_keyCount < keyCount)) begin begin ???? // WAIT (m_keyCount >= keyCount)end end m_keyCount = (m_keyCount - keyCount); endtask function try_get; input int signed keyCount; begin : label3 try_get = ???? // CRESET ; if ((m_keyCount >= keyCount)) begin begin m_keyCount = (m_keyCount - keyCount); try_get = 'sh1; disable label3; end end try_get = 'sh0; disable label3; end endfunction endclass class Vt_debug_emitv_process; typedef enum int signed{ FINISHED = 32'h0, RUNNING = 32'h1, WAITING = 32'h2, SUSPENDED = 32'h3, KILLED = 32'h4 } state; VlProcessRef m_process; function self; Vt_debug_emitv_process pVt_debug_emitv_process; begin : label4 self = ???? // CRESET ; p = new(); $c(p.m_process = vlProcess;); self = p; disable label4; end endfunction task set_status; input int signed s; $c(m_process->state(s);); endtask function status; begin : label5 status = ???? // CRESET ; status = ($c(m_process->state())); disable label5; end endfunction task kill; set_status(process::KILLED); endtask task suspend; $error("std::process::suspend() not supported"); $stop; endtask task resume; set_status(process::RUNNING); endtask task await; ???? // WAIT ((status() == process::FINISHED) || (status() == process:: KILLED))endtask task killQueue; ref Vt_debug_emitv_process processQueue[$]Vt_debug_emitv_process; while ((processQueue.size() > 'sh0)) begin begin kill(); end end endtask ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION ???? // SYSTEMCSECTION function get_randstate; string s; begin : label6 get_randstate = ???? // CRESET ; s = string'($c(0)); $c(s = m_process->randstate();); get_randstate = s; disable label6; end endfunction task set_randstate; input string s; $c(m_process->randstate(s);); endtask function new; endfunction process::FINISHEDprocess::KILLEDprocess::RUNNINGprocess::SUSPENDEDprocess::WAITINGendclass function randomize; randomize = 'sh0; endfunction typedef struct { string name; int signed weight; int signed goal; string comment; int signed at_least; int signed auto_bin_max; int signed cross_num_print_missing; bit cross_retain_auto_bins; bit detect_overlap; bit per_instance; bit get_inst_coverage; } vl_covergroup_options_t; typedef struct { int signed weight; int signed goal; string comment; int signed at_least; int signed auto_bin_max; bit detect_overlap; } vl_coverpoint_options_t; typedef struct { int signed weight; int signed goal; string comment; int signed at_least; int signed cross_num_print_missing; bit cross_retain_auto_bins; } vl_cross_options_t; typedef struct { int signed weight; int signed goal; string comment; bit strobe; bit merge_instances; bit distribute_first; real real_interval; } vl_covergroup_type_options_t; typedef struct { int signed weight; int signed goal; string comment; real real_interval; } vl_coverpoint_type_options_t; typedef struct { int signed weight; int signed goal; string comment; } vl_cross_type_options_t; endpackage package Vt_debug_emitv___024unit; class Vt_debug_emitv_Cls; int signed member; member = 'sh1; covergroup Vt_debug_emitv___vlAnonCG_cg_in_class; function new; cp_m: coverpoint member { bins one = {'sh1}; bins two = {'sh2}; }; endfunction int signed __Vint; struct { string name; int signed weight; int signed goal; string comment; int signed at_least; int signed auto_bin_max; int signed cross_num_print_missing; bit cross_retain_auto_bins; bit detect_overlap; bit per_instance; bit get_inst_coverage; } option; struct { int signed weight; int signed goal; string comment; bit strobe; bit merge_instances; bit distribute_first; real real_interval; } type_option; function sample; endfunction function start; endfunction function stop; endfunction function get_coverage; get_coverage = ???? // CRESET ; input string covered_bins; input string total_bins; endfunction function get_inst_coverage; get_inst_coverage = ???? // CRESET ; input string covered_bins; input string total_bins; endfunction function set_inst_name; input string name; endfunction endcovergroup Vt_debug_emitv___vlAnonCG_cg_in_class cg_in_classVt_debug_emitv___vlAnonCG_cg_in_class; task method; if ((this != this)) begin $stop; end endtask function new; endfunction endclass endpackage interface Vt_debug_emitv_Iface; input logic clk; logic ifsig; modport mp ( input logic ifsig ); endinterface module Vt_debug_emitv_sub; input logic clk; task inc; input int signed i; output int signed o; o = ???? // CRESET ; o = ({32'h1{{1'h0, i[31:1]}}} + 32'h1); endtask function f; input int signed v; begin : label7 if ((v == 'sh0)) begin f = 'sh21; disable label7; end f = ({32'h1{{31'h0, v[2]}}} + 32'h1); disable label7; end endfunction real r; endmodule package Vt_debug_emitv_p; logic pkgvar; endpackage package Vt_debug_emitv_Pkg; logic signed [31:0] PKG_PARAM; typedef enum int signed{ FOO = 32'h0, BAR = 32'h1, BAZ = 32'h2 } enum_t; endpackage