HierarchyFilesModulesSignalsTasksFunctionsHelp
/****************************************************************
 ---------------------------------------------------------------
     Copyright 1999 Sun Microsystems, Inc., 901 San Antonio
     Road, Palo Alto, CA 94303, U.S.A.  All Rights Reserved.
     The contents of this file are subject to the current
     version of the Sun Community Source License, picoJava-II
     Core ("the License").  You may not use this file except
     in compliance with the License.  You may obtain a copy
     of the License by searching for "Sun Community Source
     License" on the World Wide Web at http://www.sun.com.
     See the License for the rights, obligations, and
     limitations governing use of the contents of this file.

     Sun, Sun Microsystems, the Sun logo, and all Sun-based
     trademarks and logos, Java, picoJava, and all Java-based
     trademarks and logos are trademarks or registered trademarks 
     of Sun Microsystems, Inc. in the United States and other
     countries.
 ----------------------------------------------------------------
******************************************************************/

[Up: monitor io_pin_monitor]
module io_pin_monitor(
	pj_reset,
	pj_reset_out,
	pj_clk,
	pj_clk_out,
	pj_irl,
	pj_nmi,
	pj_boot8,
	pj_su,
	pj_standby,
	pj_standby_out,
	pj_no_fpu,
	pj_scan_out,
	pj_scan_mode,
	pj_scan_in,
	pj_data_in,
	pj_data_out,
	pj_address,
	pj_size,
	pj_type,
	pj_tv,
	pj_ale,
	pj_ack,
	pj_halt,
	pj_resume,
	pj_brk1_sync,
	pj_brk2_sync,
	pj_in_halt,
	pj_inst_complete,
	end_of_simulation
);

input		pj_reset;
input		pj_reset_out;
input		pj_clk;
input		pj_clk_out;
input	[3:0]	pj_irl;
input		pj_nmi;
input		pj_boot8;
input		pj_su;
input		pj_standby;
input		pj_standby_out;
input		pj_no_fpu;
input		pj_scan_out;
input		pj_scan_mode;
input		pj_scan_in;
input	[31:0]	pj_data_in;
input	[31:0]	pj_data_out;
input	[29:0]	pj_address;
input	[1:0]	pj_size;
input	[3:0]	pj_type;
input		pj_tv;
input		pj_ale;
input	[1:0]	pj_ack;
input		pj_halt;
input		pj_resume;
input		pj_brk1_sync;
input		pj_brk2_sync;
input		pj_in_halt;
input		pj_inst_complete;
input		end_of_simulation;

integer		pj_reset_cnt;
integer		pj_reset_cnt2;
integer		pj_reset_out_cnt;
integer		pj_reset_out_cnt2;
integer		pj_irl_cnt;
integer		pj_irl_cnt2;
integer		pj_nmi_cnt;
integer		pj_nmi_cnt2;
integer		pj_boot8_cnt;
integer		pj_su_cnt;
integer		pj_su_cnt2;
integer		pj_standby_cnt;
integer		pj_standby_cnt2;
integer		pj_standby_out_cnt;
integer		pj_standby_out_cnt2;
integer		pj_no_fpu_cnt;
integer		pj_scan_out_cnt;
integer		pj_scan_out_cnt2;
integer		pj_scan_mode_cnt;
integer		pj_scan_mode_cnt2;
integer		pj_scan_in_cnt;
integer		pj_scan_in_cnt2;
// integer		pj_data_in_cnt;
// integer		pj_data_out_cnt;
// integer		pj_address_cnt;
// integer		pj_size_cnt;
// integer		pj_tv_cnt;
// integer		pj_ale_cnt;
// integer		pj_ack_cnt;
integer		pj_halt_cnt;
integer		pj_halt_cnt2;
integer		pj_resume_cnt;
integer		pj_resume_cnt2;
integer		pj_brk1_sync_cnt;
integer		pj_brk1_sync_cnt2;
integer		pj_brk2_sync_cnt;
integer		pj_brk2_sync_cnt2;
integer		pj_in_halt_cnt;
integer		pj_in_halt_cnt2;
integer		pj_inst_complete_cnt;

// Add for halt mode checking
integer		halt_cond;

wire		irl_any;
assign	irl_any = |pj_irl;

initial begin
  #10;
  wait(pj_reset == 1'b0);
  pj_reset_cnt = 0;
  pj_reset_cnt2 = 0;
  pj_reset_out_cnt = 0;
  pj_reset_out_cnt2 = 0;
  pj_irl_cnt = 0;
  pj_irl_cnt2 = 0;
  pj_nmi_cnt = 0;
  pj_nmi_cnt2 = 0;
  pj_boot8_cnt = 0;
  pj_su_cnt = 0;
  pj_su_cnt2 = 0;
  pj_standby_cnt = 0;
  pj_standby_cnt2 = 0;
  pj_standby_out_cnt = 0;
  pj_standby_out_cnt2 = 0;
  pj_no_fpu_cnt = 0;
  pj_scan_out_cnt = 0;
  pj_scan_out_cnt2 = 0;
  pj_scan_mode_cnt = 0;
  pj_scan_mode_cnt2 = 0;
  pj_scan_in_cnt = 0;
  pj_scan_in_cnt2 = 0;
  // pj_data_in_cnt = 0;
  // pj_data_out_cnt = 0;
  // pj_address_cnt = 0;
  // pj_size_cnt = 0;
  // pj_tv_cnt = 0;
  // pj_ale_cnt = 0;
  // pj_ack_cnt = 0;
  pj_halt_cnt = 0;
  pj_halt_cnt2 = 0;
  pj_resume_cnt = 0;
  pj_resume_cnt2 = 0;
  pj_brk1_sync_cnt = 0;
  pj_brk1_sync_cnt2 = 0;
  pj_brk2_sync_cnt = 0;
  pj_brk2_sync_cnt2 = 0;
  pj_in_halt_cnt = 0;
  pj_in_halt_cnt2 = 0;
  pj_inst_complete_cnt = 0;
  if($test$plusargs("halt_check")) halt_cond = 1'b1 ;
  else halt_cond = 0;
end

always @(posedge pj_reset) begin
  $display("pj_reset asserted.");
  pj_reset_cnt = pj_reset_cnt + 1;
end
always @(negedge pj_reset) begin
  $display("pj_reset deasserted.");
  pj_reset_cnt2 = pj_reset_cnt2 + 1;
end
always @(posedge pj_reset_out) begin
  $display("pj_reset_out asserted.");
  pj_reset_out_cnt = pj_reset_out_cnt + 1;
end
always @(negedge pj_reset_out) begin
  $display("pj_reset_out deasserted.");
  pj_reset_out_cnt2 = pj_reset_out_cnt2 + 1;
end
always @(posedge irl_any) begin
  $display("irl is nonzero.");
  pj_irl_cnt = pj_irl_cnt + 1;
end
always @(negedge irl_any) begin
  $display("irl is zero.");
  pj_irl_cnt2 = pj_irl_cnt2 + 1;
end
always @(posedge pj_nmi) begin
  $display("pj_nmi is asserted.");
  pj_nmi_cnt = pj_nmi_cnt + 1;
end
always @(negedge pj_nmi) begin
  $display("pj_nmi is deasserted.");
  pj_nmi_cnt2 = pj_nmi_cnt2 + 1;
end
always @(posedge pj_boot8) begin
  $display("pj_boot8 is asserted.");
  pj_boot8_cnt = pj_boot8_cnt + 1;
end
always @(posedge pj_su) begin
  $display("pj_su is asserted.");
  pj_su_cnt = pj_su_cnt + 1;
end
always @(negedge pj_su) begin
  $display("pj_su is asserted.");
  pj_su_cnt = pj_su_cnt + 1;
end
always @(posedge pj_standby) begin
  $display("pj_standby asserted.");
  pj_standby_cnt = pj_standby_cnt + 1;
end
always @(negedge pj_standby) begin
  $display("pj_standby deasserted.");
  pj_standby_cnt2 = pj_standby_cnt2 + 1;
end
always @(posedge pj_standby_out) begin
  $display("pj_standby_out asserted.");
  pj_standby_out_cnt = pj_standby_out_cnt + 1;
end
always @(negedge pj_standby_out) begin
  $display("pj_standby_out deasserted.");
  pj_standby_out_cnt2 = pj_standby_out_cnt2 + 1;
end
always @(posedge pj_no_fpu) begin
  $display("pj_no_fpu asserted.");
  pj_no_fpu_cnt = pj_no_fpu_cnt + 1;
end
always @(posedge pj_scan_out) begin
  $display("pj_scan_out asserted.");
  pj_scan_out_cnt = pj_scan_out_cnt + 1;
end
always @(negedge pj_scan_out) begin
  $display("pj_scan_out deasserted.");
  pj_scan_out_cnt2 = pj_scan_out_cnt2 + 1;
end
always @(posedge pj_scan_mode) begin
  $display("pj_scan_mode asserted.");
  pj_scan_mode_cnt = pj_scan_mode_cnt + 1;
end
always @(negedge pj_scan_mode) begin
  $display("pj_scan_mode deasserted.");
  pj_scan_mode_cnt2 = pj_scan_mode_cnt2 + 1;
end
always @(posedge pj_scan_in) begin
  $display("pj_scan_in asserted.");
  pj_scan_in_cnt = pj_scan_in_cnt + 1;
end
always @(negedge pj_scan_in) begin
  $display("pj_scan_in deasserted.");
  pj_scan_in_cnt2 = pj_scan_in_cnt2 + 1;
end
always @(posedge pj_halt) begin
  $display("pj_halt asserted.");
  pj_halt_cnt = pj_halt_cnt + 1;
end
always @(negedge pj_halt) begin
  $display("pj_halt deasserted.");
  pj_halt_cnt2 = pj_halt_cnt2 + 1;
end
always @(posedge pj_resume) begin
  $display("pj_resume asserted.");
  pj_resume_cnt = pj_resume_cnt + 1;
end
always @(negedge pj_resume) begin
  $display("pj_resume deasserted.");
  pj_resume_cnt2 = pj_resume_cnt2 + 1;
end
always @(posedge pj_brk1_sync) begin
  $display("pj_brk1_sync asserted.");
  pj_brk1_sync_cnt = pj_brk1_sync_cnt + 1;
end
always @(negedge pj_brk1_sync) begin
  $display("pj_brk1_sync deasserted.");
  pj_brk1_sync_cnt2 = pj_brk1_sync_cnt2 + 1;
end
always @(posedge pj_brk2_sync) begin
  $display("pj_brk2_sync asserted.");
  pj_brk2_sync_cnt = pj_brk2_sync_cnt + 1;
end
always @(negedge pj_brk2_sync) begin
  $display("pj_brk2_sync deasserted.");
  pj_brk2_sync_cnt2 = pj_brk2_sync_cnt2 + 1;
end
always @(posedge pj_in_halt) begin
  $display("pj_in_halt asserted.");
  pj_in_halt_cnt = pj_in_halt_cnt + 1;
  halt_cond = 0;
end
always @(negedge pj_in_halt) begin
  $display("pj_in_halt deasserted.");
  pj_in_halt_cnt2 = pj_in_halt_cnt2 + 1;
end
//always @(posedge pj_inst_complete) begin
//  $display("pj_inst_complete asserted.");
//  pj_inst_complete_cnt = pj_inst_complete_cnt + 1;
//end

always @(posedge end_of_simulation) begin
  //pj_reset_out_cnt = pj_reset_out_cnt - 1;
  //pj_reset_out_cnt2 = pj_reset_out_cnt2 - 1;
  if (!($test$plusargs("no_io_pin_stats"))) begin
    $display("i/o pin assert/deassert statistics");
    $display("%d pj_reset assertions.", pj_reset_cnt);
    $display("%d pj_reset deassertions.", pj_reset_cnt2);
    $display("%d pj_reset_out assertions.", pj_reset_out_cnt);
    $display("%d pj_reset_out deassertions.", pj_reset_out_cnt2);
    $display("%d pj_irl assertions.", pj_irl_cnt);
    $display("%d pj_irl deassertions.", pj_irl_cnt2);
    $display("%d pj_nmi assertions.", pj_nmi_cnt);
    $display("%d pj_nmi deassertions.", pj_nmi_cnt2);
    // $display("%d pj_boot8 assertions.", pj_boot8_cnt);
    $display("%d pj_su assertions.", pj_su_cnt);
    $display("%d pj_su deassertions.", pj_su_cnt2);
    $display("%d pj_standby assertions.", pj_standby_cnt);
    $display("%d pj_standby deassertions.", pj_standby_cnt2);
    $display("%d pj_standby_out assertions.", pj_standby_out_cnt);
    $display("%d pj_standby_out deassertions.", pj_standby_out_cnt2);
    // $display("%d pj_no_fpu assertions.", pj_no_fpu_cnt);
    $display("%d pj_scan_out assertions.", pj_scan_out_cnt);
    $display("%d pj_scan_out deassertions.", pj_scan_out_cnt2);
    $display("%d pj_scan_mode assertions.", pj_scan_mode_cnt);
    $display("%d pj_scan_mode deassertions.", pj_scan_mode_cnt2);
    $display("%d pj_scan_in assertions.", pj_scan_in_cnt);
    $display("%d pj_scan_in deassertions.", pj_scan_in_cnt2);
    $display("%d pj_halt assertions.", pj_halt_cnt);
    $display("%d pj_halt deassertions.", pj_halt_cnt2);
    $display("%d pj_resume assertions.", pj_resume_cnt);
    $display("%d pj_resume deassertions.", pj_resume_cnt2);
    $display("%d pj_brk1_sync assertions.", pj_brk1_sync_cnt);
    $display("%d pj_brk1_sync deassertions.", pj_brk1_sync_cnt2);
    $display("%d pj_brk2_sync assertions.", pj_brk2_sync_cnt);
    $display("%d pj_brk2_sync deassertions.", pj_brk2_sync_cnt2);
    $display("%d pj_in_halt assertions.", pj_in_halt_cnt);
    $display("%d pj_in_halt deassertions.", pj_in_halt_cnt2);
    //$display("%d pj_inst_complete assertions.", pj_inst_complete_cnt);
    if(halt_cond) $display("ERROR: pj_in_halt never go 1 with -halt_check option\n");
    else $display("%d halt_cond ", halt_cond);
  end
  $display("COVERAGE: io_pins %d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",
	(pj_reset_cnt!=0), (pj_reset_cnt2!=0), (pj_reset_out_cnt!=0),
	(pj_reset_out_cnt2!=0), (pj_irl_cnt!=0), (pj_irl_cnt2!=0),
	(pj_nmi_cnt!=0), (pj_nmi_cnt2!=0), (pj_su_cnt!=0),
	(pj_su_cnt2!=0), (pj_standby_cnt!=0), (pj_standby_cnt2!=0),
	(pj_standby_out_cnt!=0), (pj_standby_out_cnt2!=0),
	(pj_scan_out_cnt!=0), (pj_scan_out_cnt2!=0), (pj_scan_mode_cnt!=0),
	(pj_scan_mode_cnt2!=0), (pj_scan_in_cnt!=0), (pj_scan_in_cnt2!=0),
	(pj_halt_cnt!=0), (pj_halt_cnt2!=0), (pj_resume_cnt!=0),
	(pj_resume_cnt2!=0), (pj_brk1_sync_cnt!=0), (pj_brk1_sync_cnt2!=0),
	(pj_brk2_sync_cnt!=0), (pj_brk2_sync_cnt2!=0), (pj_in_halt_cnt!=0),
	(pj_in_halt_cnt2!=0) );
end

endmodule

HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Wed Mar 24 09:46:05 1999
From: /import/jet-pj2-sim/rahim/picoJava-II/sim/env/io_pin_monitor.v

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