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

📄 r80515.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            : r80515.v
// File contents        : Module R80515
// Purpose              : Top-level structure of R80515
//                        Synthesisable HDL Core specifically designed
//                        for reusability.
//
// Destination library  : R80515_LIB
//
// Design Engineer      : M.B.
// Co-design Engineer   : D.L D.K. A.B. R.Z.
// Quality Engineer     : M.B.
// Version              : 1.15.V04
// Last modification    : 2002-11-26
//---------------------------------------------------------------------

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

//*******************************************************************--
// Modifications with respect to Version 1.01.E00 :
// 1.01.E01   :
// 1999-11-25 : Removed output rxd1o
// 1.10.E00   :
// 2001-09-03 : Implemented PMU unit
//            : Added clkpero, clkcpuo outputs
//            : Added clkper, clkcpu inputs
// 1.11.E00   :
// 2002-04-04 : Added On-Chip Debug Support Interface
// 1.13.V00   :
// 2002-09-25 : Added parameter ADDR_HIGH_P2_SEL
// 1.15.E00   :     
// 2002-10-16 : Added mamacki and memack ports 
// 1.15.E01   :     
// 2002-10-23 : Added RSTCTRL component
// 1.15.V03   :     
// 2003-01-31 : Added mempsacko port 
//*******************************************************************--

module R80515
   (
   clk,
   clkcpu,
   clkper,
   reset,
   swd,
   port0i,
   port1i,
   port2i,
   port3i,
   int0,
   int1,
   int2,
   int3,
   int4,
   int5,
   int6,
   cc0,
   cc1,
   cc2,
   cc3,
   rxd0i,
   rxd1i,
   t0,
   t1,
   t2,
   t2ex,
   debugreq,
   debugstep,
   debugprog,
   debugack,
   flush,
   fetch,
   acc,
   clkcpuo,
   clkpero,
   port0o,
   port1o,
   port2o,
   port3o,
   rxd0o,
   txd0,
   txd1,
   mempsack,
   memack,
   memdatai,
   mempsacko,
   memdatao,
   memaddr,
   mempswr,
   mempsrd,
   memwr,
   memrd,
   ramdatai,
   ramdatao,
   ramaddr,
   ramwe,
   ramoe,
   sfrdatai,
   sfrdatao,
   sfraddr,
   sfrwe,
   sfroe,  
   // my own control signal /////////////////
   eal,
   eint0,
   eint1,
   etm0,
   etm1,
   etm2,
   esrl0,
   esrl1,
   cnt0_mode,
   cnt1_mode,
   coca0_mode,
   coca1_mode,
   coca2_mode,
   coca3_mode,
   cnt2_mode,
   rtm2_mode,  
   // port inout control signal
   pio0,     
   pio1,
   pio2,
   pio3,
   // isp port control
   port_r,
   port_t,
   port_sel,
   port_o
   );

   //-----------------------------------------------------------------
   // Select high ordered half of address during indirect addressing
   //-----------------------------------------------------------------
   parameter ADDR_HIGH_P2_SEL   = 1;   
   
   //  Control signal inputs
   input    clk;           // Global clock input
   input    clkcpu;        // CPU clock input
   input    clkper;        // Peripheral clock input
   input    reset;         // Hardware reset input
   input    swd;           // Start Watchdog Timer input
   
   //  Port inputs
   input    [7:0] port0i; 
   input    [7:0] port1i; 
   input    [7:0] port2i; 
   input    [7:0] port3i; 
   
   //  External interrupt/Port alternate signals
   input    int0;          // External interrupt 0
   input    int1;          // External interrupt 1
   input    int2;          // External interrupt 2
   input    int3;          // External interrupt 3
   input    int4;          // External interrupt 4
   input    int5;          // External interrupt 5
   input    int6;          // External interrupt 6
   
   //  Compare Capture/Port alternate signals
   input    cc0;           // Compare/Capture 0 input
   input    cc1;           // Compare/Capture 1 input
   input    cc2;           // Compare/Capture 2 input
   input    cc3;           // Compare/Capture 3 input
   
   //  Serial/Port alternate signals
   input    rxd0i;         // Serial 0 receive data
   input    rxd1i;         // Serial 1 receive data
   
   //  Timer/Port alternate signals
   input    t0;            // Timer 0 external input
   input    t1;            // Timer 1 external input
   input    t2;            // Timer 2 external input
   input    t2ex;          // Timer 2 capture trigger

   // On-Chip Debug Support Interface
   input    debugreq;      // debug mode request
   input    debugstep;     // debug mode single-step
   input    debugprog;     // debugger program select

   output   debugack;      // debugger acknowledge signal
   output   flush;         // branch instruction fetch
   output   fetch;         // no-branch instruction fetch
   output   [7:0] acc;

   //  Control signal outputs
   output   clkcpuo;       // CPU clock input
   wire     clkcpuo;
   output   clkpero;       // Peripheral clock input
   wire     clkpero;
           
   //  Port outputs
   output   [7:0] port0o; 
   wire     [7:0] port0o;
   output   [7:0] port1o; 
   wire     [7:0] port1o;
   output   [7:0] port2o; 
   wire     [7:0] port2o;
   output   [7:0] port3o; 
   wire     [7:0] port3o;
   
   //  Serial/Port alternate signals
   output   rxd0o;         // Serial 0 receive clock
   wire     rxd0o;
   output   txd0;          // Serial 0 transmit data
   wire     txd0;
   output   txd1;          // Serial 1 transmit data
   wire     txd1;
   
   //  Memory interface
   input    mempsack;
   input    memack;
   input    [7:0] memdatai;
   output   mempsacko;     // Program store acknowledge
   wire     mempsacko;
   output   [7:0] memdatao; 
   output   [15:0] memaddr; 
   output   mempswr;       // Program store write enable
   output   mempsrd;       // Program store read enable
   wire     mempsrd;
   output   memwr;         // Memory write enable
   output   memrd;         // Memory read enable
   
   //  Data file interface
   input    [7:0] ramdatai; 
   output   [7:0] ramdatao; 
   wire     [7:0] ramdatao;
   output   [7:0] ramaddr; 
   wire     [7:0] ramaddr;
   output   ramwe;         // Data file write enable
   wire     ramwe;
   output   ramoe;         // Data file output enable
   wire     ramoe;  
   

   
   //  Data file interface
   input    [7:0] sfrdatai; 
   output   [7:0] sfrdatao; 
   wire     [7:0] sfrdatao;
   output   [6:0] sfraddr; 
   wire     [6:0] sfraddr;
   output   sfrwe;         // SFR write enable
   wire     sfrwe;
   output   sfroe; 
   wire     sfroe;   



   //  Read-Modify-Write Instr
   wire     rmwinstr;   
      
   
   
   // my own control signal
   output   eal;
   wire     eal;
   output   eint0;
   wire     eint0;
   output   eint1;
   wire     eint1;
   output   etm0;
   wire     etm0;
   output   etm1;
   wire     etm1;
   output   etm2;
   wire     etm2;
   output   esrl0;
   wire     esrl0;
   output   esrl1;
   wire     esrl1;
   output   cnt0_mode;
   wire     cnt0_mode;
   output   cnt1_mode;
   wire     cnt1_mode;
   output   [1:0] coca0_mode;
   output   [1:0] coca1_mode;
   output   [1:0] coca2_mode;
   output   [1:0] coca3_mode;
   wire     [1:0] coca0_mode;
   wire     [1:0] coca1_mode;
   wire     [1:0] coca2_mode;
   wire     [1:0] coca3_mode;  
   output   [1:0] cnt2_mode;
   wire     [1:0] cnt2_mode;
   output   [1:0] rtm2_mode;
   wire     [1:0] rtm2_mode;   
   
   // port inout control signal
   output   pio0;
   output   pio1;
   output   pio2;
   output   pio3; 
   wire     pio0;
   wire     pio1;
   wire     pio2;
   wire     pio3;       
   
   //  isp port control
   input    [7:0] port_t;     
   input    [1:0] port_sel;   
   input          port_o;
   
   output   [7:0] port_r;
   wire     [7:0] port_r;


   //---------------------------------------------------------------

   //---------------------------------------------------------------
   // ADC interrupt flag
   //---------------------------------------------------------------
   wire     iadc; 
   
   //---------------------------------------------------------------
   // Special function register interface
   //---------------------------------------------------------------
   wire     int_sfrwe; 
   wire     int_sfroe; 
   
   //---------------------------------------------------------------
   // Aritmetic Logic Unit
   //---------------------------------------------------------------
   wire     [7:0] accreg; 
   wire     [7:0] aluresult; 
   wire     [1:0] regsbank; 
   wire     bitvalue; 
   wire     cdjump; 

⌨️ 快捷键说明

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