HierarchyFilesModulesSignalsTasksFunctionsHelp


//
// Copyright Notice and Proprietary Information
//
// Copyright (C) 1992 - 1995 Synopsys, Inc. All rights reserved. This Software 
// and manual are owned by Synopsys, Inc., and may be used only as authorized 
// in the license agreement controlling such use. No part of this publication 
// may be reproduced, transmitted, or translated, in any form or by any means, 
// electronic, mechanical, manual, optical, or otherwise, without prior written 
// permission of Synopsys, Inc., or as expressly provided by the license agreement.
//
// Destination Control Statement
//
// All technical data contained in this publication is subject to the export 
// control laws of the United States of America. Disclosure to nationals of other 
// countries contrary to United States law is prohibited. It is the reader's 
// responsibility to determine the applicable regulations and to comply with them.
//
// Disclaimer
//
// Synopsys, Inc., makes no warranty of any kind, express or implied, with regard 
// to this material, including, but not limited to, the implied warranties of 
// merchantability and fitness for a particular purpose.
//
// Synopsys, Inc., reserves the right to make changes without further notice to 
// the products described herein. Synopsys, Inc. does not assume any liability 
// arising out of the application or use of any product or circuit described 
// herein. The Synopsys products described herein are not authorized for use as 
// components in life-support devices.
//

`lmv_timescale


[Up: Msystem lmc_slave1]
module pcislave
  (pad,pcxbenn,ppar,pframenn,ptrdynn,pirdynn,pstopnn,pdevselnn,pidsel,psbonn
   ,psdone,pclk,prstnn,pd,pbenn,ppar64,preq64nn,pack64nn,plocknn,pperrnn,pserrnn);

inout [31:0] pad;
input [3:0] pcxbenn;
inout ppar;
input pframenn;
inout ptrdynn;
input pirdynn;
inout pstopnn;
output pdevselnn;
input pidsel;
input psbonn;
input psdone;
input pclk;
input prstnn;
inout [63:32] pd;
input [7:4] pbenn;
inout ppar64;
input preq64nn;
output pack64nn;
input plocknn;
output pperrnn;
output pserrnn;

    parameter  gen_debug_level    = 0;     // debug level: 0 = no debugging


pcislave_fm fm
(pad,pcxbenn,ppar,pframenn,ptrdynn,pirdynn,pstopnn,pdevselnn,pidsel,psbonn
   ,psdone,pclk,prstnn,pd,pbenn,ppar64,preq64nn,pack64nn,plocknn,pperrnn,pserrnn);
 //---------------------------------
 //---------------------------------
 //-- User variable declarations  --
 //-- are to be entered here      --
 //---------------------------------
 //---------------------------------

 //--**--**--**--**--**--**--**--**-- USER DECLARATION BEGIN
 //--**--**--**--**--**--**--**--**-- USER DECLARATION END


//  type msg_level_types is
parameter no_msg = 0;
parameter warnings = 1;
parameter debug_1 = 2;
parameter debug_2 = 3;
parameter debug_3 = 4;
parameter debug_cb = 5;
parameter debug_int = 6;
parameter debug_cmd_mem = 7;

 //type set_types is :
parameter  mpin = 0;
parameter  mbus = 1;
parameter  mregister = 2;

 //type object_name_types is :
parameter  pad_bus = 3;
parameter  pad_0 = 4;
parameter  pad_1 = 5;
parameter  pad_2 = 6;
parameter  pad_3 = 7;
parameter  pad_4 = 8;
parameter  pad_5 = 9;
parameter  pad_6 = 10;
parameter  pad_7 = 11;
parameter  pad_8 = 12;
parameter  pad_9 = 13;
parameter  pad_10 = 14;
parameter  pad_11 = 15;
parameter  pad_12 = 16;
parameter  pad_13 = 17;
parameter  pad_14 = 18;
parameter  pad_15 = 19;
parameter  pad_16 = 20;
parameter  pad_17 = 21;
parameter  pad_18 = 22;
parameter  pad_19 = 23;
parameter  pad_20 = 24;
parameter  pad_21 = 25;
parameter  pad_22 = 26;
parameter  pad_23 = 27;
parameter  pad_24 = 28;
parameter  pad_25 = 29;
parameter  pad_26 = 30;
parameter  pad_27 = 31;
parameter  pad_28 = 32;
parameter  pad_29 = 33;
parameter  pad_30 = 34;
parameter  pad_31 = 35;
parameter  pcxbenn_bus = 36;
parameter  pcxbenn_0 = 37;
parameter  pcxbenn_1 = 38;
parameter  pcxbenn_2 = 39;
parameter  pcxbenn_3 = 40;
parameter  ppar_pin = 41;
parameter  pframenn_pin = 42;
parameter  ptrdynn_pin = 43;
parameter  pirdynn_pin = 44;
parameter  pstopnn_pin = 45;
parameter  pdevselnn_pin = 46;
parameter  pidsel_pin = 47;
parameter  psbonn_pin = 48;
parameter  psdone_pin = 49;
parameter  pclk_pin = 50;
parameter  prstnn_pin = 51;
parameter  pd_bus = 52;
parameter  pd_32 = 53;
parameter  pd_33 = 54;
parameter  pd_34 = 55;
parameter  pd_35 = 56;
parameter  pd_36 = 57;
parameter  pd_37 = 58;
parameter  pd_38 = 59;
parameter  pd_39 = 60;
parameter  pd_40 = 61;
parameter  pd_41 = 62;
parameter  pd_42 = 63;
parameter  pd_43 = 64;
parameter  pd_44 = 65;
parameter  pd_45 = 66;
parameter  pd_46 = 67;
parameter  pd_47 = 68;
parameter  pd_48 = 69;
parameter  pd_49 = 70;
parameter  pd_50 = 71;
parameter  pd_51 = 72;
parameter  pd_52 = 73;
parameter  pd_53 = 74;
parameter  pd_54 = 75;
parameter  pd_55 = 76;
parameter  pd_56 = 77;
parameter  pd_57 = 78;
parameter  pd_58 = 79;
parameter  pd_59 = 80;
parameter  pd_60 = 81;
parameter  pd_61 = 82;
parameter  pd_62 = 83;
parameter  pd_63 = 84;
parameter  pbenn_bus = 85;
parameter  pbenn_4 = 86;
parameter  pbenn_5 = 87;
parameter  pbenn_6 = 88;
parameter  pbenn_7 = 89;
parameter  ppar64_pin = 90;
parameter  preq64nn_pin = 91;
parameter  pack64nn_pin = 92;
parameter  plocknn_pin = 93;
parameter  pperrnn_pin = 94;
parameter  pserrnn_pin = 95;

 //type config_types is :
parameter  transfer_limit = 96;
parameter  abort_limit = 97;
parameter  termination_style = 98;
parameter  pci_error = 99;
parameter  decode = 100;
parameter  delays = 101;
parameter  dev_id = 102;
parameter  ven_id = 103;
parameter  rev_id = 104;
parameter  h_type = 105;
parameter  cls_code = 106;
parameter  mem_l_0 = 107;
parameter  mem_u_0 = 108;
parameter  mem_l_1 = 109;
parameter  mem_u_1 = 110;
parameter  mem_l_2 = 111;
parameter  mem_u_2 = 112;
parameter  io_l_0 = 113;
parameter  io_u_0 = 114;
parameter  io_l_1 = 115;
parameter  io_u_1 = 116;
parameter  io_l_2 = 117;
parameter  io_u_2 = 118;
parameter  c_line_size = 119;
parameter  addr_64 = 120;
parameter  data_64 = 121;
parameter  int_ack = 122;
parameter  int_ack_vector = 123;

 //type mem_types is :
parameter  mem = 124;
parameter  io = 125;
parameter  cfg = 126;
parameter all_delays = -1;        // For configure_delay(all_delays,0);

reg     init      ; initial init      = `true;
reg     first     ; initial first     = `true;
//integer msg_level ; initial msg_level = `warnings;
integer msg_level ; initial msg_level = gen_debug_level;
reg     valid_f   ; initial valid_f   = `false;


task vfy_rdy; 
begin
   if (!(fm.fm_rsp.ready)) begin
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
   end // if
end
endtask // vfy_rdy

task configure;
input [31 : 0] 	ctype; 
input [64:1] generic_value;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v configure");
   end // if
   vfy_rdy;
   fm.timing.configure(ctype, generic_value);
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
   @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // configure

task configure_delay;
input [31 : 0] 	delay_index;
input [31 : 0] 	delay;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v configure");
   end // if
   vfy_rdy;
   fm.timing.configure_delay(delay_index , delay );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
   @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // configure_delay

task request;
input [31 : 0] 	request_limit;
input [31 : 0] 	decode;
input [31 : 0] 	delay;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v request");
   end // if
   vfy_rdy;
   fm.timing.request(request_limit , decode , delay );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // request

task idle;
input [31 : 0] 	cycles;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v idle");
   end // if
   vfy_rdy;
   fm.timing.idle(cycles );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // idle

task trigger;
input [31 : 0] 	tvalue;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v trigger");
   end // if
   vfy_rdy;
   fm.timing.trigger(tvalue );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // trigger

task wait_on;
input [31 : 0] 	tvalue;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v wait_on");
   end // if
   vfy_rdy;
   fm.timing.wait_on(tvalue );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // wait_on

task print_msg;
input [1 : `token_size*8] 	message;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v print_msg");
   end // if
   vfy_rdy;
   fm.timing.print_msg(message );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // print_msg

task set_msg_level;
input [31 : 0] 	mlevel; // enum type msg_level_types
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v set_msg_level");
   end // if
   vfy_rdy;
   msg_level	= mlevel;
   fm.timing.set_msg_level(mlevel );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
end
endtask // set_msg_level

task call;
input [1 : `token_size*8] 	function_name;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v call");
   end // if
   vfy_rdy;
   fm.timing.call(function_name );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // call

task func_beg;
input [1 : `token_size*8] 	function_name;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v func_beg");
   end // if
   vfy_rdy;
   fm.timing.func_beg(function_name );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // func_beg

task func_end;
input [1 : `token_size*8] 	function_name;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v func_end");
   end // if
   vfy_rdy;
   fm.timing.func_end(function_name );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // func_end

task sequential;
begin
  if (!((msg_level < `debug_3))) begin
     $display("NOTE at %0t from %m", $time);
     $write("     \"pcislave.v sequential");
     $display("\"");
  end // if
  vfy_rdy;
  fm.timing.sequential;
  fm.fm_cmd <= #(0) fm.timing.wk_cmd;
  @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // sequential

task stop_sim;
begin
  if (!((msg_level < `debug_3))) begin
     $display("NOTE at %0t from %m", $time);
     $write("     \"pcislave.v stop_sim");
     $display("\"");
  end // if
  vfy_rdy;
  fm.timing.stop_sim;
  fm.fm_cmd <= #(0) fm.timing.wk_cmd;
  @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin @(fm.fm_rsp.strobe); end
  check_int;
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
  if (!((msg_level < `debug_3))) begin
     $display("NOTE at %0t from %m", $time);
     $write("     \"pcislave.v wait_on_node");
     $display("\"");
  end // if
  vfy_rdy;
  fm.timing.wait_on_node(node_name,node_value,node_mask);
  fm.fm_cmd <= #(0) fm.timing.wk_cmd;
  @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // wait_on_node

task open_buffer;
input [1 : `token_size*8] 	function_name;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v open_buffer");
   end // if
   vfy_rdy;
   fm.timing.open_buffer(function_name );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // open_buffer

task close_buffer;
input [1 : `token_size*8] 	function_name;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v close_buffer");
   end // if
   vfy_rdy;
   fm.timing.close_buffer(function_name );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // close_buffer

task set;
input [31 : 0] 	stype; // enum type set_types
input [31 : 0] 	object_name; // enum type object_name_types
input [`slv_size-1 : 0] 	object_value;
input [31 : 0] 	delay_val;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v set");
   end // if
   vfy_rdy;
   fm.timing.set(stype , object_name , object_value , delay_val );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // set

task set_addr;
input [31 : 0] 	mtype; // enum type mem_types
input [`slv_size-1 : 0] 	saddr;
input [`slv_size-1 : 0] 	object_value;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v set_addr");
   end // if
   vfy_rdy;
   fm.timing.set_addr(mtype , saddr , object_value );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // set_addr

task get;
input [31 : 0] 	stype; // enum type set_types
input [31 : 0] 	object_name; // enum type object_name_types
input [`slv_size-1 : 0] 	expected_data;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v get");
   end // if
   vfy_rdy;
   fm.timing.get(stype , object_name , expected_data );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // get

task get_addr;
input [31 : 0] 	mtype; // enum type mem_types
input [`slv_size-1 : 0] 	saddr;
input [`slv_size-1 : 0] 	expected_data;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v get_addr");
   end // if
   vfy_rdy;
   fm.timing.get_addr(mtype , saddr , expected_data );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // get_addr

task reload;
input [31 : 0] 	mtype; // enum type mem_types
input [1 : `token_size*8] 	dfile;
input		flush_f;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v reload");
   end // if
   vfy_rdy;
   fm.timing.reload(mtype , dfile , flush_f );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // reload

task dump;
input [31 : 0] 	mtype; // enum type mem_types
input [`slv_size-1 : 0] 	start_addr;
input [`slv_size-1 : 0] 	end_addr;
input [1 : `token_size*8] 	dfile;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v dump");
   end // if
   vfy_rdy;
   fm.timing.dump(mtype , start_addr , end_addr , dfile );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // dump

task remote;
input [31 : 0] 	target_id; // enum type natural
input [1 : `token_size*8] 	msg;
input		buffer_f;
input		notify_f;
input		return_data_f;
begin
   if (msg_level >= `debug_3) begin
      $display("NOTE at %0t from %m", $time);
      $display("      pcislave.v remote");
   end // if
   vfy_rdy;
   fm.timing.remote(target_id , msg , buffer_f , notify_f , return_data_f );
   fm.fm_cmd <= #(0) fm.timing.wk_cmd;
      @(fm.fm_rsp.strobe); while (!(fm.fm_rsp.ready)) begin
                                      @(fm.fm_rsp.strobe); end
  check_int;
end
endtask // remote

task check_int;
begin
  if (msg_level >= `debug_3) begin
     $display("check_int : enter"); 
  end //if
 
end
endtask // check_int

 //----------------------------------
 //----------------------------------
 //-- This block terminates the    --
 //-- code which will be replaced  --
 //-- by VGEN on future reruns     --
 //-- Enter USER code only after   --
 //-- this comment block           --
 //----------------------------------
 //--**--**--**--**--**--**--**--**--

`define RANDOM_LMC_SLAVE
`ifdef RANDOM_LMC_SLAVE
integer pci_seed ;
integer index ;
integer ranval ;
`endif

always begin : model

  if ( init ) begin
    init         = `false;
  end else begin
 //-------------------------------
 //-------------------------------
 // User model code goes here ----
 // replacing the following wait -
 //-------------------------------
 //-------------------------------

//-----------------------------------------------------------------------------
// Bus control commands are inserted between the following comment lines.
// Any commands include in this section are provide as part of the LMG
// delivered test bench and as examples.  These commands may be modified
// or deleted. Note, a single call("<subroutine>") command is all that is 
// required to executed commands from an external command file referenced by
// the parameter/generic cmd_file.  
// Once the called <subroutine> completes command execution switches back to 
// the embedded mode.  Thus, command sequences may include commands from an 
// external command file and embedded commands.  Multiple "call" commands may 
// be executed. 
// 
//-----------------------------------------------------------------------------
//  ==== EMBEDDED COMMANDS BEGIN ====    --
`ifdef RANDOM_LMC_SLAVE
	$GetEnv("pci_seed", pci_seed) ;
	if (pci_seed == 0)
		begin
		/*
		 * Seed is 0, no random delays
		 */
		$display("%d :: pcislave : static delays selected", $time) ;
		call("main") ;
		end
	else
		begin
		/*
		 * Seed is non-0, program random delays on every FRAME
		 */
		$display("%d :: pcislave : random delays selected : seed %d", $time, pci_seed) ;
		while (1)
			begin
			/*
			 * Wait for next transaction, then randomly program slave
			 *
			 * Note that the programming does not take effect until
			 * the following transaction (don't know why and don't have
			 * time to trace it).
			 *
			 * Note also the fancy footwork after waiting for the negedge
			 * of frame. This is required because there is a zero time
			 * st1->st0->pu1 glitch at frame deassert. Need to make sure
			 * that frame *really* is asserted.
			 */
			repeat (1) @(negedge pframenn) ;
			#1 ;
			if ( pframenn === 0 ) 
				begin
				ranval = $dist_uniform(pci_seed, 0, 3) ;
				//$display("%d :: pcislave : configure(transfer_limit, %0d)", $time, ranval) ;
				configure(transfer_limit, ranval) ;
				ranval = $dist_uniform(pci_seed, 0, 1) ;
				//$display("%d :: pcislave : configure(termination_style, %0d)", $time, ranval) ;
				configure(termination_style, ranval) ;
				for (index = 1; index <= 8; index = index + 1)
					begin
					ranval = $dist_uniform(pci_seed, 0, 15) ;
					//$display("%d :: pcislave : configure_delay(%0d, %0d)", $time, index, ranval) ;
					configure_delay(index, ranval) ;
					end
				end
			end
		end
`else
    call("main"); // comment out to execute embedded commands.
`endif



//  ==== EMBEDDED COMMANDS END ====      --
//  The "wait" statement below should not be removed except to execute old commands. 
    wait (`false);  // wait forever

  end // if  

end //;

//always @(pframenn)
//	$display("%d :: pcislave : pframenn %v", $time, pframenn) ;

endmodule // behav;



HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Thu Aug 19 11:59:22 1999
From: ../../../sparc_v8/system/lmc/rtl/pcislave.v

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