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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > Verilog HDL基礎(chǔ)教程之:時(shí)序邏輯電路

          Verilog HDL基礎(chǔ)教程之:時(shí)序邏輯電路

          作者: 時(shí)間:2013-08-23 來源:網(wǎng)絡(luò) 收藏

          言中,使用always語句塊來實(shí)現(xiàn)。例如,實(shí)現(xiàn)一個帶有異步復(fù)位信號的D觸發(fā)器如下。

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

          例1:帶異步復(fù)位的D觸發(fā)器1。

          wire Din;

          wire clock,rst;

          reg Dout;

          always @ (posedge clock or negedge rst) //帶有異步復(fù)位

          if(rst == 1’b0) Dout = 1’b0;

          else Dout = Din; //D觸發(fā)器數(shù)據(jù)輸出

          在例1中,每當(dāng)時(shí)鐘clock上升沿到來后,輸出信號Dout的值便更新為輸入信號Din的值。當(dāng)復(fù)位信號下降沿到來時(shí),Dout的值就會變成0。必須注意的是,在中,通常使用非阻塞賦值,即使用“=”。當(dāng)always塊整個完成之后,值才會更新,例如:

          例2:帶異步復(fù)位的D觸發(fā)器2。

          wire Din;

          wire clock,rst;

          reg Dout;

          always @ (posedge clock or negedge rst) //帶有異步復(fù)位

          if(rst == 1’b0) out = 1’b0;

          else begin

          Dout = Din; //D觸發(fā)器輸出值還處于鎖定狀態(tài)

          Dout = 1’b1; //D觸發(fā)器輸出值依然處于鎖定狀態(tài)

          End //D觸發(fā)器的輸出為1

          在例2中,Dout首先被賦值為Din,此時(shí)Dout的值并沒有發(fā)生改變;接著Dout又被賦值為1,此時(shí)Dout的值依然沒發(fā)生改變;直到這個always模塊完成,Dout的值才變成最后被賦的值,此例中Dout的值為1。

          中,always的時(shí)間控制是沿觸發(fā)的,可以單個信號也可以多個信號,中間需要用關(guān)鍵字“or”連接,例如:

          always @(posedge clock or posedge reset) begin //由兩個沿觸發(fā)的always塊

          end

          其中有一個時(shí)鐘信號和一個異步復(fù)位信號。

          always @(posedge clock1 or posedge clock2 or posedge reset) begin

          //由3個沿觸發(fā)的always塊

          end

          其中有兩個時(shí)鐘信號和一個異步復(fù)位信號。

          一般而言,同步時(shí)序邏輯電路更穩(wěn)定,所以建議盡量使用一個時(shí)鐘觸發(fā)。

          電路相關(guān)文章:電路分析基礎(chǔ)




          評論


          相關(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); })();