⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 watchdog.v

📁 8051的Verilog实现
💻 V
📖 第 1 页 / 共 3 页
字号:
//*******************************************************************--
// Copyright (c) 1999-2003  Evatronix SA                             --
//*******************************************************************--
// Please review the terms of the license agreement before using     --
// this file. If you are not an authorized user, please destroy this --
// source code file and notify Evatronix SA immediately that you     --
// inadvertently received an unauthorized copy.                      --
//*******************************************************************--
//---------------------------------------------------------------------
// Project name         : R80515
// Project description  : R80515 Microcontroller Unit
//
// File name            : watchdog.v
// File contents        : Module WATCHDOG_TIMER
// Purpose              : Programmable Watchdog Timer
//
// Destination library  : R80515_LIB
//
// Design Engineer      : R.Z
// Quality Engineer     : M.B.
// Version              : 1.15.V04
// Last modification    : 2003-04-15
//---------------------------------------------------------------------

`timescale 1 ns / 1 ns // timescale for following modules

//*******************************************************************--
// Modifications with respect to Version 1.01.E00 :
// 1.04.E00   :
// 2000-04-10 : Removed outputs swdt, wdtclr
//            : Removed register counter_cl
//            : Modified timer_proc: for higher reload than count mode
//            : Modified wdt_act_proc: in case os watchdog start
// 1.10.E01   :
// 2001-11-13 : Modified wdtl, wdth, wdt_s reset value from 
//            : hard-coded value on constant
//*******************************************************************--
   
module WATCHDOG_TIMER
   (clk,
   rst,
   wdt,
   swd,
   wdts,
   sfrdatai,
   sfrdatawdt,
   sfraddr,
   sfrwe);
   
   
   //  Declarations
  // `include "utility.v"
   //------------------------------------------------------------------
   
   //---------------------------------------------------------------
   // Special Function Register locations
   //---------------------------------------------------------------
   // 80h - 87h
   parameter[6:0] P0_ID          = 7'b0000000; 
   parameter[6:0] SP_ID          = 7'b0000001; 
   parameter[6:0] DPL_ID         = 7'b0000010; 
   parameter[6:0] DPH_ID         = 7'b0000011; 
   parameter[6:0] DPL1_ID        = 7'b0000100;
   parameter[6:0] DPH1_ID        = 7'b0000101;
   parameter[6:0] PCON_ID        = 7'b0000111; 
   parameter[6:0] WDTREL_ID      = 7'b0000110; 
   
   // 88h - 8Fh
   parameter[6:0] TCON_ID        = 7'b0001000; 
   parameter[6:0] TMOD_ID        = 7'b0001001; 
   parameter[6:0] TL0_ID         = 7'b0001010; 
   parameter[6:0] TL1_ID         = 7'b0001011; 
   parameter[6:0] TH0_ID         = 7'b0001100; 
   parameter[6:0] TH1_ID         = 7'b0001101; 
   parameter[6:0] CKCON_ID       = 7'b0001110; 
   
   // 90h - 97h
   parameter[6:0] P1_ID          = 7'b0010000; 
   parameter[6:0] DPS_ID         = 7'b0010010;
   
   // 98h - 9Fh
   parameter[6:0] S0CON_ID       = 7'b0011000; 
   parameter[6:0] S0BUF_ID       = 7'b0011001; 
   parameter[6:0] IEN2_ID        = 7'b0011010; 
   parameter[6:0] S1CON_ID       = 7'b0011011; 
   parameter[6:0] S1BUF_ID       = 7'b0011100; 
   parameter[6:0] S1RELL_ID      = 7'b0011101; 
   
   // A0h - A7h
   parameter[6:0] P2_ID          = 7'b0100000; 
   
   // A8h - AFh
   parameter[6:0] IEN0_ID        = 7'b0101000; 
   parameter[6:0] IP0_ID         = 7'b0101001; 
   parameter[6:0] S0RELL_ID      = 7'b0101010; 
   
   // B0h - B7h
   parameter[6:0] P3_ID          = 7'b0110000; 
   
   // B8h - BFh
   parameter[6:0] IEN1_ID        = 7'b0111000; 
   parameter[6:0] IP1_ID         = 7'b0111001; 
   parameter[6:0] S0RELH_ID      = 7'b0111010; 
   parameter[6:0] S1RELH_ID      = 7'b0111011; 
   
   // C0h - C7h
   parameter[6:0] IRCON_ID       = 7'b1000000; 
   parameter[6:0] CCEN_ID        = 7'b1000001; 
   parameter[6:0] CCL1_ID        = 7'b1000010; 
   parameter[6:0] CCH1_ID        = 7'b1000011; 
   parameter[6:0] CCL2_ID        = 7'b1000100; 
   parameter[6:0] CCH2_ID        = 7'b1000101; 
   parameter[6:0] CCL3_ID        = 7'b1000110; 
   parameter[6:0] CCH3_ID        = 7'b1000111; 
   
   // C8h - CFh
   parameter[6:0] T2CON_ID       = 7'b1001000; 
   parameter[6:0] T2MOD_ID       = 7'b1001001; 
   parameter[6:0] CRCL_ID        = 7'b1001010; 
   parameter[6:0] CRCH_ID        = 7'b1001011; 
   parameter[6:0] TL2_ID         = 7'b1001100; 
   parameter[6:0] TH2_ID         = 7'b1001101; 
   
   // D0h - D7h
   parameter[6:0] PSW_ID         = 7'b1010000; 
   
   // D8h - DFh
   parameter[6:0] ADCON_ID       = 7'b1011000; 
   
   // E0h - E7h
   parameter[6:0] ACC_ID         = 7'b1100000; 
   
   // E8h - EFh
   parameter[6:0] MD0_ID         = 7'b1101001; 
   parameter[6:0] MD1_ID         = 7'b1101010; 
   parameter[6:0] MD2_ID         = 7'b1101011; 
   parameter[6:0] MD3_ID         = 7'b1101100; 
   parameter[6:0] MD4_ID         = 7'b1101101; 
   parameter[6:0] MD5_ID         = 7'b1101110; 
   parameter[6:0] ARCON_ID       = 7'b1101111; 
   
   // F0h - F7h
   parameter[6:0] B_ID           = 7'b1110000; 
   parameter[6:0] EIP_ID         = 7'b1110101; 

   // F8h - FFh
   parameter[6:0] PIO_ID         = 7'b1111000;
   
   //---------------------------------------------------------------
   // Special Function Register reset values
   //---------------------------------------------------------------
   // 80h - 87h
   parameter[7:0] P0_RV          = 8'b11111111; 
   parameter[7:0] SP_RV          = 8'b00000111; 
   parameter[7:0] DPL_RV         = 8'b00000000; 
   parameter[7:0] DPH_RV         = 8'b00000000; 
   parameter[7:0] DPL1_RV        = 8'b00000000;
   parameter[7:0] DPH1_RV        = 8'b00000000;
   parameter[7:0] PCON_RV        = 8'b00000000; 
   parameter[7:0] WDTREL_RV      = 8'b00000000; 
   
   // 88h - 8Fh
   parameter[7:0] TCON_RV        = 8'b00000000; 
   parameter[7:0] TMOD_RV        = 8'b00000000; 
   parameter[7:0] TL0_RV         = 8'b00000000; 
   parameter[7:0] TL1_RV         = 8'b00000000; 
   parameter[7:0] TH0_RV         = 8'b00000000; 
   parameter[7:0] TH1_RV         = 8'b00000000; 
   parameter[7:0] CKCON_RV       = 8'b00000001; 
   
   // 90h - 97h
   parameter[7:0] P1_RV          = 8'b11111111; 
   parameter[7:0] DPS_RV         = 8'b00000000;
   
   // 98h - 9Fh
   parameter[7:0] S0CON_RV       = 8'b00000000; 
   parameter[7:0] S0BUF_RV       = 8'b00000000; 
   parameter[7:0] IEN2_RV        = 8'b00000000; 
   parameter[7:0] S1CON_RV       = 8'b00000000; 
   parameter[7:0] S1BUF_RV       = 8'b00000000; 
   parameter[7:0] S1RELL_RV      = 8'b00000000; 
   
   // A0h - A7h
   parameter[7:0] P2_RV          = 8'b11111111; 
   
   // A8h - AFh
   parameter[7:0] IEN0_RV        = 8'b00000000; 
   parameter[7:0] IP0_RV         = 8'b00000000; 
   parameter[7:0] IP0_RW         = 8'b01000000; // Watchdog reset
   parameter[7:0] S0RELL_RV      = 8'b11011001; 
   
   // B0h - B7h
   parameter[7:0] P3_RV          = 8'b11111111; 
   
   // B8h - BFh
   parameter[7:0] IEN1_RV        = 8'b00000000; 
   parameter[7:0] IP1_RV         = 8'b00000000; 
   parameter[7:0] S0RELH_RV      = 8'b00000011; 
   parameter[7:0] S1RELH_RV      = 8'b00000000; 
   
   // C0h - C7h
   parameter[7:0] IRCON_RV       = 8'b00000000; 
   parameter[7:0] CCEN_RV        = 8'b00000000; 
   parameter[7:0] CCL1_RV        = 8'b00000000; 
   parameter[7:0] CCH1_RV        = 8'b00000000; 
   parameter[7:0] CCL2_RV        = 8'b00000000; 
   parameter[7:0] CCH2_RV        = 8'b00000000; 
   parameter[7:0] CCL3_RV        = 8'b00000000; 
   parameter[7:0] CCH3_RV        = 8'b00000000; 
   
   // C8h - CFh
   parameter[7:0] T2CON_RV       = 8'b00000000; 
   parameter[7:0] T2MOD_RV       = 8'b00000000; 
   parameter[7:0] CRCL_RV        = 8'b00000000; 
   parameter[7:0] CRCH_RV        = 8'b00000000; 
   parameter[7:0] TL2_RV         = 8'b00000000; 
   parameter[7:0] TH2_RV         = 8'b00000000; 
   
   // D0h - D7h
   parameter[7:0] PSW_RV         = 8'b00000000; 
   
   // D8h - DFh
   parameter[7:0] ADCON_RV       = 8'b00000000; 
   
   // E0h - E7h
   parameter[7:0] ACC_RV         = 8'b00000000; 
   
   // E8h - EFh
   parameter[7:0] MD0_RV         = 8'b00000000; 
   parameter[7:0] MD1_RV         = 8'b00000000; 
   parameter[7:0] MD2_RV         = 8'b00000000; 
   parameter[7:0] MD3_RV         = 8'b00000000; 
   parameter[7:0] MD4_RV         = 8'b00000000; 
   parameter[7:0] MD5_RV         = 8'b00000000; 
   parameter[7:0] ARCON_RV       = 8'b00000000; 
   
   // F0h - F7h
   parameter[7:0] B_RV           = 8'b00000000; 
   parameter[7:0] EIP_RV         = 8'b00000000; 

   // F8h - FFh
   parameter[7:0] PIO_RV         = 8'b00001111;
   
   //-----------------------------------------------------------------
   // Instruction Mnemonics
   //-----------------------------------------------------------------
   // 00H - 0Fh
   parameter[7:0] NOP            = 8'b00000000; 
   parameter[7:0] AJMP_0         = 8'b00000001; 
   parameter[7:0] LJMP           = 8'b00000010; 
   parameter[7:0] RR_A           = 8'b00000011; 
   parameter[7:0] INC_A          = 8'b00000100; 
   parameter[7:0] INC_ADDR       = 8'b00000101; 
   parameter[7:0] INC_IR0        = 8'b00000110; 
   parameter[7:0] INC_IR1        = 8'b00000111; 
   parameter[7:0] INC_R0         = 8'b00001000; 
   parameter[7:0] INC_R1         = 8'b00001001; 
   parameter[7:0] INC_R2         = 8'b00001010; 
   parameter[7:0] INC_R3         = 8'b00001011; 
   parameter[7:0] INC_R4         = 8'b00001100; 
   parameter[7:0] INC_R5         = 8'b00001101; 
   parameter[7:0] INC_R6         = 8'b00001110; 
   parameter[7:0] INC_R7         = 8'b00001111; 
   
   // 10H - 1Fh
   parameter[7:0] JBC_BIT        = 8'b00010000; 
   parameter[7:0] ACALL_0        = 8'b00010001; 
   parameter[7:0] LCALL          = 8'b00010010; 
   parameter[7:0] RRC_A          = 8'b00010011; 
   parameter[7:0] DEC_A          = 8'b00010100; 
   parameter[7:0] DEC_ADDR       = 8'b00010101; 
   parameter[7:0] DEC_IR0        = 8'b00010110; 
   parameter[7:0] DEC_IR1        = 8'b00010111; 
   parameter[7:0] DEC_R0         = 8'b00011000; 
   parameter[7:0] DEC_R1         = 8'b00011001; 
   parameter[7:0] DEC_R2         = 8'b00011010; 
   parameter[7:0] DEC_R3         = 8'b00011011; 
   parameter[7:0] DEC_R4         = 8'b00011100; 
   parameter[7:0] DEC_R5         = 8'b00011101; 
   parameter[7:0] DEC_R6         = 8'b00011110; 
   parameter[7:0] DEC_R7         = 8'b00011111; 
   
   // 20H - 2Fh
   parameter[7:0] JB_BIT         = 8'b00100000; 
   parameter[7:0] AJMP_1         = 8'b00100001; 
   parameter[7:0] RET            = 8'b00100010; 
   parameter[7:0] RL_A           = 8'b00100011; 
   parameter[7:0] ADD_N          = 8'b00100100; 
   parameter[7:0] ADD_ADDR       = 8'b00100101; 
   parameter[7:0] ADD_IR0        = 8'b00100110; 
   parameter[7:0] ADD_IR1        = 8'b00100111; 
   parameter[7:0] ADD_R0         = 8'b00101000; 
   parameter[7:0] ADD_R1         = 8'b00101001; 
   parameter[7:0] ADD_R2         = 8'b00101010; 
   parameter[7:0] ADD_R3         = 8'b00101011; 
   parameter[7:0] ADD_R4         = 8'b00101100; 
   parameter[7:0] ADD_R5         = 8'b00101101; 
   parameter[7:0] ADD_R6         = 8'b00101110; 
   parameter[7:0] ADD_R7         = 8'b00101111; 
   
   // 30H - 3Fh
   parameter[7:0] JNB_BIT        = 8'b00110000; 
   parameter[7:0] ACALL_1        = 8'b00110001; 
   parameter[7:0] RETI           = 8'b00110010; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -