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

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

?? cputop.v

?? 4位RISC指令CPU源碼,需要的朋友可以看看!
?? V
字號:
//------------------------------------------- cputop.v ????? -----------------------------------------------------
/***********************************************************************
***  ?????cputop ????????????????cpu???????????
***                    ???????????????????????????????
***            ??????????????????????CPU????RTL??
***            ?????????????? 
************************************************************************/
`include "ram.v"
`include "rom.v"
`include "addr_decode.v"
`include "cpu.v"

`timescale 1ns / 100ps
`define PERIOD 100             // matches clk_gen.v
module cputop;
  reg reset_req,clock;
  integer test;
  reg [(3*8):0] mnemonic;    //array that holds 3 8-bit ASCII characters
  reg [12:0] PC_addr,IR_addr;
  wire [7:0] data;
  wire [12:0] addr;
  wire rd,wr,halt,ram_sel,rom_sel;

//------------------------   cpu ?????????ROM?RAM?????--------------------------------------
cpu   t_cpu (.clk(clock),.reset(reset_req),.halt(halt),.rd(rd),
                                       .wr(wr),.addr(addr),.data(data));

ram   t_ram  (.addr(addr[9:0]),.read(rd),.write(wr),.ena(ram_sel),.data(data));

rom   t_rom  (.addr(addr),.read(rd),.ena(rom_sel),.data(data));

addr_decode   t_addr_decode (.addr(addr),.ram_sel(ram_sel),.rom_sel(rom_sel));

//--------------------cpu ?????????ROM?RAM???????---------------------------------- 
initial
  begin 
    clock=1;
    //display time in nanoseconds
    $timeformat ( -9,  1, " ns", 12);
    display_debug_message;
    sys_reset;
    test1;
    $stop;
    test2;
    $stop;
    test3;
    $stop;
end
  task display_debug_message;
    begin
      $display("\n**************************************************");
         $display("*  THE FOLLOWING DEBUG TASK ARE AVAILABLE:           *");
         $display("* \"test1; \" to load the 1st diagnostic progran. *");
         $display("*  \"test2; \" to load the 2nd diagnostic program. *");
         $display("*  \"test3; \" to load the Fibonacci program.      *");
         $display("*****************************************************\n");
    end
  endtask
   task test1;
    begin
      test = 0;
      disable MONITOR;
      $readmemb ("test1.pro", t_rom.memory);
      $display("rom loaded   successfully!");
      $readmemb("test1.dat",t_ram.ram);
      $display("ram loaded   successfully!");
      #1 test = 1;
      #14800  ;
      sys_reset;
    end
   endtask
  
  task test2;
    begin
      test = 0;
      disable MONITOR;
      $readmemb("test2.pro",t_rom.memory);
      $display("rom loaded  successfully!");
      $readmemb("test2.dat",t_ram.ram);
      $display("ram loaded  successfully!");
      #1 test = 2;
      #11600;
      sys_reset;
    end
   endtask
  
  task test3;
    begin
      test = 0;
      disable MONITOR;
      $readmemb("test3.pro",t_rom.memory);
      $display("rom loaded  successfully!");
      $readmemb("test3.dat",t_ram.ram);
      $display("ram loaded  successfully!");
      #1 test = 3;
      #94000;
      sys_reset;
    end
   endtask
  
   
  task sys_reset;
    begin
      reset_req = 0;
      #(`PERIOD*0.7) reset_req = 1; 
      #(1.5*`PERIOD) reset_req = 0;  
    end
  endtask 

   always @(test)
    begin: MONITOR
      case (test)
       1: begin                        //display results when running test 1
            $display("\n*** RUNNING CPUtest1 - The Basic CPU Diagnostic Program ***");
            $display("\n     TIME           PC       INSTR      ADDR     DATA  ");
            $display("    ----------      ----     -----     -----       ----- ");
             while (test == 1) 
                  @(t_cpu.m_adr.pc_addr)//fixed
                  if ((t_cpu.m_adr.pc_addr%2 == 1)&&(t_cpu.m_adr.fetch == 1))//fixed 
                begin
                  # 60    PC_addr <=t_cpu.m_adr.pc_addr -1 ;
                          IR_addr <=t_cpu.m_adr.ir_addr;
                 # 340   $strobe("%t   %h     %s     %h  %h", $time, PC_addr, 
                                  mnemonic, IR_addr,data );
                      //HERE DATA HAS BEEN CHANGED T-CPU-M-REGISTER.DATA
               end  
 
           end
           
        2: begin
	     $display("\n*** RUNNING CPUtest2 - The Advanced CPU Diagnostic Program ***");
             $display("\n     TIME          PC       INSTR      ADDR     DATA  ");
             $display("   ----------      ---        -----       -----    ---- ");
             while (test == 2) 
               @(t_cpu.m_adr.pc_addr)
               if ((t_cpu.m_adr.pc_addr%2 == 1) 
                                    && (t_cpu.m_adr.fetch == 1))
               begin 
                # 60    PC_addr  <= t_cpu.m_adr.pc_addr - 1 ;
                        IR_addr  <= t_cpu.m_adr.ir_addr;
                # 340   $strobe("%t  %h  %s  %h %h", $time, PC_addr,
                                               mnemonic, IR_addr, data );
               end  
       
           end
        
        3: begin
             $display("\n***   RUNNING CPUtest3 - An Executable Program   ***");  
             $display("*** This program should calculate the fibonacci  ***");
             $display("\n    TIME      FIBONACCI NUMBER");
             $display(  "  ---------   -----------------");
             while (test == 3)
              begin 
                 wait ( t_cpu.m_alu.opcode == 3'h1) // display Fib. No. at end of program loop
                 $strobe("%t     %d", $time,t_ram.ram[10'h2]);
                 wait ( t_cpu.m_alu.opcode != 3'h1);
              end
           end       
      endcase
      
     end
//-------------------------------------------------------------------------
always @(posedge halt)       //STOP when HALT instruction decoded
    begin
      #500                
          $display("\n*********************************************");
            $display(    "**  A HALT INSTRUCTION WAS PROCESSED  !!!  **");
           $display(     "*********************************************\n");
    end
always #(`PERIOD/2) clock=~clock;   
always  @(t_cpu.m_alu.opcode)  
      //get an ASCII mnemonic for each opcode
    case(t_cpu.m_alu.opcode)
     3'b000  : mnemonic ="HLT";
     3'h1    : mnemonic = "SKZ";
     3'h2    : mnemonic = "ADD";
     3'h3    : mnemonic = "AND";
     3'h4    : mnemonic = "XOR";
     3'h5    : mnemonic = "LDA";
     3'h6    : mnemonic = "STO";
     3'h7    : mnemonic = "JMP";
     default : mnemonic = "???";
    endcase

endmodule
//------------------------------------------- cputop.v ????? -----------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美腿丝袜亚洲综合| 亚洲国产美女搞黄色| 日韩精品中文字幕一区| 欧美男人的天堂一二区| 精品国产乱码久久久久久1区2区| 在线视频一区二区三| 欧美做爰猛烈大尺度电影无法无天| 成人avav在线| 91免费版pro下载短视频| 色综合久久88色综合天天免费| 91免费视频大全| 欧美日韩亚洲综合在线 | 99久久婷婷国产综合精品电影| 国产精品香蕉一区二区三区| 精品一二三四区| 成人一二三区视频| 欧美在线观看18| 欧美大片在线观看| 中文字幕在线一区二区三区| 亚洲色图视频免费播放| 亚洲国产欧美在线| 精品一区二区免费| a4yy欧美一区二区三区| 欧美年轻男男videosbes| 精品噜噜噜噜久久久久久久久试看 | 亚洲综合色区另类av| 亚洲国产裸拍裸体视频在线观看乱了| 日韩电影在线观看网站| 丁香六月综合激情| 欧美猛男男办公室激情| 久久青草国产手机看片福利盒子 | 亚洲国产日韩精品| 国内精品第一页| 色婷婷亚洲综合| 日韩色视频在线观看| 亚洲人午夜精品天堂一二香蕉| 亚洲成av人**亚洲成av**| 国产成人在线影院| 538在线一区二区精品国产| 国产日韩欧美不卡在线| 三级亚洲高清视频| 99久久久久久99| 精品av综合导航| 亚洲综合在线第一页| 国产老肥熟一区二区三区| 欧美亚洲日本国产| 国产精品久久久久久久久免费桃花 | 欧美疯狂性受xxxxx喷水图片| 久久久国产一区二区三区四区小说| 亚洲一区二区三区爽爽爽爽爽| 国产九九视频一区二区三区| 5566中文字幕一区二区电影 | 欧美bbbbb| 久久久高清一区二区三区| 亚洲精品视频在线| 国产激情一区二区三区桃花岛亚洲| 欧美福利一区二区| 亚洲一区二区三区激情| 99久精品国产| 国产精品视频免费| 国产一区91精品张津瑜| 欧美一区二区精品| 日本系列欧美系列| 欧美日韩在线精品一区二区三区激情| 自拍偷拍亚洲欧美日韩| 成人h动漫精品一区二区 | av影院午夜一区| 国产肉丝袜一区二区| 精品写真视频在线观看| 日韩欧美国产三级| 精品一区二区三区在线视频| 91精品国产综合久久蜜臀| 日韩精彩视频在线观看| 欧美一级久久久久久久大片| 日本伊人精品一区二区三区观看方式| 欧美在线观看一二区| 午夜亚洲福利老司机| 欧美三片在线视频观看| 日韩国产在线观看| 日韩午夜在线观看视频| 国模冰冰炮一区二区| 久久综合网色—综合色88| 国产传媒一区在线| 亚洲国产电影在线观看| 色综合天天综合色综合av| 亚洲精品免费看| 91精品啪在线观看国产60岁| 日本不卡视频在线| 国产偷v国产偷v亚洲高清| 成人午夜视频网站| 一区二区三区四区在线| 欧美一区二区三区系列电影| 精品在线观看免费| 1000精品久久久久久久久| 在线观看一区日韩| 蜜臀av一区二区在线免费观看| 亚洲精品一线二线三线| www.久久精品| 亚洲成人在线免费| 国产色一区二区| 色偷偷一区二区三区| 免费成人你懂的| 国产精品美女久久福利网站| 欧美日韩三级一区二区| 国产精品中文字幕一区二区三区| 亚洲精品你懂的| 欧美精品一区二区三区一线天视频| 成人免费视频视频在线观看免费 | 成人ar影院免费观看视频| 亚洲一区二区三区免费视频| 欧美大片免费久久精品三p| a级高清视频欧美日韩| 日本不卡在线视频| 综合久久久久久| 精品久久久久久最新网址| 色婷婷综合久久久久中文| 国产伦理精品不卡| 亚洲一区二区三区在线看| 久久久久国产精品人| 欧美女孩性生活视频| 成人av网在线| 国产精品一区专区| 99久精品国产| 国产一区二区三区免费观看| 一区二区三区鲁丝不卡| 欧美国产日产图区| 欧美成人aa大片| 欧美高清视频不卡网| 欧美中文字幕久久 | 亚洲激情图片一区| 中文字幕精品综合| 久久久激情视频| 精品国产露脸精彩对白| 欧美高清视频在线高清观看mv色露露十八| 丁香激情综合国产| 国产福利视频一区二区三区| 蜜臀av亚洲一区中文字幕| 亚洲大型综合色站| 亚洲在线观看免费| 一区二区三区四区在线| 一区二区不卡在线视频 午夜欧美不卡在 | 麻豆精品视频在线| 日韩av不卡在线观看| 天堂午夜影视日韩欧美一区二区| 亚洲一卡二卡三卡四卡五卡| 又紧又大又爽精品一区二区| 综合色中文字幕| 亚洲欧洲成人精品av97| 亚洲欧洲精品一区二区精品久久久| 久久久99精品免费观看| 欧美成人aa大片| 久久久国产一区二区三区四区小说| 精品美女在线播放| xnxx国产精品| 国产人久久人人人人爽| 欧美国产日韩精品免费观看| 亚洲欧洲日产国产综合网| 亚洲欧美一区二区三区国产精品| 亚洲视频一区在线观看| 综合av第一页| 亚洲电影一区二区三区| 丝袜a∨在线一区二区三区不卡| 亚洲一区二区三区激情| 日韩精品视频网| 国内一区二区在线| 99久久免费视频.com| 在线精品视频一区二区三四| 欧美丰满美乳xxx高潮www| 日韩欧美成人激情| 国产欧美日韩在线视频| 亚洲美女免费视频| 轻轻草成人在线| 国产成人精品1024| 欧美午夜电影在线播放| 精品国产乱码久久| 亚洲欧美日韩精品久久久久| 婷婷国产v国产偷v亚洲高清| 国产毛片精品视频| 色婷婷激情一区二区三区| 日韩你懂的在线播放| 日本一区二区不卡视频| 亚洲尤物在线视频观看| 精久久久久久久久久久| 91日韩一区二区三区| 欧美大白屁股肥臀xxxxxx| 国产精品传媒在线| 蜜臀av性久久久久蜜臀aⅴ| 成人久久视频在线观看| 制服丝袜一区二区三区| 亚洲视频免费观看| 免费av网站大全久久| 色综合天天综合狠狠| 精品国产精品一区二区夜夜嗨| 亚洲精品水蜜桃| 国产成人无遮挡在线视频| 欧美久久婷婷综合色| 亚洲欧美日韩国产另类专区| 激情av综合网| 欧美二区在线观看| 一区二区久久久久久|