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

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

?? test.v

?? 8位RISC CPU的VERILOG編程 SOURCECODE
?? V
?? 第 1 頁 / 共 2 頁
字號:
//task dds_test;      begin      $display ("Free-RISC8 1.0.  This is the DDS Demo.");      #1;         $display ("Loading program memory with %s", "dds.rom");      $readmemh ("dds.rom", pram.mem);      fork         // Capture data         capture_data;                  // Run the clock         drive_clock;                  // Do a reset         reset_pic;                  // Monitor the number of cycles and set an absolute maximum number of cycles.         monitor_cycles (3000); // <--- this appeared about right for DDS demo to finish all bits                  // More specific monitors         //monitor_inst;         //monitor_portb;         //monitor_portc;                  // Catch end of simulation event due to max number of cycles or pattern from PIC code.         begin            @(ENDSIM);  // Catch the event.                        // Got it!            $display ("End of simulation signalled.  Killing simulation in a moment.");            #0; // Let anything else see this event...            $finish;         end      join   endendtask// *****************************  Generic Tasks  **************************  //// CYCLE monitor and end-of-simulation checker.//task monitor_cycles;   input max_cycles;      integer max_cycles;   integer cycles;   begin      cycles = 0;      fork         // Count cycles.         forever begin            @(posedge clk);            cycles = cycles + 1;         end                  // Watch for max cycles.  If we detect max cycles then throw our testbench ENDSIM event.         //         begin            wait (cycles == max_cycles);            $display ("MAXIMUM CYCLES EXCEEDED!");            ->ENDSIM;         end      join   endendtask// Generic Debug Display stuff.//task monitor_rom;   begin      forever begin         @(negedge clk);         $display ("ROM Address = %h, Data = %h", pramaddr, pramdata);      end   endendtasktask monitor_porta;   reg [7:0] last_porta;   begin      forever begin         @(negedge clk);         if (last_porta !== porta) begin            $display ("porta changes to: %h", porta);            last_porta = porta;         end      end   end         endtasktask monitor_portb;   reg [7:0] last_portb;   begin      forever begin         @(negedge clk);         if (last_portb !== portb) begin            $display ("MONITOR_PORTB: Port B changes to: %h", portb);            last_portb = portb;         end      end   endendtasktask monitor_portc;   reg [7:0] last_portc;   begin      forever begin         @(negedge clk);         if (last_portc !== portc) begin            $display ("MONITOR_PORTC: Port C changes to: %h", portc);            last_portc = portc;         end      end   endendtasktask monitor_w;   reg [7:0] last_w;   begin      forever begin         @(negedge clk);         if (debugw !== last_w) begin            $display ("W = %0h", debugw);         end         last_w = debugw;      end   endendtasktask monitor_pc;   begin      forever begin         @(negedge clk);         $display ("PC = %0h", debugpc);      end   endendtask// Monitor the INST register (e.g. the instruction) and display something// resembling a disassembler output.  We'll use several helping tasks to// look up an appopriate mnemonic.//task monitor_inst;   reg [11:0]    last_pc;   integer       opcode;   reg [8*8-1:0] mnemonic;      begin      fork         // Always keep a copy of the LAST value of the PC.  This is because         // of our pipelining.  The PC is really one value ahead.  You really         // want to see the address that corresponds to the instruction you         // are looking at.         //         forever begin            @(posedge clk);            last_pc = debugpc;         end         begin            #6;            forever begin               @(negedge clk);                              // OK.  We have an instruction.  Take this instruction and call some tasks               // to help us display a pretty output line.  We will look up a nice mnemonic, etc.               //               lookup_opcode   (debuginst, opcode);  // Look up a simpler "opcode" number instead of the actual instruction.               lookup_mnemonic (opcode, mnemonic);   // Look up the ASCII instruction name                              // Depending on the specific instruction, we want to print out different stuff.               // We may need to print out the 'K' field for literal instructions, or the 'f' field               // for the MOVF types of instruction, or only the address and mnemonic for               // simple instructions like SLEEP or CLRW.               //               if (opcode == CLRW   ||                    opcode == NOP    ||                    opcode == CLRWDT ||                   opcode == OPTION ||                   opcode == SLEEP) begin                  // These are instructions with no additional arguments.  Display the PC and MNEMONIC only.                  //                  $display ("MONITOR_INST: %h %s", last_pc, mnemonic);               end               else if (debuginst[11:10] == 2'b00) begin                  // These are the instructions with a register address.  Display the 'd' and 'f' fields.                  //                  $display ("MONITOR_INST: %h %s %0d(0x%h), %s",                      last_pc, mnemonic,                     debuginst[4:0], debuginst[4:0],                     (debuginst[5]) ? "f" : "W"                  );               end               else if (debuginst[11:10] == 2'b01) begin                  // These are the "Bit-Oriented" instructions with a bit reference and register address.                    // Display the 'b' and 'f' fields.                  //                  $display ("MONITOR_INST: %h %s bit=%d, f=%0d(0x%h)",                      last_pc, mnemonic,                     debuginst[7:5],                     debuginst[4:0], debuginst[4:0]                  );               end               else if (debuginst[11] == 1'b1) begin                  // These are the "Literal and Control" instructions with a literal field.  Display the 'k' field.                  //                  $display ("MONITOR_INST: %h %s %0d(0x%h)",                      last_pc, mnemonic,                     debuginst[7:0], debuginst[7:0]                  );               end               else begin                  $display ("MONITOR_INST: --- Unhandled instruction.. %h", debuginst);               end            end         end      join      endendtask// Given the actual 12-bit instruction, return the "opcode".  This is just an integer number// to help us handle printing and such and does NOT correspond to any hardware encoding.//task lookup_opcode;   input inst;   output opcode;      reg [11:0] inst;   integer    opcode;   begin      casex (inst)         12'b0000_0000_0000: opcode = NOP;         12'b0000_001X_XXXX: opcode = MOVWF;         12'b0000_0100_0000: opcode = CLRW;         12'b0000_011X_XXXX: opcode = CLRF;         12'b0000_10XX_XXXX: opcode = SUBWF;         12'b0000_11XX_XXXX: opcode = DECF;         12'b0001_00XX_XXXX: opcode = IORWF;         12'b0001_01XX_XXXX: opcode = ANDWF;         12'b0001_10XX_XXXX: opcode = XORWF;         12'b0001_11XX_XXXX: opcode = ADDWF;         12'b0010_00XX_XXXX: opcode = MOVF;         12'b0010_01XX_XXXX: opcode = COMF;         12'b0010_10XX_XXXX: opcode = INCF;         12'b0010_11XX_XXXX: opcode = DECFSZ;         12'b0011_00XX_XXXX: opcode = RRF;         12'b0011_01XX_XXXX: opcode = RLF;         12'b0011_10XX_XXXX: opcode = SWAPF;         12'b0011_11XX_XXXX: opcode = INCFSZ;         // *** Bit-Oriented File Register Operations         12'b0100_XXXX_XXXX: opcode = BCF;         12'b0101_XXXX_XXXX: opcode = BSF;         12'b0110_XXXX_XXXX: opcode = BTFSC;         12'b0111_XXXX_XXXX: opcode = BTFSS;         // *** Literal and Control Operations         12'b0000_0000_0010: opcode = OPTION;         12'b0000_0000_0011: opcode = SLEEP;         12'b0000_0000_0100: opcode = CLRWDT;         12'b0000_0000_0101: opcode = TRIS;         12'b0000_0000_0110: opcode = TRIS;         12'b0000_0000_0111: opcode = TRIS;         12'b1000_XXXX_XXXX: opcode = RETLW;         12'b1001_XXXX_XXXX: opcode = CALL;         12'b101X_XXXX_XXXX: opcode = GOTO;         12'b1100_XXXX_XXXX: opcode = MOVLW;         12'b1101_XXXX_XXXX: opcode = IORLW;         12'b1110_XXXX_XXXX: opcode = ANDLW;         12'b1111_XXXX_XXXX: opcode = XORLW;         default:            opcode = 0;      endcase   endendtask// Given the opcode (see task 'lookup_opcode') return the ASCII string for the instruction.//task lookup_mnemonic;   input opcode;   output mnemonic;      integer opcode;   reg [8*8-1:0]  mnemonic;   begin      case (opcode)         NOP:		mnemonic = "NOP     ";         MOVWF: 	mnemonic = "MOVWF   ";         CLRW:		mnemonic = "CLRW    ";         CLRF:		mnemonic = "CLRF    ";         SUBWF:		mnemonic = "SUBWF   ";         DECF:		mnemonic = "DECF    ";         IORWF:		mnemonic = "IORWF   ";         ANDWF:		mnemonic = "ANDWF   ";         XORWF:		mnemonic = "XORWF   ";         ADDWF:		mnemonic = "ADDWF   ";         MOVF:		mnemonic = "MOVF    ";         COMF:		mnemonic = "COMF    ";         INCF:		mnemonic = "INCF    ";         DECFSZ:	mnemonic = "DECFSZ  ";         RRF:		mnemonic = "RRF     ";         RLF:		mnemonic = "RLF     ";         SWAPF:		mnemonic = "SWAPF   ";         INCFSZ:	mnemonic = "INCFSZ  ";         // *** Bit-Oriented File Register Operations         BCF:		mnemonic = "BCF     ";         BSF:		mnemonic = "BSF     ";         BTFSC:		mnemonic = "BTFSC   ";         BTFSS:		mnemonic = "BTFSS   ";         // *** Literal and Control Operations         OPTION:	mnemonic = "OPTION  ";         SLEEP:		mnemonic = "SLEEP   ";         CLRWDT:	mnemonic = "CLRWDT  ";         TRIS: 		mnemonic = "TRIS    ";         RETLW:		mnemonic = "RETLW   ";         CALL:		mnemonic = "CALL    ";         GOTO:		mnemonic = "GOTO    ";         MOVLW:		mnemonic = "MOVLW   ";         IORLW:		mnemonic = "IORLW   ";         ANDLW:		mnemonic = "ANDLW   ";         XORLW:		mnemonic = "XORLW   ";         default:	mnemonic = "-XXXXXX-";      endcase   endendtaskendmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青草伊人久久| 色婷婷亚洲精品| 日韩视频国产视频| 天堂蜜桃91精品| 欧美福利视频一区| 蜜桃91丨九色丨蝌蚪91桃色| 欧美一卡二卡三卡四卡| 精品一区二区三区免费视频| 久久看人人爽人人| 92精品国产成人观看免费| 一区二区三区精品在线| 欧美高清视频一二三区 | 欧美日韩国产高清一区二区三区| 一区二区三区.www| 欧美一区日本一区韩国一区| 国内精品不卡在线| 国产精品成人免费| 欧美福利一区二区| 成人做爰69片免费看网站| 亚洲激情校园春色| 日韩欧美成人激情| 成人avav影音| 全部av―极品视觉盛宴亚洲| 久久久久国产精品免费免费搜索| 99精品在线免费| 偷拍一区二区三区四区| 久久精品视频在线看| 91年精品国产| 蜜臀av一级做a爰片久久| 中文字幕精品一区二区三区精品| 欧日韩精品视频| 狠狠色综合播放一区二区| 亚洲人成网站影音先锋播放| 日韩欧美在线123| 不卡av在线免费观看| 日韩国产欧美在线视频| 亚洲欧美一区二区视频| 欧美电影精品一区二区| 色婷婷激情久久| 国产精品一级片在线观看| 亚洲午夜三级在线| 国产精品久久久久久久岛一牛影视 | 亚洲欧美激情小说另类| 精品久久人人做人人爰| 欧洲生活片亚洲生活在线观看| 紧缚奴在线一区二区三区| 亚洲综合色噜噜狠狠| 国产女人aaa级久久久级| 日韩视频免费直播| 欧美午夜一区二区三区| 成人黄色免费短视频| 久久精品72免费观看| 亚洲一区二区美女| 亚洲欧美在线视频观看| 国产亚洲制服色| 精品三级在线看| 91.成人天堂一区| 在线观看日韩av先锋影音电影院| 粉嫩蜜臀av国产精品网站| 美女网站色91| 三级欧美在线一区| 一区二区国产视频| 亚洲少妇最新在线视频| 中文字幕精品一区二区三区精品| 亚洲精品一区二区三区精华液 | 欧美aaa在线| 亚洲一区二区三区四区在线免费观看| 国产欧美日韩三区| 久久久久9999亚洲精品| 精品免费99久久| 精品国产一二三区| 欧美成人一区二区三区片免费 | 久草热8精品视频在线观看| 亚洲一二三四在线| 一区二区三区视频在线观看| 亚洲欧洲日韩在线| 亚洲视频中文字幕| 亚洲精品久久嫩草网站秘色| 国产精品成人一区二区三区夜夜夜| 久久日一线二线三线suv| 精品福利一区二区三区免费视频| 日韩精品资源二区在线| 欧美电视剧在线看免费| 国产精品国产自产拍高清av| 亚洲一区二区三区三| 亚洲人成人一区二区在线观看| 中文字幕欧美激情一区| 国产精品久久久久久久久快鸭| 欧美激情在线看| 国产精品久久久久三级| 亚洲猫色日本管| 亚洲综合自拍偷拍| 五月天久久比比资源色| 日韩av二区在线播放| 精品一区二区免费视频| 国产精品综合一区二区| 成人va在线观看| 欧洲亚洲精品在线| 亚洲欧美偷拍另类a∨色屁股| 中文字幕亚洲综合久久菠萝蜜| 亚洲色图视频免费播放| 亚洲成人自拍一区| 六月婷婷色综合| 粉嫩aⅴ一区二区三区四区 | 欧美一区二区在线不卡| 欧美日韩一区二区在线观看视频| 欧美日韩国产一级片| 日韩欧美国产午夜精品| 国产欧美一区二区三区在线看蜜臀| 欧美国产欧美亚州国产日韩mv天天看完整| 国产精品女上位| 亚洲一区av在线| 精彩视频一区二区| 色婷婷精品久久二区二区蜜臂av | 日本一区二区三区四区在线视频| 1000部国产精品成人观看| 五月天欧美精品| 丁香啪啪综合成人亚洲小说| 色av成人天堂桃色av| 日韩手机在线导航| 亚洲视频电影在线| 麻豆精品一二三| 99视频在线精品| 精品国产伦一区二区三区观看体验 | 色88888久久久久久影院按摩 | 日本韩国欧美在线| 欧美成人a∨高清免费观看| 亚洲视频狠狠干| 精品一区二区在线播放| 91福利区一区二区三区| 久久久久久免费网| 天堂成人免费av电影一区| 成人小视频在线| 日韩午夜中文字幕| 亚洲一区二区视频在线观看| 国产二区国产一区在线观看| 欧美日韩一区二区在线观看| 国产色产综合产在线视频| 日韩激情中文字幕| 色婷婷精品大在线视频| 国产精品久久看| 麻豆freexxxx性91精品| 欧美日韩综合不卡| 亚洲视频一区二区免费在线观看| 黑人精品欧美一区二区蜜桃| 欧美日韩免费不卡视频一区二区三区| 欧美国产精品一区二区| 久久精品国产亚洲a| 欧美色图一区二区三区| 亚洲欧美自拍偷拍色图| 懂色av一区二区三区免费观看| 日韩一级片在线播放| 亚洲图片自拍偷拍| 91久久精品日日躁夜夜躁欧美| 国产情人综合久久777777| 蜜桃一区二区三区在线| 欧美剧情片在线观看| 亚洲综合图片区| 欧洲精品一区二区| 亚洲裸体在线观看| 色综合色综合色综合| 国产精品入口麻豆原神| 国产精品 日产精品 欧美精品| 日韩欧美二区三区| 久久精品国产网站| 久久综合九色综合97婷婷| 麻豆91精品91久久久的内涵| 欧美一区二区三区人| 蜜桃av噜噜一区| 欧美大白屁股肥臀xxxxxx| 免费观看在线综合色| 欧美一区二区三区四区五区| 视频在线观看国产精品| 制服丝袜国产精品| 免费成人在线影院| 精品国产一区二区精华| 国产精品主播直播| 国产女同互慰高潮91漫画| 不卡av在线免费观看| 亚洲精品一二三| 欧美日韩成人在线一区| 日韩福利视频网| 亚洲精品一区二区三区福利| 国产成人自拍高清视频在线免费播放| 久久久久99精品一区| 99精品视频免费在线观看| 亚洲欧美电影院| 欧美日韩亚洲综合在线| 青青草91视频| 国产亚洲欧美激情| 91在线看国产| 亚洲超丰满肉感bbw| 精品精品国产高清a毛片牛牛 | 在线播放日韩导航| 久久精品国产免费看久久精品| 久久女同精品一区二区| 99久精品国产| 麻豆一区二区三| 中文文精品字幕一区二区| 欧美丝袜丝交足nylons图片|