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

📄 ports.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            : ports.v
// File contents        : Module PORTS
// Purpose              : Port registers unit
//
// Destination library  : R80515_LIB
//
// Design Engineer      : M.B.
// 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 :
//*******************************************************************--

module PORTS
   (clk,
   rst,
   port0i,
   port1i,
   port2i,
   port3i,
   rmwinstr,
   ccubus,
   port0o,
   port1o,
   port2o,
   port3o,
   sfrdatai,
   sfrdataports,
   sfraddr,
   sfrwe,
   pio0,
   pio1,
   pio2,
   pio3,
   port_t,
   port_r,
   port_sel,
   port_o,
   debugreq
   );


   //  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; 

⌨️ 快捷键说明

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