亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? it51_tc01.v

?? 流片過的risc_8051源代碼 verilog語言描述的~
?? V
字號:
//-----------------------------------------------------------------------------
//   IT51 (Improved-T51)                                                     --
//                                                                           --
//   VERSION: 030723                                                         --
//                                                                           --
//   Contact: yfchen58@gmail.com                                             --
//                                                                           --
//-----------------------------------------------------------------------------
//                                                                           --
//  IT51 - Improved T51 (VHDL 1-Cycle 8051 Compatible Microcontroller)       --
//  Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org)             --
//                          Yung-Fu Chen (yfchen58@ms49.hinet.net)           --
//                                                                           --
//-----------------------------------------------------------------------------
//  FETURE                                                                   --
//     . IT51_top interface is similar to synopsys DW8051                    --
//     . High-Performance 1-Cycle 8051                                       --
//     . instruction compatible with standard DW8051                         --
//     . 256 byte internal data memory                                       --
//     . up to 64KB external data memory                                     --
//     . up to 64KB internal program memory                                  --
//     . export sfr-bus                                                      --
//     . no dual-port memory used                                            --
//     . no watch-dog timer                                                  --
//     . dual DPTR (DPTR0, DPTR1), refer to DW8051                           --
//     . sleep mode support, refer to DW8051                                 --
//     . no stop mode                                                        --
//     . six external interrupt, refer to DW8051                             --
//     . pass all DW8051 test-pattern                                        --
//     . UART/Timer are not fully tested yet                                 --
//     . no internal tri-state bus                                           --
//     . 2-Cycle MUL Instruction                                             --
//                                                                           --
//-----------------------------------------------------------------------------
//                                                                           --
//  IT51_top (Interface Compatible with Synopsys DW8051)                     --
//     |                                                                     --
//     +-- IT51_core (Control Unit)                                          --
//     |       |                                                             --
//     |       +-- IT51_ALU (ALU)                                            --
//     |               |                                                     --
//     |               +-- IT51_MD (MUL/DIV)                                 --
//     |                                                                     --
//     +-- IT51_Glue (Glue Logic)                                            --
//     |                                                                     --
//     +-- IT51_TC01 (Timer/Counter-1)                                       --
//     |                                                                     --
//     +-- IT51_TC2 (Timer/Counter-2)                                        --
//     |                                                                     --
//     +-- IT51_UART (UART)                                                  --
//                                                                           --
//-----------------------------------------------------------------------------
// ============================================================================
// The original T51 license is listed below:
// ============================================================================
//
// 8051 compatible microcontroller core
//
// Version : 0218
//
// Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org)
//
// All rights reserved
//
// Redistribution and use in source and synthezised forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// Redistributions in synthesized form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// Neither the name of the author nor the names of other contributors may
// be used to endorse or promote products derived from this software without
// specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
// Please report bugs to the author, but before you do so, please
// make sure that this is not a derivative work and that
// you have the latest version of this file.
//
// The latest version of this file can be found at:
//	http://www.opencores.org/cvsweb.shtml/t51/
//
// Limitations :
//
// File history :
//
// ============================================================================
// use IEEE.numeric_std.all;
module IT51_TC01 (Clk, Rst_n, T0, T1, INT0, INT1, M_Sel, H0_Sel, L0_Sel, H1_Sel, L1_Sel, R0, R1, M_Wr, H0_Wr, L0_Wr, H1_Wr, L1_Wr, Data_In, Data_Out, OF0, OF1);

   input Clk; 
   input Rst_n; 
   input T0; 
   input T1; 
   input INT0; 
   input INT1; 
   input M_Sel; 
   input H0_Sel; 
   input L0_Sel; 
   input H1_Sel; 
   input L1_Sel; 
   input R0; 
   input R1; 
   input M_Wr; 
   input H0_Wr; 
   input L0_Wr; 
   input H1_Wr; 
   input L1_Wr; 
   input[7:0] Data_In; 
   output[7:0] Data_Out; 
   wire[7:0] Data_Out;
   output OF0; 
   reg OF0;
   output OF1; 
   reg OF1;

   reg[7:0] TMOD; 
   reg[15:0] Cnt0; 
   reg[15:0] Cnt1; 
   reg Tick0; 
   reg Tick1; 
   reg Tick12; 

   // Registers and counter
   assign Data_Out = (H0_Sel == 1'b1) ? Cnt0[15:8] : (L0_Sel == 1'b1) ? Cnt0[7:0] : (H1_Sel == 1'b1) ? Cnt1[15:8] : (L1_Sel == 1'b1) ? Cnt1[7:0] : (M_Sel == 1'b1) ? TMOD : 8'bxxxxxxxx ;

   always @(negedge Rst_n or posedge Clk)
   begin
      if (Rst_n == 1'b0)
      begin
         TMOD <= {8{1'b0}} ; 
         Cnt0 <= {16{1'b0}} ; 
         Cnt1 <= {16{1'b0}} ; 
         OF0 <= 1'b0 ; 
         OF1 <= 1'b0 ; 
      end
      else
      begin
         OF0 <= 1'b0 ; 
         OF1 <= 1'b0 ; 
         if (TMOD[1:0] == 2'b00)
         begin
            if (Tick0 == 1'b1)
            begin
               Cnt0[12:0] <= Cnt0[12:0] + 1 ; 
               if (Cnt0[12:0] == 13'b1111111111111)
               begin
                  OF0 <= 1'b1 ; 
               end 
            end 
         end 
         if (TMOD[5:4] == 2'b00)
         begin
            if (Tick1 == 1'b1)
            begin
               Cnt1[12:0] <= Cnt1[12:0] + 1 ; 
               if (Cnt1[12:0] == 13'b1111111111111)
               begin
                  OF1 <= 1'b1 ; 
               end 
            end 
         end 
         if (TMOD[1:0] == 2'b01)
         begin
            if (Tick0 == 1'b1)
            begin
               Cnt0 <= Cnt0 + 1 ; 
               if (Cnt0 == 16'b1111111111111111)
               begin
                  OF0 <= 1'b1 ; 
               end 
            end 
         end 
         if (TMOD[5:4] == 2'b01)
         begin
            if (Tick1 == 1'b1)
            begin
               Cnt1 <= Cnt1 + 1 ; 
               if (Cnt1 == 16'b1111111111111111)
               begin
                  OF1 <= 1'b1 ; 
               end 
            end 
         end 
         if (TMOD[1:0] == 2'b10)
         begin
            if (Tick0 == 1'b1)
            begin
               Cnt0[7:0] <= Cnt0[7:0] + 1 ; 
               if (Cnt0[7:0] == 8'b11111111)
               begin
                  Cnt0[7:0] <= Cnt0[15:8] ; 
                  OF0 <= 1'b1 ; 
               end 
            end 
         end 
         if (TMOD[5:4] == 2'b10)
         begin
            if (Tick1 == 1'b1)
            begin
               Cnt1[7:0] <= Cnt1[7:0] + 1 ; 
               if (Cnt1[7:0] == 8'b11111111)
               begin
                  Cnt1[7:0] <= Cnt1[15:8] ; 
                  OF1 <= 1'b1 ; 
               end 
            end 
         end 
         if (TMOD[1:0] == 2'b11)
         begin
            if (Tick0 == 1'b1)
            begin
               Cnt0[7:0] <= Cnt0[7:0] + 1 ; 
               if (Cnt0[7:0] == 8'b11111111)
               begin
                  OF0 <= 1'b1 ; 
               end 
            end 
            OF1 <= 1'b0 ; 
            if (R1 == 1'b1 & Tick12 == 1'b1)
            begin
               Cnt0[15:8] <= Cnt0[15:8] + 1 ; 
               if (Cnt1[15:8] == 8'b11111111)
               begin
                  OF1 <= 1'b1 ; 
               end 
            end 
         end 
         // Register write
         if (M_Wr == 1'b1)
         begin
            TMOD <= Data_In ; 
         end 
         if (H0_Wr == 1'b1)
         begin
            Cnt0[15:8] <= Data_In ; 
         end 
         if (L0_Wr == 1'b1)
         begin
            Cnt0[7:0] <= Data_In ; 
         end 
         if (H1_Wr == 1'b1)
         begin
            Cnt1[15:8] <= Data_In ; 
         end 
         if (L1_Wr == 1'b1)
         begin
            Cnt1[7:0] <= Data_In ; 
         end 
      end 
   end 

   // Tick generator
   always @(posedge Clk or negedge Rst_n)
   begin
      reg[3:0] Prescaler; 
      reg[1:0] T0_r; 
      reg[1:0] T1_r; 
      reg[1:0] I0_r; 
      reg[1:0] I1_r; 
      if (Rst_n == 1'b0)
      begin
         Prescaler <= {4{1'b0}}; 
         Tick0 <= 1'b0 ; 
         Tick1 <= 1'b0 ; 
         Tick12 <= 1'b0 ; 
         T0_r <= 2'b00; 
         T1_r <= 2'b00; 
         I0_r <= 2'b00; 
         I1_r <= 2'b00; 
      end
      else
      begin
         Tick0 <= 1'b0 ; 
         Tick1 <= 1'b0 ; 
         Tick12 <= 1'b0 ; 
         if (R0 == 1'b1 & ((I0_r[1]) == 1'b1 | (TMOD[3]) == 1'b0))
         begin
            if ((TMOD[2]) == 1'b1)
            begin
               Tick0 <= T0_r[0] & ~T0_r[1] ; 
            end
            else
            begin
               Tick0 <= Tick12 ; 
            end 
         end 
         if (R1 == 1'b1 & ((I1_r[1]) == 1'b1 | (TMOD[7]) == 1'b0))
         begin
            if ((TMOD[6]) == 1'b1)
            begin
               Tick1 <= T1_r[0] & ~T1_r[1] ; 
            end
            else
            begin
               Tick1 <= Tick12 ; 
            end 
         end 
         T0_r[1] <= T0_r[0]; 
         T1_r[1] <= T1_r[0]; 
         T0_r[0] <= T0; 
         T1_r[0] <= T1; 
         I0_r[1] <= I0_r[0]; 
         I1_r[1] <= I1_r[0]; 
         I0_r[0] <= INT0; 
         I1_r[0] <= INT1; 
         if (Prescaler == 4'b1011)
         begin
            Prescaler <= 4'b0000; 
            Tick12 <= 1'b1 ; 
         end
         else
         begin
            Prescaler <= Prescaler + 1; 
         end 
      end
      //			if FastCount then
      //				Tick12 <= '1';
      //			end if; 
   end 
endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美精品综合| 国产精品中文欧美| 国产精品18久久久久久久网站| av午夜精品一区二区三区| 91麻豆精品国产| 亚洲欧美另类图片小说| 国产麻豆午夜三级精品| 欧美精品1区2区| 亚洲欧美日韩国产综合| 国产乱子伦视频一区二区三区| 欧美色图第一页| 亚洲欧洲99久久| 国产乱子伦一区二区三区国色天香| 欧美视频一区二区三区四区 | 欧美三级三级三级| 中文字幕一区视频| 国产精品白丝jk黑袜喷水| 日韩欧美中文字幕制服| 亚洲制服丝袜av| 在线观看日韩精品| 亚洲情趣在线观看| www.日韩大片| 亚洲天堂2016| 91麻豆swag| 亚洲乱码国产乱码精品精小说| 国产成人精品三级| 欧美国产乱子伦| 国产精品亚洲午夜一区二区三区 | 欧美唯美清纯偷拍| 亚洲老司机在线| 色婷婷综合久久久中文一区二区| 国产精品乱码一区二三区小蝌蚪| 国产二区国产一区在线观看| 精品国产一区二区三区四区四| 蜜桃av一区二区三区电影| 欧美剧在线免费观看网站| 午夜精品福利在线| 91精品国产入口| 奇米色一区二区| 精品久久国产老人久久综合| 极品少妇xxxx精品少妇| 久久久久久日产精品| 国内精品国产成人| 国产精品毛片大码女人| 91在线视频观看| 亚洲一级二级三级| 日韩欧美的一区二区| 老司机精品视频一区二区三区| 欧美大片国产精品| 国产白丝精品91爽爽久久| 国产精品高潮呻吟久久| 91福利社在线观看| 日本三级韩国三级欧美三级| 欧美不卡视频一区| 成人一区二区三区在线观看| 亚洲精品视频在线观看网站| 欧美日韩精品二区第二页| 麻豆精品新av中文字幕| 中文字幕va一区二区三区| 欧美在线观看视频在线| 免费在线欧美视频| 欧美激情一区二区| 欧美日韩不卡在线| 国产一区 二区| 一区2区3区在线看| 久久亚洲捆绑美女| 99精品国产99久久久久久白柏| 亚洲第一二三四区| 国产夜色精品一区二区av| 91福利精品第一导航| 国模套图日韩精品一区二区| 亚洲日本在线观看| 久久综合久久综合亚洲| 色域天天综合网| 久久黄色级2电影| 亚洲精品视频在线观看免费| 日韩精品专区在线| 91毛片在线观看| 国产美女在线观看一区| 亚洲成人免费观看| 国产精品久久久久永久免费观看 | 欧美激情在线观看视频免费| 欧美日产在线观看| 成人免费视频视频| 久久成人羞羞网站| 亚洲午夜久久久久久久久久久| 国产日韩精品视频一区| 7777精品久久久大香线蕉 | 欧美一区二区三区视频| 不卡区在线中文字幕| 精品一区精品二区高清| 婷婷综合五月天| 亚洲免费观看视频| 中文字幕一区二区三区四区不卡 | 一区二区三区 在线观看视频| 2021久久国产精品不只是精品| 欧美揉bbbbb揉bbbbb| av影院午夜一区| 国产不卡高清在线观看视频| 日本不卡中文字幕| 亚洲图片欧美一区| 亚洲人123区| 亚洲欧洲精品一区二区精品久久久 | 99re在线精品| 国产激情精品久久久第一区二区| 蜜桃久久久久久| 日韩精品一卡二卡三卡四卡无卡| 一区二区三区 在线观看视频| 中文字幕一区二区不卡| 国产精品久久久久久久第一福利 | 日韩亚洲电影在线| 欧美一级高清大全免费观看| 欧美日产在线观看| 欧美夫妻性生活| 日韩一区二区三区在线视频| 宅男噜噜噜66一区二区66| 欧美人狂配大交3d怪物一区| 欧美理论在线播放| 日韩亚洲欧美在线观看| 精品国产免费一区二区三区四区| 日韩精品一区二区三区中文精品 | 国内精品视频666| 国产一区二区三区黄视频| 国产精选一区二区三区| 国产1区2区3区精品美女| av爱爱亚洲一区| 欧美午夜免费电影| 日韩无一区二区| 久久日韩精品一区二区五区| 国产亚洲欧美日韩在线一区| 国产蜜臀av在线一区二区三区| 国产精品久久久久久久裸模| 亚洲天堂av一区| 日韩av中文在线观看| 国产综合久久久久影院| eeuss鲁片一区二区三区在线看| 色综合天天综合网天天看片| 欧美日韩国产欧美日美国产精品| 日韩一区二区电影网| 国产女同互慰高潮91漫画| 亚洲色图欧美在线| 午夜视频在线观看一区| 国产一区三区三区| 99精品视频一区二区| 欧美色网一区二区| 久久综合久久综合久久| 中文字幕在线免费不卡| 日日噜噜夜夜狠狠视频欧美人 | 久久免费午夜影院| 国产精品久久久久久久久免费丝袜 | 精品国产在天天线2019| 国产视频一区在线观看| 樱花草国产18久久久久| 免费久久精品视频| 99在线精品观看| 欧美电影免费观看高清完整版在线观看 | 国产成人自拍高清视频在线免费播放| aaa亚洲精品一二三区| 91精品国产乱码久久蜜臀| 国产精品人妖ts系列视频 | 亚洲一区在线看| 国产一区二区女| 欧美疯狂做受xxxx富婆| 中文乱码免费一区二区| 毛片一区二区三区| 日本国产一区二区| 欧美高清在线精品一区| 日韩精品免费专区| 91免费看视频| 国产喂奶挤奶一区二区三区| 亚洲成人免费视频| 91视频一区二区| 中文字幕不卡在线观看| 美女视频黄 久久| 欧美艳星brazzers| 国产精品入口麻豆原神| 久久福利资源站| 欧美精品丝袜久久久中文字幕| 国产精品久久久久久久午夜片| 久久国产夜色精品鲁鲁99| 欧美日韩国产一级| 亚洲精品中文字幕在线观看| 国产河南妇女毛片精品久久久| 欧美精品成人一区二区三区四区| 亚洲美女在线国产| 99久久精品费精品国产一区二区| 精品国产青草久久久久福利| 免费精品视频最新在线| 欧美高清视频www夜色资源网| 亚洲激情一二三区| 91在线porny国产在线看| 欧美国产成人精品| 高清不卡一区二区在线| 国产无人区一区二区三区| 国产曰批免费观看久久久| 精品福利一区二区三区免费视频| 蜜乳av一区二区| 欧美成人伊人久久综合网| 美女网站一区二区| 精品久久久久久最新网址|