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

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 實驗15:環(huán)形計數器

          實驗15:環(huán)形計數器

          作者: 時間:2023-10-11 來源:電子森林 收藏

          實驗目的

          本文引用地址:http://www.ex-cimer.com/article/202310/451365.htm

          (1)熟悉和掌握開發(fā)流程和軟件使用方法;

          (2)通過實驗理解和掌握原理;

          (3)學習用行為級描述時序邏輯電路。

          實驗任務

          設計一個4位右循環(huán)一個1的。

          實驗原理

          將移位寄存器的輸出q0連接到觸發(fā)器q3的輸入,并且在這4個觸發(fā)器中只有一個輸出為1,另外3個為0,這樣就構成了一個。初始化復位時,給q0一個置位信號,則唯一的1將在環(huán)形計數器中循環(huán)移位,每4個時鐘同期輸出一個高電平脈沖。

          建模描述

          用行為級描述帶有復位的移位寄存器

          用于Diamond仿真的程序清單 ring.v


           module ring #

          (

          parameter  CNT_SIZE = 8

          )

          (

          input wire clk,rst,           //時鐘和復位輸入

          output reg [CNT_SIZE-1:0] cnt      //計數器輸出);always@(posedge clk)

          if(!rst)

          cnt <= 8'b0000_0001;        //復位初值

          else

          cnt <= {cnt[0],cnt[CNT_SIZE-1:1]};  //右移循環(huán)計數

          endmodule 

           

          仿真文件ring_tb.v


           `timescale 1ns/100ps    //仿真時間單位/時間精度

          module ring_tb;

          reg clk,rst;

          wire [7:0] q;

          initial

          begin

          clk =0;

          rst =0;

          #20

          rst =1;

          end

          always#10 clk =~clk;

          ring u1 (

          .clk (clk),

          .rst (rst),

          .cnt (q)

          );

          endmodule 


          實驗步驟

          打開,建立工程。

          新建設計文件,并鍵入設計代碼。

          根據仿真教程,實現對本工程的仿真,驗證仿真結果是否與預期相符。

          仿真結果和實驗現象



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();