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

📄 ccuport.v

📁 8051的Verilog实现
💻 V
📖 第 1 页 / 共 2 页
字号:
//*******************************************************************--
// 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            : ccuport.v
// File contents        : Module CCU_PORT
// Purpose              : CCU Input/Output port registers
//
// Destination library  : R80515_LIB
//
// Design Engineer      : A.B.
// Quality Engineer     : M.B.
// Version              : 1.15.V04
// Last modification    : 2003-04-14
//---------------------------------------------------------------------

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

//*******************************************************************--
// Modifications with respect to Version 1.01.E00 :
//*******************************************************************--

module CCU_PORT (
   clk,
   rst,
   compare,
   ov,
   cocahl,
   t2cm,
   pout,
   sfrdatai,
   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; 
   parameter[7:0] RLC_A          = 8'b00110011; 
   parameter[7:0] ADDC_N         = 8'b00110100; 
   parameter[7:0] ADDC_ADDR      = 8'b00110101; 
   parameter[7:0] ADDC_IR0       = 8'b00110110; 
   parameter[7:0] ADDC_IR1       = 8'b00110111; 
   parameter[7:0] ADDC_R0        = 8'b00111000; 
   parameter[7:0] ADDC_R1        = 8'b00111001; 
   parameter[7:0] ADDC_R2        = 8'b00111010; 
   parameter[7:0] ADDC_R3        = 8'b00111011; 
   parameter[7:0] ADDC_R4        = 8'b00111100; 
   parameter[7:0] ADDC_R5        = 8'b00111101; 
   parameter[7:0] ADDC_R6        = 8'b00111110; 
   parameter[7:0] ADDC_R7        = 8'b00111111; 
   
   // 40H - 4Fh
   parameter[7:0] JC             = 8'b01000000; 
   parameter[7:0] AJMP_2         = 8'b01000001; 
   parameter[7:0] ORL_ADDR_A     = 8'b01000010; 
   parameter[7:0] ORL_ADDR_N     = 8'b01000011; 
   parameter[7:0] ORL_A_N        = 8'b01000100; 
   parameter[7:0] ORL_A_ADDR     = 8'b01000101; 
   parameter[7:0] ORL_A_IR0      = 8'b01000110; 
   parameter[7:0] ORL_A_IR1      = 8'b01000111; 
   parameter[7:0] ORL_A_R0       = 8'b01001000; 
   parameter[7:0] ORL_A_R1       = 8'b01001001; 
   parameter[7:0] ORL_A_R2       = 8'b01001010; 
   parameter[7:0] ORL_A_R3       = 8'b01001011; 
   parameter[7:0] ORL_A_R4       = 8'b01001100; 
   parameter[7:0] ORL_A_R5       = 8'b01001101; 
   parameter[7:0] ORL_A_R6       = 8'b01001110; 
   parameter[7:0] ORL_A_R7       = 8'b01001111; 
   
   // 50H - 5Fh
   parameter[7:0] JNC            = 8'b01010000; 
   parameter[7:0] ACALL_2        = 8'b01010001; 
   parameter[7:0] ANL_ADDR_A     = 8'b01010010; 
   parameter[7:0] ANL_ADDR_N     = 8'b01010011; 
   parameter[7:0] ANL_A_N        = 8'b01010100; 
   parameter[7:0] ANL_A_ADDR     = 8'b01010101; 
   parameter[7:0] ANL_A_IR0      = 8'b01010110; 
   parameter[7:0] ANL_A_IR1      = 8'b01010111; 
   parameter[7:0] ANL_A_R0       = 8'b01011000; 
   parameter[7:0] ANL_A_R1       = 8'b01011001; 
   parameter[7:0] ANL_A_R2       = 8'b01011010; 
   parameter[7:0] ANL_A_R3       = 8'b01011011; 
   parameter[7:0] ANL_A_R4       = 8'b01011100; 
   parameter[7:0] ANL_A_R5       = 8'b01011101; 
   parameter[7:0] ANL_A_R6       = 8'b01011110; 
   parameter[7:0] ANL_A_R7       = 8'b01011111; 
   
   // 60H - 6Fh
   parameter[7:0] JZ             = 8'b01100000; 
   parameter[7:0] AJMP_3         = 8'b01100001; 
   parameter[7:0] XRL_ADDR_A     = 8'b01100010; 
   parameter[7:0] XRL_ADDR_N     = 8'b01100011; 
   parameter[7:0] XRL_A_N        = 8'b01100100; 
   parameter[7:0] XRL_A_ADDR     = 8'b01100101; 
   parameter[7:0] XRL_A_IR0      = 8'b01100110; 
   parameter[7:0] XRL_A_IR1      = 8'b01100111; 
   parameter[7:0] XRL_A_R0       = 8'b01101000; 
   parameter[7:0] XRL_A_R1       = 8'b01101001; 
   parameter[7:0] XRL_A_R2       = 8'b01101010; 
   parameter[7:0] XRL_A_R3       = 8'b01101011; 
   parameter[7:0] XRL_A_R4       = 8'b01101100; 
   parameter[7:0] XRL_A_R5       = 8'b01101101; 
   parameter[7:0] XRL_A_R6       = 8'b01101110; 
   parameter[7:0] XRL_A_R7       = 8'b01101111; 
   
   // 70H - 7Fh
   parameter[7:0] JNZ            = 8'b01110000; 
   parameter[7:0] ACALL_3        = 8'b01110001; 
   parameter[7:0] ORL_C_BIT      = 8'b01110010; 
   parameter[7:0] JMP_A_DPTR     = 8'b01110011; 
   parameter[7:0] MOV_A_N        = 8'b01110100; 
   parameter[7:0] MOV_ADDR_N     = 8'b01110101; 
   parameter[7:0] MOV_IR0_N      = 8'b01110110; 
   parameter[7:0] MOV_IR1_N      = 8'b01110111; 
   parameter[7:0] MOV_R0_N       = 8'b01111000; 
   parameter[7:0] MOV_R1_N       = 8'b01111001; 
   parameter[7:0] MOV_R2_N       = 8'b01111010; 
   parameter[7:0] MOV_R3_N       = 8'b01111011; 
   parameter[7:0] MOV_R4_N       = 8'b01111100; 
   parameter[7:0] MOV_R5_N       = 8'b01111101; 
   parameter[7:0] MOV_R6_N       = 8'b01111110; 
   parameter[7:0] MOV_R7_N       = 8'b01111111; 
   
   // 80H - 8Fh
   parameter[7:0] SJMP           = 8'b10000000; 

⌨️ 快捷键说明

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