chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

異步復位與同步復位的綜合后電路圖講解

454398 ? 來源:博客園 ? 作者: IC_learner ? 2020-11-14 11:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這里來記錄一下相似代碼之間的不同差異,比如同步復位與異步復位觸發(fā)器的對比,上升沿復位和下降沿復位的對比等等。這里主要使用ISE的綜合引擎。直接附上代碼和綜合后電路圖,有些會有部分講解。

一、異步復位與同步復位

我在復位電路里面講解了同步復位和異步復位的區(qū)別,這里就不詳細介紹了,鏈接如下:http://www.cnblogs.com/IClearner/p/6683100.html

(1)異步復位

異步復位的代碼如下所示:

module DFF1(
  input clk,
  input rst_n,
  input d,
  output reg q
);

always@(posedge clk or negedge rst_n)
  if(!rst_n)
    q <= 0; //異步清 0,低電平有效
  else
    q <= d;

endmodule

綜合得到的電路圖如下所示:

可以看到使用了一個反相器單元和一個觸發(fā)器單元;從代碼中我們可以推斷出,這是一個高電平有效的、異步復位觸發(fā)器。

(2)同步復位

同步復位觸發(fā)器代碼如下所示,注意黑體部分

module DFF2(
  input clk,
  input rst_n,
  input d,
  output reg q
);

always@(posedge clk )//注意這里有所不同
  if(!rst_n)
    q <= 0; //同步清 0,低電平有效
  else
    q <= d;

endmodule

綜合得到的電路如下所示:

我們可以看到,也是由一個反向器單元和一個觸發(fā)器單元構成,注意,這里的觸發(fā)器跟上面的觸發(fā)器顯然不是同一個類型的觸發(fā)器,管腳名稱改變了;結合代碼我們可以知道,這個觸發(fā)器是高電平觸發(fā)、同步復位的觸發(fā)器(由于是輸入信號是低電平有效,所以加了個反相器)。

二、不同電平之間的復位差異

(1)高電平觸發(fā)的異步復位VS低電平觸發(fā)的異步復位

①高電平觸發(fā)的異步復位(異步置位)

綜合得到的電路如下所示:

根據(jù)代碼,容易推斷得出這是一個高電平觸發(fā)、異步復位的觸發(fā)器(或者叫異步置位),這也與前面的內容相符合(高電平觸發(fā)復位,所以不用加反相器)。

②低電平觸發(fā)的異步復位

代碼和電路跟 一(1)的代碼和電路相同,這里不進行重述。

(2)高電平觸發(fā)的同步復位VS低電平觸發(fā)的同步復位

①高電平觸發(fā)的同步復位

代碼如下所示:

 1 module DFF4(
 2   input clk,
 3   input rst_r,
 4   input d,
 5   output reg q
 6 );
 7 
 8 always@(posedge clk )
 9   if(rst_r)
10     q <= 0; 
11   else
12     q <= d;
13 
14 endmodule

綜合得到的電路如下所示:

可以知道,這是一個高電平有效、同步復位的觸發(fā)器單元。

②低電平觸發(fā)的同步復位

代碼和電路同一(2),這里不進行重述

三、阻塞賦值和非阻塞賦值

(1)阻塞賦值綜合的觸發(fā)器

代碼如下所示,這里為了使用高電平觸發(fā)的觸發(fā)器單元,寫出高電平復位:

 1 module DFF_chain(
 2   input clk,
 3   input rst_r,
 4   input d,
 5   output reg q
 6 );
 7 reg reg_m ;
 8 always @(posedge clk )//high level reset,synchronization
 9   if(rst_r)begin
10         reg_m = 0;//block
11        q = 0; 
12   end   else begin
13         reg_m = d;
14         q = reg_m ;
15   end
16 endmodule

綜合得到的電路如下所示:

可以看到,綜合得到只有一個觸發(fā)器,中間的觸發(fā)器變量reg_m被優(yōu)化掉了,只剩下q這個觸發(fā)器。

(2)換個順序的非阻塞賦值的觸發(fā)器

把后面的這兩個語句對調一下,同時把中間的變量改個名字,改成reg_block(這里改名字只是為了區(qū)分后面的非阻塞賦值的情況)

即要綜合的代碼如下所示:

 1 module DFF_chain(
 2   input clk,
 3   input rst_r,
 4   input d,
 5   output reg q
 6 );
 7 reg reg_block ;
 8 always @(posedge clk )//high level reset,synchronization
 9   if(rst_r)begin//block
10         reg_block = 0;
11        q = 0; 
12   end   else begin //here has changed
13         q = reg_block ;
14         reg_block = d;        
15   end
16 endmodule

綜合得到的電路如下所示:

可以看到,調換順序之后,得到了我們我們想要的觸發(fā)器鏈。

結論:描述時序邏輯使用阻塞賦值可能得到正確的結果,也可以得到不正確的結果,因此時序邏輯不建議使用阻塞賦值。

(3)非阻塞賦值綜合的觸發(fā)器

代碼如下所示:

 1 module DFF_chain(
 2   input clk,
 3   input rst_r,
 4   input d,
 5   output reg q
 6 );
 7 reg reg_m ;
 8 always @(posedge clk )//high level reset,synchronization
 9   if(rst_r)begin
10         reg_m <= 0;//non block 
11        q <= 0; 
12   end   else begin
13         reg_m <= d;
14         q <= reg_m ;
15   end
16 endmodule

綜合得到的電路如下所示:

從電路圖中可以看到,綜合得到了兩個觸發(fā)器,中間的觸發(fā)器reg_m被保留下來了,達到了我們預想中的觸發(fā)器鏈。

(4)換個順序后的非阻塞賦值

跟前面的阻塞賦值一樣,我們換一下順序,代碼如下所示:

 1 module DFF_chain(
 2   input clk,
 3   input rst_r,
 4   input d,
 5   output reg q
 6 );
 7 reg reg_nonblock ;
 8 always @(posedge clk )//high level reset,synchronization
 9   if(rst_r)begin//non block
10         reg_nonblock <= 0;
11        q <= 0; 
12   end   else begin
13         q <= reg_nonblock ;
14         reg_nonblock <= d;        
15   end
16 endmodule

綜合得到的電路如下所示:

從電路中可以看到,即使調換了順序,電路還是我們需要的觸發(fā)器鏈。

結論:描述時序邏輯,使用非阻塞賦值可以得到正確的結果,因此時序邏輯推薦使用非阻塞賦值。

(5)描述組合邏輯電路時的阻塞賦值和非阻塞賦值

阻塞賦值描述組合邏輯(加法器),代碼如下所示:

 1 module Adder(
 2   input a,
 3   input b,
 4   input c,
 5   output reg q
 6 );
 7 reg sum_block ;
 8 always @(* )
 9    begin
10         sum_block = a + b  ;
11         q = sum_block + c;        
12    end
13 endmodule

綜合得到電路如下所示:

綜合得到的電路是一個加法器。

我們改成非阻塞賦值看看,代碼如下所示:

 1 module Adder(
 2   input a,
 3   input b,
 4   input c,
 5   output reg q
 6 );
 7 reg sum_block ;
 8 always @(* )
 9    begin
10         sum_block <= a + b  ;
11         q <= sum_block + c;        
12    end
13 endmodule

綜合得到的電路:

綜合得到的電路也是一個加法器。

因此可以冒險地得到一個結論,無論是阻塞賦值還是非阻塞賦值,都可以描述組合邏輯,但是一般情況下,我們推薦使用阻塞賦值,一方面是對仿真有用,另一方面是區(qū)別于描述時序邏輯的非阻塞賦值。

最后我嘗試著在同一個塊中使用阻塞賦值和非阻塞賦值,ISE的綜合器報錯。
編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 觸發(fā)器
    +關注

    關注

    14

    文章

    2039

    瀏覽量

    62145
  • 同步復位
    +關注

    關注

    0

    文章

    27

    瀏覽量

    10872
  • 異步復位
    +關注

    關注

    0

    文章

    47

    瀏覽量

    13515
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    GraniStudio零代碼平臺軸復位算子支持多少個軸同時復位,有哪些回零模式?

    GraniStudio平臺在軸復位的功能上未對同時復位的軸數(shù)進行硬性限制,理論上支持任意數(shù)量軸同步復位,需要考慮的是在做多軸同步
    的頭像 發(fā)表于 07-07 18:02 ?187次閱讀
    GraniStudio零代碼平臺軸<b class='flag-5'>復位</b>算子支持多少個軸同時<b class='flag-5'>復位</b>,有哪些回零模式?

    復位電路的核心功能和主要類型

    復位電路(Reset Circuit) 是數(shù)字系統(tǒng)中的關鍵功能模塊,用于確保設備在上電、電壓波動或異常狀態(tài)下可靠復位至初始狀態(tài)。其設計直接影響系統(tǒng)的穩(wěn)定性和抗干擾能力。
    的頭像 發(fā)表于 06-30 14:24 ?184次閱讀
    <b class='flag-5'>復位</b><b class='flag-5'>電路</b>的核心功能和主要類型

    單片機各種復位電路原理

    使用哪種類型的單片機,總要涉及到單片機復位電路的設計。而單片機復位電路設計的好壞,直接影響到整個系統(tǒng)工作的可靠性。許多用戶在設計完單片機系統(tǒng),并在實驗室調試成功
    發(fā)表于 05-30 16:53

    復位電路的作用、控制方式和類型

    復位電路也是數(shù)字邏輯設計中常用的電路,不管是 FPGA 還是 ASIC 設計,都會涉及到復位,一般 FPGA或者 ASIC 的復位需要我們自
    的頭像 發(fā)表于 03-12 13:54 ?2331次閱讀
    <b class='flag-5'>復位</b><b class='flag-5'>電路</b>的作用、控制方式和類型

    FPGA復位的8種技巧

    在 FPGA 設計中,復位起到的是同步信號的作用,能夠將所有的存儲元件設置成已知狀態(tài)。在數(shù)字電路設計中,設計人員一般把全局復位作為一個外部引腳來實現(xiàn),在加電的時候初始化設計。全局
    的頭像 發(fā)表于 11-16 10:18 ?1183次閱讀
    FPGA<b class='flag-5'>復位</b>的8種技巧

    復位電路的設計問題

    前言 最近看advanced fpga 以及fpga設計實戰(zhàn)演練中有講到復位電路的設計,才知道復位電路有這么多的門道,而不是簡單的外界信號輸入系統(tǒng)
    的頭像 發(fā)表于 11-15 11:13 ?544次閱讀
    <b class='flag-5'>復位</b><b class='flag-5'>電路</b>的設計問題

    復位電路的三種方式 復位電路的原理和作用

    ) 原理: 上電復位電路通常包含一個RC(電阻-電容)網(wǎng)絡。當電源首次接通時,電容充電需要一定的時間,這段時間內電容上的電壓較低,導致復位電路輸出低電平,觸發(fā)微控制器的
    的頭像 發(fā)表于 10-21 10:28 ?5073次閱讀

    復位電路的電容多大的 復位電路設計類型有哪幾種

    復位電路是電子系統(tǒng)中的一個關鍵部分,它確保系統(tǒng)在啟動或發(fā)生故障時能夠正確地初始化。復位電路的設計取決于多種因素,包括系統(tǒng)的復雜性、所需的復位
    的頭像 發(fā)表于 10-21 10:24 ?1031次閱讀

    復位電路是如何工作的

    在現(xiàn)代電子系統(tǒng)中,復位電路扮演著至關重要的角色。它負責在系統(tǒng)啟動時或在某些異常情況下將系統(tǒng)重置到一個預定義的初始狀態(tài)。這種重置機制確保了系統(tǒng)的穩(wěn)定性和可靠性,防止了由于未知狀態(tài)導致的潛在錯誤。 1.
    的頭像 發(fā)表于 10-21 10:22 ?1037次閱讀

    復位電路靜電整改案例分享(一)——交換機復位電路

    復位信號,確保單片機在上電能夠立即進入初始化狀態(tài)。其中上拉電阻可以確保在未按下按鈕時輸入引腳上具有高電平狀態(tài),避免輸入信號的浮動和噪音干擾。在選擇上拉電阻時,根據(jù)具體需求和電路設計合理參數(shù)可以提高
    的頭像 發(fā)表于 10-19 14:56 ?965次閱讀
    <b class='flag-5'>復位</b><b class='flag-5'>電路</b>靜電整改案例分享(一)——交換機<b class='flag-5'>復位</b><b class='flag-5'>電路</b>

    復位電路介紹 復位電路的原理及作用

    復位電路(Reset Circuit)是現(xiàn)代電子設備中常見的一種關鍵電路,它用于確保在正確的時間和條件下將系統(tǒng)恢復到初始狀態(tài)。復位電路的設計
    的頭像 發(fā)表于 10-18 16:44 ?7514次閱讀

    51單片機復位電路電容怎么放電

    在51單片機的復位電路中,電容的放電過程是實現(xiàn)復位功能的關鍵環(huán)節(jié)之一。以下是關于51單片機復位電路中電容放電的介紹: 放電過程 電容充電狀態(tài)
    的頭像 發(fā)表于 08-06 10:52 ?1309次閱讀

    單片機復位電路電阻電容如何取值

    在單片機系統(tǒng)中,復位電路是非常重要的組成部分,它確保了單片機在啟動時能夠可靠地進入初始狀態(tài),以及在異常情況下能夠進行復位操作。復位電路通常由
    的頭像 發(fā)表于 08-06 10:28 ?2315次閱讀

    STM32復位電路復位芯片和阻容復位電路區(qū)別

    STM32是一款廣泛使用的微控制器,其復位電路設計對于系統(tǒng)的穩(wěn)定性和可靠性至關重要。本文將詳細介紹STM32復位電路中使用復位芯片和阻容
    的頭像 發(fā)表于 08-06 10:26 ?2942次閱讀

    雙管正激勵磁復位電路的作用

    雙管正激勵磁復位電路是一種廣泛應用于電子設備中的電路,它具有多種功能和優(yōu)點。 一、雙管正激勵磁復位電路的作用 雙管正激勵磁
    的頭像 發(fā)表于 08-02 15:41 ?1038次閱讀