HierarchyFilesModulesSignalsTasksFunctionsHelp
Prev12345
  for (i=2; i <= 2; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `wakeup_cmd;
end
endtask // get_wakeup_cmd

task get_trigger_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input [31:0] msg_level;
reg valid_f[2:2];
reg status_f[2:2];
reg [1:7*8] cmd_name;
reg [`token_size-1:0] token_2;
integer i;
begin : block_get
  valid_f[2] = `false;
  status_f[2] = `false;
  cmd_name = "TRIGGER";
  valid_token = `false;
  token_number = 0;

  $lmv_tokenize(inline, 0, 0, token_2, status_f[2]);
  wk_cmd[intvalue1:intvalue2] = token_2;
  valid_f[2] = `true;

  for (i=2; i <= 2; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `trigger_cmd;
end
endtask // get_trigger_cmd

task get_wait_on_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input [31:0] msg_level;
reg valid_f[2:2];
reg status_f[2:2];
reg [1:7*8] cmd_name;
reg [`token_size-1:0] token_2;
integer i;
begin : block_get
  valid_f[2] = `false;
  status_f[2] = `false;
  cmd_name = "WAIT_ON";
  valid_token = `false;
  token_number = 0;

  $lmv_tokenize(inline, 0, 0, token_2, status_f[2]);
  wk_cmd[intvalue1:intvalue2] = token_2;
  valid_f[2] = `true;

  for (i=2; i <= 2; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `wait_on_cmd;
end
endtask // get_wait_on_cmd

task get_print_msg_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input [31:0] msg_level;
reg valid_f[2:2];
reg status_f[2:2];
reg [1:9*8] cmd_name;
reg [(`token_size-1)*8:0] token_2;
integer i;
begin : block_get
  valid_f[2] = `false;
  status_f[2] = `false;
  cmd_name = "PRINT_MSG";
  valid_token = `false;
  token_number = 0;

//  $lmv_tokenize(inline, 2, 1024, token_2, status_f[2]);
  $lmv_tokenize(inline, 1, 1024, token_2, status_f[2]);
  wk_cmd[inmessage1:inmessage2] = token_2;
  valid_f[2] = `true;

  for (i=2; i <= 2; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `print_msg_cmd;
end
endtask // get_print_msg_cmd

task get_set_msg_level_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input [31:0] msg_level;
reg valid_f[2:2];
reg status_f[2:2];
reg [1:13*8] cmd_name;
reg [`token_size-1:0] token_2;
integer i;
begin : block_get
  valid_f[2] = `false;
  status_f[2] = `false;
  cmd_name = "SET_MSG_LEVEL"; 
  valid_token = `false;
  token_number = 0;

  $lmv_tokenize(inline, 1, 0, token_2, status_f[2]);
  pcl_to_msg_level(wk_cmd[inmlevel1:inmlevel2],token_2,valid_f[2],msg_level,cmd_name);

  for (i=2; i <= 2; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `set_msg_level_cmd;
end
endtask // get_set_msg_level_cmd

task get_call_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input [31:0] msg_level;
reg valid_f[2:2];
reg status_f[2:2];
reg [1:4*8] cmd_name;
reg [(`token_size-1)*8:0] token_2;
integer i;
begin : block_get
  valid_f[2] = `false;
  status_f[2] = `false;
  cmd_name = "CALL";
  valid_token = `false;
  token_number = 0;

  $lmv_tokenize(inline, 1, 1024, token_2, status_f[2]);
  wk_cmd[infunction_name1:infunction_name2] = token_2;
  valid_f[2] = `true;

  for (i=2; i <= 2; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `call_cmd;
end
endtask // get_call_cmd

task get_func_beg_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input [31:0] msg_level;
reg valid_f[2:2];
reg status_f[2:2];
reg [1:8*8] cmd_name;
reg [(`token_size-1)*8:0] token_2;
integer i;
begin : block_get
  valid_f[2] = `false;
  status_f[2] = `false;
  cmd_name = "FUNC_BEG";
  valid_token = `false;
  token_number = 0;

  $lmv_tokenize(inline, 1, 1024, token_2, status_f[2]);
  wk_cmd[infunction_name1:infunction_name2] = token_2;
  valid_f[2] = `true;

  for (i=2; i <= 2; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `func_beg_cmd;
end
endtask // get_func_beg_cmd

task get_func_end_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input [31:0] msg_level;
reg valid_f[2:2];
reg status_f[2:2];
reg [1:8*8] cmd_name;
reg [(`token_size-1)*8:0] token_2;
integer i;
begin : block_get
  valid_f[2] = `false;
  status_f[2] = `false;
  cmd_name = "FUNC_END";
  valid_token = `false;
  token_number = 0;

  $lmv_tokenize(inline, 1, 1024, token_2, status_f[2]);  
  wk_cmd[infunction_name1:infunction_name2] = token_2;
  valid_f[2] = `true;

  for (i=2; i <= 2; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `func_end_cmd;
end
endtask // get_func_end_cmd

task get_sequential_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input  [31:0] msg_level;
reg valid_f  [2:1];
reg status_f [2:1];
reg [1:10*8] cmd_name;
begin
   valid_f[2] = `false;
   valid_f[1] = `false;
   cmd_name = "SEQUENTIAL";
   token_number = 0;
   
   valid_token = `true;
   wk_cmd[incode1:incode2] = `sequential_cmd;
end
endtask // get_sequential_cmd

task get_stop_sim_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input  [31:0] msg_level;
reg valid_f  [2:1];
reg status_f [2:1];
reg [1:8*8] cmd_name;
begin
   valid_f[2] = `false;
   valid_f[1] = `false;
   cmd_name = "STOP_SIM";
   token_number = 0;
   
   valid_token = `true;
   wk_cmd[incode1:incode2] = `stop_sim_cmd;
end
endtask // get_stop_sim_cmd

task get_wait_on_node_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input  [31:0] msg_level;
reg valid_f  [2:4];
reg status_f [2:4];
reg [1:12*8] cmd_name;
reg [(`token_size-1)*8:0] token_2;
reg [(`token_size-1):0] token_3;
reg [(`token_size-1):0] token_4;
integer i;
begin : block_get
  for (i=2; i <= 4; i = i + 1) begin
      valid_f[i] = `false;
      status_f[i] = `false;
  end
  cmd_name = "WAIT_ON_NODE";
  valid_token = `false;
  token_number = 0;

  $lmv_tokenize(inline, 1, 1024, token_2, status_f[2]);  
  wk_cmd[innode_name1:innode_name2] = token_2;
  valid_f[2] = `true;
  $lmv_tokenize(inline, 2, 1024, token_3, status_f[3]);  
  wk_cmd[innode_value1:innode_value2] = token_3;
  valid_f[3] = `true;
  $lmv_tokenize(inline, 2, 1024, token_4, status_f[4]);  
  wk_cmd[innode_mask1:innode_mask2] = token_4;
  valid_f[4] = `true;

  for (i=2; i <= 4; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop   
  valid_token = `true;
  wk_cmd[incode1:incode2] = `wait_on_node_cmd;
end
endtask // get_wait_on_node_cmd

task get_open_buffer_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input [31:0] msg_level;
reg valid_f[2:2];
reg status_f[2:2];
reg [1:11*8] cmd_name;
reg [(`token_size-1)*8:0] token_2;
integer i;
begin : block_get
  valid_f[2] = `false;
  status_f[2] = `false;
  cmd_name = "OPEN_BUFFER";
  valid_token = `false;
  token_number = 0;

  $lmv_tokenize(inline, 1, 1024, token_2, status_f[2]);
  wk_cmd[infunction_name1:infunction_name2] = token_2;
  valid_f[2] = `true;

  for (i=2; i <= 2; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `open_buffer_cmd;
end
endtask // get_open_buffer_cmd

task get_close_buffer_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input [31:0] msg_level;
reg valid_f[2:2];
reg status_f[2:2];
reg [1:12*8] cmd_name;
reg [(`token_size-1)*8:0] token_2;
integer i;
begin : block_get
  valid_f[2] = `false;
  status_f[2] = `false;
  cmd_name = "CLOSE_BUFFER";
  valid_token = `false;
  token_number = 0;

  $lmv_tokenize(inline, 1, 1024, token_2, status_f[2]);
  wk_cmd[infunction_name1:infunction_name2] = token_2;
  valid_f[2] = `true;

  for (i=2; i <= 2; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `close_buffer_cmd;
end
endtask // get_close_buffer_cmd

task get_set_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input [31:0] msg_level;
reg valid_f [2:5];
reg status_f [2:5];
reg [1:3*8] cmd_name;
reg [`token_size-1:0] token_2;
reg [`token_size-1:0] token_3;
reg [`token_size-1:0] token_4;
reg [`token_size-1:0] token_5;
integer i;
begin : block_get
  for (i=2; i <= 5; i = i + 1) begin
      valid_f[i] = `false;
      status_f[i] = `false;
  end // loop
  cmd_name = "SET";
  valid_token = `false;
  token_number = 0;

  $lmv_tokenize(inline, 1, 0, token_2, status_f[2]);
  pcl_to_set_types(wk_cmd[instype1:instype2],token_2,valid_f[2],msg_level,cmd_name);

  if ((valid_f[2] && status_f[2])) begin
    case (wk_cmd[instype1:instype2])
      mpin, mbus : begin
        $lmv_tokenize(inline, 1, 0, token_3, status_f[3]);
        pcl_to_object_name_types(wk_cmd[inobject_name1:inobject_name2],token_3,valid_f[3],msg_level,cmd_name);
        $lmv_tokenize(inline, 2, 128, token_4, status_f[4]);
        wk_cmd[inobject_value1:inobject_value2] = token_4;
	valid_f[4] = `true;
        $lmv_tokenize(inline, 0, 128, token_5, status_f[5]);
        wk_cmd[indelay_val1:indelay_val2] = token_5 * `time_scale_multiplier;
	valid_f[5] = `true;
      end
      mregister : begin
	$lmv_tokenize(inline, 1, 0, token_3, status_f[3]);
        pcl_to_object_name_types(wk_cmd[inobject_name1:inobject_name2],token_3,valid_f[3],msg_level,cmd_name);
	$lmv_tokenize(inline, 2, 128, token_4, status_f[4]);
        wk_cmd[inobject_value1:inobject_value2] = token_4;
	valid_f[4] = `true;
        valid_f[5] = `true;
        status_f[5] = `true;
      end
    endcase
  end // if

  for (i=2; i <= 5; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `set_cmd;
end
endtask // get_set_cmd

task get_get_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input [31:0] msg_level;
reg valid_f [2:4];
reg status_f [2:4];
reg [1:3*8] cmd_name;
reg [`token_size-1:0] token_2;
reg [`token_size-1:0] token_3;
reg [`token_size-1:0] token_4;
integer i;
begin : block_get
  for (i=2; i <= 4; i = i + 1) begin
      valid_f[i] = `false;
      status_f[i] = `false;
  end // loop
  cmd_name = "GET";
  valid_token = `false;
  token_number = 0;

  $lmv_tokenize(inline, 1, 0, token_2, status_f[2]);
  pcl_to_set_types(wk_cmd[instype1:instype2],token_2,valid_f[2],msg_level,cmd_name);
  $lmv_tokenize(inline, 1, 0, token_3, status_f[3]);
  pcl_to_object_name_types(wk_cmd[inobject_name1:inobject_name2],token_3,valid_f[3],msg_level,cmd_name);
  $lmv_tokenize(inline, 2, 128, token_4, status_f[4]);
  wk_cmd[inexpected_data1:inexpected_data2] = token_4;
  valid_f[4] = `true;

  for (i=2; i <= 4; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `get_cmd;
end
endtask // get_get_cmd

task get_remote_cmd;
input [1:`token_size*8*10] inline;
output valid_token;
output [31:0] token_number;
input [31:0] msg_level;
reg valid_f [2:6];
reg status_f [2:6];
reg [1:6*8] cmd_name;
reg [`token_size-1:0] token_2;
reg [(`token_size-1)*8:0] token_3;
reg [`token_size-1:0] token_4;
reg [`token_size-1:0] token_5;
reg [`token_size-1:0] token_6;
integer i;
begin : block_get
  for (i=2; i <= 6; i = i + 1) begin
      valid_f[i] = `false;
      status_f[i] = `false;
  end // loop
  cmd_name = "REMOTE";
  valid_token = `false;
  token_number = 0;

  $lmv_tokenize(inline, 0, 0, token_2, status_f[2]);
  wk_cmd[intarget_id1:intarget_id2] = token_2;
  valid_f[2] = `true;
  $lmv_tokenize(inline, 4, 1024, token_3, status_f[3]);
  wk_cmd[inmsg1:inmsg2] = token_3;
  valid_f[3] = `true;
  $lmv_tokenize(inline, 1, 1, token_4, status_f[4]);
  pcl_to_boolean(wk_cmd[inbuffer_f],token_4,valid_f[4],msg_level,cmd_name);
  $lmv_tokenize(inline, 1, 1, token_5, status_f[5]);
  pcl_to_boolean(wk_cmd[innotify_f],token_5,valid_f[5],msg_level,cmd_name);
  $lmv_tokenize(inline, 1, 1, token_6, status_f[6]);
  pcl_to_boolean(wk_cmd[inreturn_data_f],token_6,valid_f[6],msg_level,cmd_name);

  for (i=2; i <= 6; i = i + 1) begin
      if (!(valid_f[i] && status_f[i])) begin
         valid_token = `false;
         token_number = i;
         disable block_get;
      end // if
  end // loop
  valid_token = `true;
  wk_cmd[incode1:incode2] = `remote_cmd;
end
endtask // get_remote_cmd

task decode_cmd;
input [1:`token_size*8] cmd;
input [1:`token_size*8*10] inline;
output status;
output [31:0] para_number;
input [31:0] msg_level;
reg valid_token;
integer token_number;
begin

  case (cmd)
  "read_cycle"		: get_read_cycle_cmd(inline, valid_token, token_number, msg_level);
  "read_intr_ack"       : get_read_intr_ack_cmd(inline, valid_token, token_number, msg_level);
  "read_continue"	: get_read_continue_cmd(inline, valid_token, token_number, msg_level);
  "write_cycle"		: get_write_cycle_cmd(inline, valid_token, token_number, msg_level);
  "write_special_cyc"	: get_write_special_cyc_cmd(inline, valid_token, token_number, msg_level);
  "write_continue"	: get_write_continue_cmd(inline, valid_token, token_number, msg_level);
  "configure"		: get_configure_cmd(inline, valid_token, token_number, msg_level);
  "idle"		: get_idle_cmd(inline, valid_token, token_number, msg_level);
  "sleep"		: get_sleep_cmd(inline, valid_token, token_number, msg_level);
  "wakeup"		: get_wakeup_cmd(inline, valid_token, token_number, msg_level);
  "trigger"		: get_trigger_cmd(inline, valid_token, token_number, msg_level);
  "wait_on"		: get_wait_on_cmd(inline, valid_token, token_number, msg_level);
  "print_msg"		: get_print_msg_cmd(inline, valid_token, token_number, msg_level);
  "set_msg_level"	: get_set_msg_level_cmd(inline, valid_token, token_number, msg_level);
  "call"		: get_call_cmd(inline, valid_token, token_number, msg_level);
  "func_beg"		: get_func_beg_cmd(inline, valid_token, token_number, msg_level);
  "func_end"		: get_func_end_cmd(inline, valid_token, token_number, msg_level);
  "sequential"		: get_sequential_cmd(inline, valid_token, token_number, msg_level);
  "stop_sim"		: get_stop_sim_cmd(inline, valid_token, token_number, msg_level);
  "wait_on_node"        : get_wait_on_node_cmd(inline, valid_token, token_number, msg_level);
  "open_buffer"		: get_open_buffer_cmd(inline, valid_token, token_number, msg_level);
  "close_buffer"	: get_close_buffer_cmd(inline, valid_token, token_number, msg_level);
  "set"			: get_set_cmd(inline, valid_token, token_number, msg_level);
  "get"			: get_get_cmd(inline, valid_token, token_number, msg_level);
  "remote"		: get_remote_cmd(inline, valid_token, token_number, msg_level);
  default : begin
            if ((!(msg_level < `warnings))) begin
               $display("WARNING at %0t from %m", $time);
               $write("    \"Syntax Error: %0s is invalid for this model", cmd);
               $display("\"");
            end // if
  end
  endcase
  status = valid_token;
  para_number = token_number;
end
endtask // decode_cmd

task to_fm_data_in;
input [1:`token_size*10*8] inline;
input [31:0] msg_level;  // default = warnings
integer type;
integer size;
reg [(`token_size-1)*8:0] token_1;
reg [1:`token_size*10*8] tmp_inline;
reg status [1:1];
reg cmd_status;
integer para_number;
begin : block_1
  type = 3;  // command
  size = 0;  // default
  tmp_inline = inline;
  status[1] = `false;
  cmd_status = `false;
  para_number = 0;
  token_1 = "";

  //get the "command" name
   $lmv_tokenize(inline, type, size, token_1, status[1]);
  
  if (!status[1]) begin
     $display("WARNING at %0t from %m", $time);
     $display("Syntax Error: Command  \" %0s \"  is invalid for this model", tmp_inline);
     $display("Command Ignored");
     wk_cmd[incode1:incode2] = `null_cmd;
     disable block_1;
  end // if

  //decode "token_1"
  decode_cmd(token_1, inline, cmd_status, para_number, msg_level);

  if (!cmd_status) begin
     $display("WARNING at %0t from %m", $time);
     $display("Syntax Error: Parameter No. %0d is invalid for this command", (para_number-1));
     $display("      Command \" %0s \" Ignored", tmp_inline);
     wk_cmd[incode1:incode2] = `null_cmd;
     disable block_1;
  end // if
end
endtask // to_fm_data_in

task configure;
input [31:0] ctype;
input [64:1] generic_value;
begin
  wk_cmd[inctype1:inctype2] = ctype;
  case (ctype)
    dev_id, ven_id, rev_id, cls_code, c_line_size, dual_ad : wk_cmd[invalue_vector1:invalue_vector2] = generic_value;
    cdelay, pci_error, step, cl, rl, tl : wk_cmd[invalue_int1:invalue_int2] = generic_value;
    same, back, x_trans ,type1_access: wk_cmd[invalue_bol] = generic_value;
    mode : wk_cmd[inmode1:inmode2] = generic_value;
    max_clk_p : wk_cmd[invalue_time1:invalue_time2] = generic_value * `time_scale_multiplier;
  endcase
  wk_cmd[incode1:incode2] = `configure_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // configure

task read_intr_ack;
input [31 : 0] 	rtype; // enum type read_types
input [`slv_size-1 : 0] byten;
input [`slv_size-1 : 0] expected_data;
input [31 : 0] delay;
begin
  wk_cmd[inrtype1:inrtype2] = rtype;
  wk_cmd[inbyten1:inbyten2] = byten;
  wk_cmd[inexpected_data1:inexpected_data2] = expected_data;
  wk_cmd[indelay1:indelay2] = delay;
  wk_cmd[incode1:incode2] = `read_cycle_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // read_intr_ack

task read_cycle;
input [31 : 0] 	rtype; // enum type read_types
input [31 : 0] 	addr;
input [31 : 0] 	tc;
input [`slv_size-1 : 0] byten;
input [`slv_size-1 : 0] expected_data;
input [31 : 0] delay;
input lock;
begin
  wk_cmd[inrtype1:inrtype2] = rtype;
  wk_cmd[inaddr1:inaddr2] = addr;
  wk_cmd[intc1:intc2] = tc;
  wk_cmd[inbyten1:inbyten2] = byten;
  wk_cmd[inexpected_data1:inexpected_data2] = expected_data;
  wk_cmd[indelay1:indelay2] = delay;
  wk_cmd[inlock1:inlock2] = lock;
  wk_cmd[incode1:incode2] = `read_cycle_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // read_cycle

task read_continue;
input [`slv_size-1 : 0] byten;
input [`slv_size-1 : 0] expected_data;
input [31 : 0] delay;
begin
  wk_cmd[inbyten1:inbyten2] = byten;
  wk_cmd[inexpected_data1:inexpected_data2] = expected_data;
  wk_cmd[indelay1:indelay2] = delay;
  wk_cmd[incode1:incode2] = `read_continue_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // read_continue

task write_cycle;
input [31 : 0] 	wtype; // enum type write_types
input [31 : 0] 	addr;
input [31 : 0] 	tc;
input [`slv_size-1 : 0] byten;
input [`slv_size-1 : 0] data;
input [31 : 0] 	delay;
input lock;
begin
  wk_cmd[inwtype1:inwtype2] = wtype;
  wk_cmd[inaddr1:inaddr2] = addr;
  wk_cmd[intc1:intc2] = tc;
  wk_cmd[inbyten1:inbyten2] = byten;
  wk_cmd[indata1:indata2] = data;
  wk_cmd[indelay1:indelay2] = delay;
  wk_cmd[inlock1:inlock2] = lock;
  wk_cmd[incode1:incode2] = `write_cycle_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // write_cycle

task write_special_cyc;
input [31 : 0] 	wtype; // enum type write_types
input [`slv_size-1 : 0] byten;
input [`slv_size-1 : 0] data;
input [31 : 0] delay;
input lock;
begin
  wk_cmd[inwtype1:inwtype2] = wtype;
  wk_cmd[inbyten1:inbyten2] = byten;
  wk_cmd[indata1:indata2] = data;
  wk_cmd[indelay1:indelay2] = delay;
  wk_cmd[inlock1:inlock2] = lock;
  wk_cmd[incode1:incode2] = `write_cycle_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // write_cycle

task write_continue;
input [`slv_size-1 : 0] byten;
input [`slv_size-1 : 0] data;
input [31 : 0] delay;
begin
  wk_cmd[inbyten1:inbyten2] = byten;
  wk_cmd[indata1:indata2] = data;
  wk_cmd[indelay1:indelay2] = delay;
  wk_cmd[incode1:incode2] = `write_continue_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // write_continue

task idle;
input [31:0] cycles;
begin
  wk_cmd[incycles1:incycles2] = cycles;
  wk_cmd[incode1:incode2] = `idle_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // idle

task sleep;
input [31:0] wait_num;
begin
  wk_cmd[inwait_num1:inwait_num2] = wait_num;
  wk_cmd[incode1:incode2] = `sleep_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // sleep

task wakeup;
input [31:0] wakeup_num;
begin
  wk_cmd[inwakeup_num1:inwakeup_num2] = wakeup_num;
  wk_cmd[incode1:incode2] = `wakeup_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // wakeup

task trigger;
input [31:0] tvalue;
begin
  wk_cmd[intvalue1:intvalue2] = tvalue;
  wk_cmd[incode1:incode2] = `trigger_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // trigger

task wait_on;
input [31:0] tvalue;
begin
  wk_cmd[intvalue1:intvalue2] = tvalue;
  wk_cmd[incode1:incode2] = `wait_on_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // wait_on

task print_msg;
input [1:`token_size*8] message;
begin
  wk_cmd[inmessage1:inmessage2] = "";
  wk_cmd[inmessage1:inmessage2] = message;
  wk_cmd[incode1:incode2] = `print_msg_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // print_msg

task set_msg_level;
input [31:0] mlevel;
begin
  wk_cmd[inmlevel1:inmlevel2] = mlevel;
  wk_cmd[incode1:incode2] = `set_msg_level_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // set_msg_level

task call;
input [1:`token_size*8] function_name;
begin
  wk_cmd[infunction_name1:infunction_name2] = "";
  wk_cmd[infunction_name1:infunction_name2] = function_name;
  wk_cmd[incode1:incode2] = `call_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // call

task func_beg;
input [1:`token_size*8] function_name;
begin
  wk_cmd[infunction_name1:infunction_name2] = "";
  wk_cmd[infunction_name1:infunction_name2] = function_name;
  wk_cmd[incode1:incode2] = `func_beg_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // func_beg

task func_end;
input [1:`token_size*8] function_name;
begin
  wk_cmd[infunction_name1:infunction_name2] = "";
  wk_cmd[infunction_name1:infunction_name2] = function_name;
  wk_cmd[incode1:incode2] = `func_end_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // func_end

task sequential;
begin
   wk_cmd[incode1:incode2] = `sequential_cmd;
   wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // sequential

task stop_sim;
begin
   wk_cmd[incode1:incode2] = `stop_sim_cmd;
   wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // stop_sim

task wait_on_node;
input [1:`token_size*8] node_name;
input [1:`token_size] node_value;
input [1:`token_size] node_mask;
begin 
  wk_cmd[innode_name1:innode_name2] = node_name;
  wk_cmd[innode_value1:innode_value2] = node_value;
  wk_cmd[innode_mask1:innode_mask2] = node_mask;
  wk_cmd[incode1:incode2] = `wait_on_node_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // wait_on_node

task open_buffer;
input [1:`token_size*8] function_name;
begin
  wk_cmd[infunction_name1:infunction_name2] = "";
  wk_cmd[infunction_name1:infunction_name2] = function_name;
  wk_cmd[incode1:incode2] = `open_buffer_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // open_buffer

task close_buffer;
input [1:`token_size*8] function_name;
begin
  wk_cmd[infunction_name1:infunction_name2] = "";
  wk_cmd[infunction_name1:infunction_name2] = function_name;
  wk_cmd[incode1:incode2] = `close_buffer_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // close_buffer

task set;
input [31:0] stype;
input [31:0] object_name;
input [`slv_size-1:0] object_value;
input [31:0] delay_val;
begin
  wk_cmd[instype1:instype2] = stype;
  wk_cmd[inobject_name1:inobject_name2] = object_name;
  wk_cmd[inobject_value1:inobject_value2] = 64'hxxxxxxxxxxxxxxxx; // (others => '-')
  wk_cmd[inobject_value1:inobject_value2] = object_value;
  wk_cmd[indelay_val1:indelay_val2] = delay_val * `time_scale_multiplier;
  wk_cmd[incode1:incode2] = `set_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // set

task get;
input [31:0] stype;
input [31:0] object_name;
input [`slv_size-1:0] expected_data;
begin
  wk_cmd[instype1:instype2] = stype;
  wk_cmd[inobject_name1:inobject_name2] = object_name;
  wk_cmd[inexpected_data1:inexpected_data2] = 64'hxxxxxxxxxxxxxxxx;
  wk_cmd[inexpected_data1:inexpected_data2] = expected_data;
  wk_cmd[incode1:incode2] = `get_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // get

task remote;
input [31:0] target_id;
input [1:`token_size*8] msg;
input buffer_f;
input notify_f;
input return_data_f;
begin
  wk_cmd[intarget_id1:intarget_id2] = target_id;
  wk_cmd[inmsg1:inmsg2] = "";
  wk_cmd[inmsg1:inmsg2] = msg;
  wk_cmd[inbuffer_f] = buffer_f;
  wk_cmd[innotify_f] = notify_f;
  wk_cmd[inreturn_data_f] = return_data_f;
  wk_cmd[incode1:incode2] = `remote_cmd;
  wk_cmd[instrobe] = ~wk_cmd[instrobe];
end
endtask // remote
 //--**--**--**--**--**--**--**--**-- USER CODE END



function [31:0] calc_curve;
input [31:0] x, c2, c1, c0;
begin
  calc_curve = c2*(lmcver.power(x,2))/100 + c1*x + c0;
end
endfunction

task get_timing;
inout [31:0] local_times_trs_pad_pclk;
inout [31:0] local_times_trh_pad_pclk;
inout [31:0] local_times_twd_pad_31;
inout [31:0] local_times_twd_pad_30;
inout [31:0] local_times_twd_pad_29;
inout [31:0] local_times_twd_pad_28;
inout [31:0] local_times_twd_pad_27;
inout [31:0] local_times_twd_pad_26;
inout [31:0] local_times_twd_pad_25;
inout [31:0] local_times_twd_pad_24;
inout [31:0] local_times_twd_pad_23;
inout [31:0] local_times_twd_pad_22;
inout [31:0] local_times_twd_pad_21;
inout [31:0] local_times_twd_pad_20;
inout [31:0] local_times_twd_pad_19;
inout [31:0] local_times_twd_pad_18;
inout [31:0] local_times_twd_pad_17;
inout [31:0] local_times_twd_pad_16;
inout [31:0] local_times_twd_pad_15;
inout [31:0] local_times_twd_pad_14;
inout [31:0] local_times_twd_pad_13;
inout [31:0] local_times_twd_pad_12;
inout [31:0] local_times_twd_pad_11;
inout [31:0] local_times_twd_pad_10;
inout [31:0] local_times_twd_pad_9;
inout [31:0] local_times_twd_pad_8;
inout [31:0] local_times_twd_pad_7;
inout [31:0] local_times_twd_pad_6;
inout [31:0] local_times_twd_pad_5;
inout [31:0] local_times_twd_pad_4;
inout [31:0] local_times_twd_pad_3;
inout [31:0] local_times_twd_pad_2;
inout [31:0] local_times_twd_pad_1;
inout [31:0] local_times_twd_pad_0;
inout [31:0] local_times_tpr_pclk_pad_0;
inout [31:0] local_times_tpr_pclk_pad_1;
inout [31:0] local_times_tpr_pclk_pad_x;
inout [31:0] local_times_tpr_pclk_pad_z;
inout [31:0] local_times_thrx_pclk_pad;
inout [31:0] local_times_tld_pad_31;
inout [31:0] local_times_tld_pad_30;
inout [31:0] local_times_tld_pad_29;
inout [31:0] local_times_tld_pad_28;
inout [31:0] local_times_tld_pad_27;
inout [31:0] local_times_tld_pad_26;
inout [31:0] local_times_tld_pad_25;
inout [31:0] local_times_tld_pad_24;
inout [31:0] local_times_tld_pad_23;
inout [31:0] local_times_tld_pad_22;
inout [31:0] local_times_tld_pad_21;
inout [31:0] local_times_tld_pad_20;
Next12345
HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Thu Aug 19 12:03:06 1999
From: ../../../sparc_v8/system/lmc/rtl/pcimaster_timing.v

Verilog converted to html by v2html 5.0 (written by Costas Calamvokis).Help