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

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

?? multiplier_implicit_2.v

?? Vlerilog HDL高級數字設計源碼
?? V
字號:
`define 		word_size 		4
module Multiplier_IMP_2 (product, Ready, Done, word1, word2, Start, clock, reset);

  parameter 				L_word = `word_size;
  output 		[2*L_word -1: 0] 		product;
  output 					Ready, Done;
  input 		[L_word -1: 0] 		word1, word2;
  input 					Start, clock, reset;
  wire 		[L_word -1:0] 		multiplier;
  wire 					Flush, Load_words, Load_multiplier,  Load_multiplicand, Shift, Add_shift;

  Datapath_Unit_IMP_2 M1 
    (
    product, multiplier, word1, word2, Flush, Load_words, Load_multiplier,  Load_multiplicand, 
    Shift, Add_shift, clock, reset
    );

  Controller_IMP_2 M2 
    (
    Ready, Flush, Load_words, Load_multiplier,  Load_multiplicand, 
    Shift, Add_shift, Done, word1, word2, multiplier, Start, clock, reset
    );
endmodule

module Controller_IMP_2  
  (
  Ready, Flush, Load_words, Load_multiplier,  Load_multiplicand, 
  Shift, Add_shift, Done, word1, word2, multiplier, Start, clock, reset
  );
  parameter 				L_word = `word_size;
  output 					Ready, Flush;
  output					Load_words, Load_multiplier,  Load_multiplicand;
  output  				Shift, Add_shift, Done;
  input 		[L_word -1:0] 		word1, word2, multiplier;
  input 					Start, clock, reset;

  reg 					Ready, Flush, Load_words, Load_multiplier,  Load_multiplicand;
  reg					Shift, Add_shift, Done;
  integer 				k;
  wire 					Empty = (word1 == 0 || word2 == 0);       

  always @ (posedge clock or posedge reset) begin: Main_Block  
		 
    if (reset) begin Clear_Regs;  disable Main_Block; end
    else if (Start != 1) begin: Idling
      Flush <= 0; Ready <= 1; 
      Load_words <= 0; Load_multiplier <= 0; Load_multiplicand <= 0; 
      Shift <= 0; Add_shift <= 0;
    end  // Idling
 
    else if (Start && Empty) begin: Early_Terminate
     Flush <= 1; Ready <= 0; Done <= 0;
      @ (posedge clock or posedge reset) 
      if (reset) begin Clear_Regs;  disable Main_Block; end
      else begin 
        Flush <= 0; Ready <= 1;  Done <= 1;
      end 
    end  // Early_Terminate

    else if (Start && (word1== 1)) begin: Load_Multiplier_Direct
      Ready <= 0; Done <= 0;
      Load_multiplier <= 1; 
      @ (posedge clock or posedge reset) 
        if (reset) begin Clear_Regs; disable Main_Block; end
        else begin Ready <= 1; Done <= 1; end
    end

    else if (Start && (word2== 1)) begin: Load_Multiplicand_Direct
      Ready <= 0; Done <= 0;
      Load_multiplicand <= 1; 
      @ (posedge clock or posedge reset) 
        if (reset) begin Clear_Regs; disable Main_Block; end
        else begin Ready <= 1; Done <= 1; end
    end

    else if (Start ) begin: Load_and_Multiply      
      Ready <= 0; Done <= 0; Flush  <= 0; Load_words <= 1;
      @ (posedge clock or posedge reset) 			 
      if (reset) begin Clear_Regs; disable Main_Block; end
      else begin: Not_Reset					 
        Load_words <= 0; 
        if (word2[0]) Add_shift <= 1; else Shift <= 1; 
        begin: Wrapper
          forever begin: Multiplier_Loop
            @ (posedge clock or posedge reset) 
              if (reset) begin Clear_Regs; disable Main_Block; end
              else begin // multiple cycles
                Shift <= 0; 
                Add_shift <= 0;  
                if (multiplier == 1) begin Done <= 1;  
                  @ (posedge clock or posedge reset) 
                  if (reset) begin Clear_Regs; disable Main_Block; end
                  else disable Wrapper;
                end
                else if (multiplier[1]) Add_shift <= 1; 
                else Shift <= 1;  // Notice use of multiplier[1]
              end // multiple cycles
          end // Multiplier_Loop
        end // Wrapper
        Ready <= 1;
      end // Not_Reset
    end  // Load_and_Multiply
  end // Main_Block
  
  task Clear_Regs;
    begin
      Flush <= 0; Ready <= 0; Done <= 0; 
      Load_words <= 0; Load_multiplier <= 0; Load_multiplicand <= 0; 
      Shift <= 0; Add_shift <= 0; 
    end
  endtask 
endmodule
module Datapath_Unit_IMP_2 
  (
   product, multiplier, word1, word2, Flush, Load_words, Load_multiplier,  Load_multiplicand, 
   Shift, Add_shift, clock, reset
  );
  parameter 			L_word = `word_size;
  output 		[2*L_word -1: 0] 	product;
  output 		[L_word -1: 0] 	multiplier;
  input 		[L_word -1: 0] 	word1, word2;
  input 				Flush, Load_words, Load_multiplier,  Load_multiplicand, Shift, Add_shift, clock, reset;
  reg 		[2*L_word -1: 0] 	product;
  reg 		[2*L_word -1: 0] 	multiplicand;
  reg 		[L_word -1: 0]  	multiplier;

// Datapath Operations
always @ (posedge clock or posedge reset) 
    if (reset) begin multiplier <= 0; multiplicand <= 0; product <= 0; end
    else begin 
      if (Flush) product <= 0;  
      else if (Load_words == 1)  begin 
        multiplicand <= word1;
        multiplier <= word2; 
        product <= 0; end
     else if (Load_multiplicand) begin
        product <= word1; end
    else if (Load_multiplier) begin
        product <= word2; end
    else if (Shift) begin 
        multiplier <= multiplier >> 1; 
        multiplicand <= multiplicand << 1; end
    else if (Add_shift) begin 
        multiplier <= multiplier >> 1; 
        multiplicand <= multiplicand << 1;    
        product <= product + multiplicand; end
    end 
endmodule 

  

module test_Multiplier_IMP_2();  //  CHECK THIS OUT
  parameter 			L_word = `word_size;    
  wire 				[2*L_word-1: 0] 	product;		 
  wire 				Ready;
  integer 				word1, word2;     // multiplicand, multiplier
  reg 				Start, clock, reset;
  reg				reset_flag;
  Multiplier_IMP_2 M1 (product, Ready, Done, word1, word2, Start, clock, reset);

// Exhaustive Testbench
  reg 		[2*L_word-1: 0] 	expected_value;		 
  wire 				code_error;
//initial #1600 $finish;
 initial #80000 $finish;		// Timeout
assign code_error = ((!Start) && Ready && (M1.M2.Done == 1))? |(expected_value ^ product) : 0;

  always @(posedge clock or posedge reset) if (reset) reset_flag = 1; else if (Start & Ready & reset_flag && !M1.M2.Done) reset_flag <= 0;

  always @ (posedge clock or posedge reset)  // Compare product with expected value
    if (reset) expected_value = 0; else if  ((reset_flag && Start && Ready && !reset) || (Start && Ready && M1.M2.Done && !reset) ) begin  
      #1  
      expected_value = word2 * word1;
      //expected_value = word2 * word1 + 1; // Use to check error detection
  
    end 

 initial fork  begin #43600 Start =1; word2 = 9; end

# 43700 Start = 0; 
join

initial begin #15400 reset =1; # 20 reset = 0; end
initial begin #28800 reset =1; # 165 /*60*/
reset = 0; end		 

//initial begin #29850 Start = 1; #800 Start = 0; end

  //initial begin #321 Start = 1; #100 Start = 0; end

  initial begin clock <= 0; forever #10 clock <= ~clock; end
  initial begin	// Exhaustive patterns 
    #2 reset  = 1;
    #75 reset = 0;
  end
initial begin
    for (word1 = 0; word1 <= 15; word1 = word1 +1) begin
    for (word2 = 0; word2 <= 15; word2 = word2 +1) begin


   // for (word1 = 250; word1 <= 255; word1 = word1 +1) begin
//    for (word2 = 10; word2 <= 255; word2 = word2 +1) begin
      Start = 0; #40 Start= 1;
      #20 Start = 0; 
      #200;
    end  // word2
    #140;
    end  //word1
  end // initial
endmodule


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色哟哟一区二区在线观看| 色婷婷久久久综合中文字幕| 国产精品久久久久影视| 欧美综合一区二区| 国产伦精品一区二区三区免费| 亚洲免费观看高清| 久久精品欧美一区二区三区麻豆| 欧美优质美女网站| 国产成人亚洲综合a∨猫咪| 视频一区二区不卡| 一区二区三区久久| 国产精品久久久久影院| 久久综合久久综合久久综合| 欧美日本一区二区| 91视频在线观看| 国产69精品久久久久毛片| 日本亚洲欧美天堂免费| 一区二区三区日韩精品视频| 日本一区免费视频| www久久精品| 日韩午夜在线观看视频| 欧美日韩三级一区| 91福利视频网站| 99re热这里只有精品视频| 国产精品自在欧美一区| 日韩精品乱码av一区二区| 一区二区免费看| 亚洲欧美色图小说| 亚洲欧美日韩国产手机在线| 中文一区在线播放| 久久久久久9999| 精品国产免费人成电影在线观看四季| 在线观看国产日韩| 色中色一区二区| 91免费观看视频| 91蝌蚪国产九色| 91在线看国产| 一本一道久久a久久精品 | 亚洲va欧美va人人爽午夜| 亚洲欧美一区二区三区国产精品 | av成人动漫在线观看| 国产精品99久久久久久宅男| 美女网站色91| 精品午夜久久福利影院| 国内精品在线播放| 国产成人亚洲精品青草天美| 国产经典欧美精品| 成人av网址在线| 91麻豆免费观看| 91久久奴性调教| 欧美日韩精品系列| 69久久夜色精品国产69蝌蚪网| 3atv一区二区三区| 日韩美女在线视频| 久久亚洲精精品中文字幕早川悠里| 日韩女同互慰一区二区| 国产日韩欧美激情| 国产精品初高中害羞小美女文| 亚洲欧洲无码一区二区三区| 亚洲综合一区二区精品导航| 石原莉奈在线亚洲二区| 国产乱子轮精品视频| 99久久免费国产| 7799精品视频| 久久精品亚洲乱码伦伦中文| 中文字幕色av一区二区三区| 亚洲一区在线播放| 久久国产夜色精品鲁鲁99| 国产成人精品www牛牛影视| av在线综合网| 欧美午夜精品一区| 精品欧美乱码久久久久久1区2区 | 日韩国产欧美在线播放| 国产精华液一区二区三区| 欧洲国内综合视频| 久久综合给合久久狠狠狠97色69| 中文欧美字幕免费| 亚洲成人激情av| 盗摄精品av一区二区三区| 精品视频999| 日本一区二区电影| 偷拍与自拍一区| 成人一级黄色片| 正在播放亚洲一区| 中文天堂在线一区| 麻豆免费看一区二区三区| www.欧美色图| 日韩免费看的电影| 亚洲精品大片www| 国产乱码精品一区二区三区忘忧草| 色综合久久久久网| 久久精品一区二区三区不卡 | 亚瑟在线精品视频| 国产成人综合网站| 正在播放一区二区| 亚洲欧美日韩在线| 国产激情一区二区三区桃花岛亚洲| 欧美性videosxxxxx| 日本一区二区三区在线观看| 日韩专区中文字幕一区二区| av福利精品导航| 26uuu欧美日本| 亚洲3atv精品一区二区三区| 99在线精品视频| 国产清纯白嫩初高生在线观看91| 无码av免费一区二区三区试看| 99久久综合精品| 国产喂奶挤奶一区二区三区 | 99视频一区二区| 国产女同性恋一区二区| 午夜精品福利一区二区三区蜜桃| 成人av影院在线| 国产色产综合产在线视频| 日韩电影在线看| 欧美日韩国产首页| 亚洲另类春色国产| 97精品久久久午夜一区二区三区| 精品av综合导航| 久久99精品久久久久久国产越南 | 18涩涩午夜精品.www| 国产成人在线看| 26uuu亚洲婷婷狠狠天堂| 美女视频免费一区| 日韩一区二区三区观看| 水野朝阳av一区二区三区| 色av成人天堂桃色av| 亚洲欧洲三级电影| 91日韩精品一区| 成人欧美一区二区三区白人| www.欧美日韩| 亚洲视频一区在线| 91热门视频在线观看| 亚洲色大成网站www久久九九| 成人h动漫精品| 最新成人av在线| 91丨porny丨户外露出| 亚洲精品一卡二卡| 日本久久电影网| 亚洲一区二区免费视频| 欧美亚洲丝袜传媒另类| 午夜激情久久久| 88在线观看91蜜桃国自产| 日本午夜精品视频在线观看| 日韩欧美国产综合| 国产一区二区久久| 中文字幕av一区二区三区高| av成人免费在线| 亚洲一区自拍偷拍| 欧美一区二区私人影院日本| 蜜桃av一区二区| 久久这里只有精品6| 高清不卡一二三区| 亚洲欧美偷拍卡通变态| 欧美日韩国产精选| 蜜芽一区二区三区| 国产欧美精品一区二区色综合朱莉| 成人av网站免费| 洋洋成人永久网站入口| 欧美精品xxxxbbbb| 精品一区二区三区免费播放 | 日韩va亚洲va欧美va久久| 欧美成人性战久久| 高清在线不卡av| 一区二区三区毛片| 欧美本精品男人aⅴ天堂| 成人免费毛片aaaaa**| 一区二区不卡在线播放| 欧美一卡2卡三卡4卡5免费| 国产一区二区三区精品视频| 日韩一区在线免费观看| 欧美日韩国产欧美日美国产精品| 蜜臀久久99精品久久久久宅男| 国产欧美一区二区三区在线看蜜臀 | 亚洲精品一区二区三区蜜桃下载 | 波波电影院一区二区三区| 亚洲国产va精品久久久不卡综合| 欧美第一区第二区| 不卡的电影网站| 免费精品视频在线| 中文字幕一区视频| 欧美一级淫片007| gogogo免费视频观看亚洲一| 亚洲成av人片在www色猫咪| 国产性色一区二区| 91精品国产欧美日韩| 国产成人久久精品77777最新版本| 一区二区成人在线观看| 久久久精品综合| 在线播放中文字幕一区| 成人av在线一区二区| 理论电影国产精品| 亚洲自拍偷拍网站| 国产精品久久久久永久免费观看 | 久久一区二区三区四区| 欧美性欧美巨大黑白大战| 国产99精品视频| 久久er精品视频| 亚洲国产精品天堂| 中文字幕在线观看不卡| 亚洲精品一区二区三区四区高清|