<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 8位無符號數(shù)乘法運算HDL設(shè)計實例

          8位無符號數(shù)乘法運算HDL設(shè)計實例

          作者: 時間:2012-10-17 來源:網(wǎng)絡(luò) 收藏

          `timescale 1 ns/ 1 ps

          module mux_vlg_tst();

          reg [7:0] ain;

          reg [7:0] bin;

          reg clk;

          reg enable;

          reg rst_n;

          wire ready;

          wire [31:0] yout;

          reg[8:0] i,j;

          mux i1 (

          .ain(ain),

          .bin(bin),

          .clk(clk),

          .enable(enable),

          .ready(ready),

          .rst_n(rst_n),

          .yout(yout)

          );

          initial begin

          $display(mux example simulation is running.n);

          rst_n = 0;

          clk = 0;

          enable = 0;

          ain = 8'hzz;

          bin = 8'hzz;

          #1000;

          @(posedge clk);

          rst_n = 1;

          for(i=0;i256;i=i+1) begin (1)

          for(j=0;j256;j=j+1) begin (2)

          mux_ab(i,j); (3)

          end

          end

          $display(mux example simulation is over.All right.n); (4)

          $stop;

          end

          always #10 clk = ~clk;

          task mux_ab; (5)

          input[7:0] a;

          input[7:0] b;

          begin

          @(posedge clk); #3;

          ain = a;

          bin = b;

          enable = 1; (6)

          @(posedge ready); (7)

          @(posedge clk); #3;

          if(a*b == yout) $display(%3d * %3d = %5d, it is right.,a,b,yout);

          (8)

          else begin (9)

          $display(%3d * %3d = %5d, it is wrong.,a,b,yout);

          $stop;

          end

          @(posedge clk); #3;

          enable = 0; (10)

          ain = 8'hzz;

          bin = 8'hzz;

          end

          endtask

          endmodule

          • 乘數(shù)ain從0到255遞增。
          • 被乘數(shù)bin從0到255遞增,以此完成全便利測試。
          • 調(diào)用任務(wù),輸入?yún)?shù)i和j分別會賦值給ain和bin用于運算。
          • 所有測試成功完成,則最終打印“mux example simulation is over.All right.”的信息,如果測試中出現(xiàn)任何一個錯誤,則測試腳本會停止運行,也就意味著見不到這條語句。
          • 產(chǎn)生一次任務(wù)的激勵。輸入?yún)?shù)a和b分別為運算的輸出乘數(shù)和被乘數(shù)。
          • 使能信號拉高,發(fā)起一次。
          • 等待ready信號拉高,表示乘法運算完成,輸出結(jié)果有效。
          • 測試模塊輸出的乘法運算結(jié)果正確,打印相關(guān)信息。
          • 測試模塊輸出的乘法運算結(jié)果錯誤,打印錯誤提示并停止測試腳本的運行。
          • 拉低enable信號完成當(dāng)前運算。

          如圖2所示,為當(dāng)前測試結(jié)果,我們看到了最后的“mux example simulation is over.All right.”提示信息,表示測試通過。

          圖2 mux工程測試結(jié)果


          上一頁 1 2 下一頁

          關(guān)鍵詞: HDL 8位 符號 乘法運算

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();