曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

復(fù)位電路的作用、控制方式和類型

FPGA設(shè)計論壇 ? 來源:CSDN技術(shù)社區(qū)icysmile131 ? 2025-03-12 13:54 ? 次閱讀

復(fù)位電路也是數(shù)字邏輯設(shè)計中常用的電路,不管是 FPGA 還是 ASIC 設(shè)計,都會涉及到復(fù)位,一般 FPGA或者 ASIC 的復(fù)位需要我們自己設(shè)計復(fù)位方案。復(fù)位指的是將寄存器恢復(fù)到默認(rèn)值。一般復(fù)位功能包括同步復(fù)位和異步復(fù)位。復(fù)位一般由硬件開關(guān)觸發(fā)引起,也可以由復(fù)位邏輯控制引起。

復(fù)位電路的作用

數(shù)字電路中寄存器和 RAM 在上電之后默認(rèn)的狀態(tài)和數(shù)據(jù)是不確定的,如果有復(fù)位,就可以把寄存器復(fù)位到初始狀態(tài) 0,RAM 的數(shù)據(jù)可以通過復(fù)位來觸發(fā) RAM 初始化到全 0,因為一般邏輯起始都是從 0 開始變化的,這個是根據(jù)設(shè)計的需要設(shè)定的一個值,如果設(shè)計需要寄存器上電復(fù)位為 1,也是可以的。

還有就是如果邏輯進(jìn)入了錯誤的狀態(tài),通過復(fù)位可以把所有的邏輯狀態(tài)恢復(fù)到初始值。

復(fù)位電路的控制方式

1 按鍵復(fù)位

在硬件電路設(shè)計中,一般會留下一個復(fù)位按鍵,按下開關(guān)復(fù)位,就可以簡單快捷地進(jìn)行復(fù)位。

但按鍵復(fù)位存在一個問題,就是一般按鍵在按下時會產(chǎn)生抖動,釋放時也會產(chǎn)生抖動。這是因為大多數(shù)按鍵所使用的開關(guān)為機(jī)械彈性開關(guān),當(dāng)我們按下或松開按鍵時,由于彈片的物理特性,不能立即閉合或斷開,往往會在斷開或閉合的短時間內(nèi)產(chǎn)生機(jī)械抖動。

按鍵消抖可分為硬件消抖和軟件消抖。硬件消抖主要使用RS觸發(fā)器或電容等方法實現(xiàn)消抖, 一般在按鍵較少時使用。軟件消抖的原理主要為按鍵按下或松開后延時5ms—20ms采樣,這種方法經(jīng)常使用。

按鍵去抖的思路是檢測到按下時延時 20ms,再檢測,如果狀態(tài)仍為按下,則確認(rèn)是按下的;如果狀態(tài)為彈起的,則確認(rèn)是干擾,無按鍵按下。

假如rst_in 為一個 普通 按鍵,直接連接至 FPGA里面的復(fù)位引腳作為全局復(fù)位,所以按鍵消抖的原理為:當(dāng) rst_in按鍵按下時可能會出現(xiàn)抖動,需要 等 20ms之后再去檢測這個按鍵是否按下 FPGA里面的這個引腳的電平是否改變 )),這樣就達(dá)到了按鍵消抖的目的 。

如下圖所示:

49c0c8dc-fa55-11ef-9310-92fbcf53809c.png

檢測到第一次按下(檢測到低電平),此時延遲20ms,然后 20ms之后,再次檢測是否有穩(wěn)定的低電平 。

由于按鍵 彈片的物理特性,按鍵按下時會有抖動,也就是說我們其實只按一次,但是實際產(chǎn)生的“按下”卻是許多次的,這些許多次集中在這 20ms里。通過延時 20ms,把其他的“按下(也就是抖動)給濾除了。然后再次判斷是否有按下,因為有的時候干擾很大。

2 RC復(fù)位電路

49d934e4-fa55-11ef-9310-92fbcf53809c.png

這種是一種簡單的 RC 復(fù)位電路,電源接通時候,通過 R1 對 C2 進(jìn)行充電,經(jīng)過一段延遲后加到電路當(dāng)中產(chǎn)生復(fù)位信號,這個復(fù)位信號的上升速度低于電源的上電速度,當(dāng)復(fù)位引腳檢測到高電平時候,系統(tǒng)復(fù)位結(jié)束,進(jìn)入正常工作狀態(tài)。

3 FPGA上電復(fù)位

如果在硬件電路設(shè)計時沒有留下復(fù)位按鍵,對FPGA來說也沒有太大問題,因為 FPGA 內(nèi)部也會有上電復(fù)位的功能,就是 POR(Power On Reset)電路。FPGA 芯片內(nèi)部有一個上電檢測模塊,一旦檢測到電源電壓超過檢測門限后,就產(chǎn)生一個上電復(fù)位脈沖(Power On Reset)并將其送給所有的寄存器,這個脈沖會自動作用在各個寄存器的復(fù)位端,和功能復(fù)位管腳共同控制寄存器的復(fù)位。

另外,就是 FPGA 重新配置之后,也會觸發(fā)上電復(fù)位。

復(fù)位電路的類型

同步復(fù)位

同步復(fù)位指的是當(dāng)時鐘上升沿檢測到復(fù)位信號,執(zhí)行復(fù)位操作,有效的時鐘沿是前提。實現(xiàn)同步復(fù)位通常意味著將復(fù)位信號與時鐘信號同步。

以下是一個簡單的例子,展示了如何使用同步復(fù)位來重置一個計數(shù)器:

module sync_reset_counter(  
    input wire clk,          // 時鐘信號  
    input wire rst,          // 同步復(fù)位信號(高電平有效)  
    input wire enable,       // 使能信號  
    input wire inc_dec,      // 增減控制信號(例如,1為增,0為減)  
    output reg [7:0] count   // 計數(shù)器輸出  
);  
  
always @(posedge clk) begin  
    if (rst) begin  
        // 當(dāng)rst為高電平時,進(jìn)行同步復(fù)位  
        count <= 8'h00; // 計數(shù)器被重置為0  
    end else if (enable) begin  
        // 如果復(fù)位信號無效且使能信號有效,則更新計數(shù)器  
        if (inc_dec) begin  
            // 如果inc_dec為高,則增加計數(shù)器  
            if (count < 8'hFF) // 防止計數(shù)器溢出  
                count <= count + 1'b1;  
        end else begin  
            // 如果inc_dec為低,則減少計數(shù)器  
            if (count > 8'h00) // 防止計數(shù)器下溢  
                count <= count - 1'b1;  
        end  
    end  
end  
  
endmodule

在這個例子中,rst是同步復(fù)位信號,它是一個高電平有效的信號。當(dāng)rst為高時,在下一個clk的上升邊沿到來時,計數(shù)器count會被重置為0。與異步復(fù)位不同,同步復(fù)位不會立即發(fā)生,而是會在下一個時鐘邊沿發(fā)生時生效。

同步復(fù)位的優(yōu)點如下:

能確保復(fù)位信號和時鐘信號的相位一致,從而避免由于信號傳輸延遲而導(dǎo)致的問題;

以同步的方式與其他信號進(jìn)行控制,減少信號沖突的可能性;

避免由于時序問題(如時鐘閃爍、時鐘脈沖不穩(wěn)定等)而導(dǎo)致的系統(tǒng)復(fù)位不準(zhǔn)確或延遲;

便于仿真;

可以使所設(shè)計的系統(tǒng)成為 100%的同步時序電路,有利于時序分析,而且可綜合出較高的 Fmax;

由于只在時鐘有效電平到來時才有效,所以可以濾除高于時鐘頻率的復(fù)位毛刺,可有效避免因毛刺造成的亞穩(wěn)態(tài)和錯誤。

同步復(fù)位也有一些缺點,缺點如下:

復(fù)位信號的有效時長必須大于時鐘周期,才能真正被系統(tǒng)識別并完成復(fù)位任務(wù)。由于線路上的延遲,可能需要多個時鐘周期的復(fù)位脈沖寬度。此外,很難保證復(fù)位信號到達(dá)各個寄存器的時序,這增加了設(shè)計的復(fù)雜性。

同步復(fù)位是依賴于時鐘信號的。如果電路中的時鐘信號出現(xiàn)問題,例如時鐘停振或者時鐘周期不穩(wěn)定,那么同步復(fù)位可能無法完成,導(dǎo)致電路無法正常工作。

由于大多數(shù)的邏輯器件的目標(biāo)庫內(nèi)的 DFF 都只有異步復(fù)位端口,所以,倘若采用同步復(fù)位的話,綜合器就會在寄存器的數(shù)據(jù)輸入端口插入組合邏輯,這樣就會一方面額外增加 FPGA 內(nèi)部的邏輯資源,另一方面也增加了相應(yīng)的組合邏輯門時延。

異步復(fù)位

異步復(fù)位指的是無論時鐘沿是否到來,只要復(fù)位信號有效,就對系統(tǒng)進(jìn)行復(fù)位。實現(xiàn)異步復(fù)位電路通常涉及在寄存器或狀態(tài)機(jī)的更新邏輯中包含一個復(fù)位信號。

以下是一個簡單的例子,展示了如何在Verilog中使用異步復(fù)位來重置一個計數(shù)器:

module async_reset_counter(  
    input wire clk,          // 時鐘信號  
    input wire rst_n,        // 異步復(fù)位信號(低電平有效)  
    input wire enable,       // 使能信號  
    input wire inc_dec,      // 增減控制信號(例如,1為增,0為減)  
    output reg [7:0] count   // 計數(shù)器輸出  
);  
  
always @(posedge clk or negedge rst_n) begin  
    if (!rst_n) begin  
        // 當(dāng)rst_n為低電平時,進(jìn)行異步復(fù)位  
        count <= 8'h00; // 計數(shù)器被重置為0  
    end else if (enable) begin  
        // 如果復(fù)位信號無效且使能信號有效,則更新計數(shù)器  
        if (inc_dec) begin  
            // 如果inc_dec為高,則增加計數(shù)器  
            if (count < 8'hFF) // 防止計數(shù)器溢出  
                count <= count + 1'b1;  
        end else begin  
            // 如果inc_dec為低,則減少計數(shù)器  
            if (count > 8'h00) // 防止計數(shù)器下溢  
                count <= count - 1'b1;  
        end  
    end  
end  
  
endmodule

在這個例子中,rst_n是異步復(fù)位信號,它是一個低電平有效的信號。當(dāng)rst_n為低時,無論時鐘信號clk的狀態(tài)如何,計數(shù)器count都會被立即重置為0。當(dāng)rst_n為高且enable信號也為高時,計數(shù)器會根據(jù)inc_dec信號的值進(jìn)行增加或減少。

優(yōu)點:

大多數(shù)目標(biāo)器件庫的 DFF 都有異步復(fù)位端口,那么該觸發(fā)器的復(fù)位端口就不需要額外的組合邏輯,這樣就可以節(jié)省資源;

某些情況下,使用異步復(fù)位可以簡化邏輯設(shè)計。由于復(fù)位操作不依賴于時鐘信號,因此不需要額外的邏輯來同步復(fù)位信號和時鐘信號;

可以在任何時間響應(yīng)復(fù)位信號,而不需要等待下一個時鐘邊沿。這意味著復(fù)位操作能夠立即發(fā)生;

在某些應(yīng)用中,異步復(fù)位可以提高系統(tǒng)的可靠性。例如,在電源上電或復(fù)位按鈕被按下時,異步復(fù)位能夠確保系統(tǒng)迅速并可靠地進(jìn)入已知狀態(tài)。

異步復(fù)位也有一些缺點,缺點如下:

最大的問題在于它屬于異步邏輯,問題出現(xiàn)在復(fù)位釋放時,而不是有效時,如果復(fù)位釋放接近時鐘有效沿,則觸發(fā)器的輸出可能進(jìn)入亞穩(wěn)態(tài)(此時 clk 檢測到的 rst_n 的狀態(tài)就會是一個亞穩(wěn)態(tài),即是 0 是 1是不確定的),從而導(dǎo)致復(fù)位失敗。

可能因為噪聲或者毛刺造成虛假復(fù)位信號(比如系統(tǒng)正常工作時突然復(fù)位)(注意:時鐘端口、清零和置位端口對毛刺信號十分敏感,任何一點毛刺都可能會使系統(tǒng)出錯,因此判斷邏輯電路中是否存在冒險以及如何避免冒險是設(shè)計人員必須要考慮的問題);

靜態(tài)定時分析比較困難,靜態(tài)時序分析一般是針對同步設(shè)計的,都是基于時鐘周期來分析時序的;

對于 DFT(DesignForTest 可測性設(shè)計)設(shè)計,如果復(fù)位信號不是直接來自于 I/O 引腳,在 DFT 掃描和測試時,復(fù)位信號必須被禁止,因此需要額外的同步電路;

在某些情況下,異步復(fù)位信號可能會與時鐘信號或其他輸入信號產(chǎn)生沖突,導(dǎo)致冒險現(xiàn)象(冒險條件)。這可能會導(dǎo)致系統(tǒng)進(jìn)入不確定的狀態(tài),需要進(jìn)行額外的邏輯設(shè)計來避免這種情況。

總結(jié)下來,我們推薦使用異步復(fù)位、同步釋放的方式,并且復(fù)位信號為低電平有效。即:

1、復(fù)位信號到來的有效與否與 clk 無關(guān),而且復(fù)位信號的撤除也與 clk 無關(guān),但是復(fù)位信號的撤除是在下一個 clk 來到后才起的作用。

2、異步復(fù)位同步撤離的目的為了防止復(fù)位信號撤除時,可能產(chǎn)生的亞穩(wěn)態(tài)。

這意味著復(fù)位操作是異步的(可以在任何時刻發(fā)生),但復(fù)位后的撤離(即恢復(fù)正常的邏輯操作)是同步的(在時鐘邊沿發(fā)生)。

以下是一個使用這種策略的計數(shù)器的Verilog代碼示例:

module async_reset_sync_release_counter(  
    input wire clk,          // 時鐘信號  
    input wire rst_n,        // 異步復(fù)位信號(低電平有效)  
    input wire enable,       // 使能信號  
    input wire inc,          // 增加控制信號  
    output reg [7:0] count   // 計數(shù)器輸出  
);  
  
// 初始化計數(shù)器為0,但注意這里不會立即生效,因為Verilog沒有真正的初始化語句  
reg [7:0] count_reg = 8'h00; // 使用局部變量進(jìn)行初始化  
  
always @(posedge clk or negedge rst_n) begin  
    if (!rst_n) begin  
        // 異步復(fù)位,任何時候rst_n為低時,計數(shù)器立即被置0  
        count_reg <= 8'h00;  
    end else begin  
        // 同步撤離,在rst_n為高且時鐘上升邊沿到來時,根據(jù)enable和inc更新計數(shù)器  
        if (enable) begin  
            if (inc) begin  
                if (count_reg < 8'hFF) // 防止計數(shù)器溢出  
                    count_reg <= count_reg + 1'b1;  
            end  
        end  
    end  
end  
  
// 同步輸出到外部接口  
assign count = count_reg;  
  
endmodule

來源:https://blog.csdn.net/u011565038/article/details/139690846

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

    關(guān)注

    1643

    文章

    21925

    瀏覽量

    612614
  • asic
    +關(guān)注

    關(guān)注

    34

    文章

    1242

    瀏覽量

    121811
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5403

    瀏覽量

    122936
  • 復(fù)位電路
    +關(guān)注

    關(guān)注

    13

    文章

    324

    瀏覽量

    45033

原文標(biāo)題:FPGA中復(fù)位電路的設(shè)計

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    CPU與單片機(jī)的復(fù)位電路作用及基本復(fù)位方式

    在上電或復(fù)位過程中,控制CPU的復(fù)位狀態(tài):這段時間內(nèi)讓CPU保持復(fù)位狀態(tài),而不是一上電或剛復(fù)位完畢就工作,防止CPU發(fā)出錯誤的指令、執(zhí)行錯誤
    發(fā)表于 01-19 00:53 ?9770次閱讀
    CPU與單片機(jī)的<b class='flag-5'>復(fù)位</b><b class='flag-5'>電路</b>的<b class='flag-5'>作用</b>及基本<b class='flag-5'>復(fù)位</b><b class='flag-5'>方式</b>

    rc復(fù)位電路的電阻作用

    RC復(fù)位電路是一種常見的數(shù)字電路設(shè)計技術(shù),主要用于將數(shù)字電路的輸出狀態(tài)恢復(fù)到初始狀態(tài)。在RC復(fù)位電路
    的頭像 發(fā)表于 12-14 15:10 ?2352次閱讀

    MCU中復(fù)位作用及機(jī)制復(fù)位電路作用

    MCU中復(fù)位作用及機(jī)制復(fù)位電路作用在上電或復(fù)位過程中,
    發(fā)表于 11-04 06:49

    單片機(jī)復(fù)位電路作用是什么

    復(fù)位電路作用在上電或復(fù)位過程中,控制CPU的復(fù)位狀態(tài):這段時間內(nèi)讓CPU保持
    發(fā)表于 11-18 06:46

    復(fù)位電路作用及基本的復(fù)位方式

    手動按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平(圖1)。一般采用的辦法是在RST端和正電源Vcc之間接一個按鈕。當(dāng)人為按下按鈕時,則Vcc的+5V電平就會直接加到RST端。手動按鈕復(fù)位
    的頭像 發(fā)表于 09-06 09:40 ?11.7w次閱讀
    <b class='flag-5'>復(fù)位</b><b class='flag-5'>電路</b>的<b class='flag-5'>作用</b>及基本的<b class='flag-5'>復(fù)位</b><b class='flag-5'>方式</b>

    常見的復(fù)位電路類型作用詳談

    常見的復(fù)位電路類型作用詳談
    發(fā)表于 05-24 14:11 ?30次下載

    簡述復(fù)位電路概述以及方式和目的

    是有的電路需要時鐘信號那樣,而有的電路是不需要復(fù)位信號的。復(fù)位又分為同步復(fù)位和異步復(fù)位,這兩種各
    的頭像 發(fā)表于 06-28 09:49 ?7060次閱讀

    復(fù)位電路作用是什么

    復(fù)位電路是一個能讓電路回到原本狀態(tài)的設(shè)備,復(fù)位電路的操作原理可以說和計算機(jī)差不多,不過啟動的方式
    的頭像 發(fā)表于 08-07 10:53 ?3w次閱讀

    單片機(jī)的復(fù)位電路是怎樣工作的 單片機(jī)中復(fù)位電路作用方式

    單片機(jī)的復(fù)位電路是怎樣工作的 單片機(jī)中復(fù)位電路作用方式? 單片機(jī)的
    的頭像 發(fā)表于 10-17 18:17 ?3726次閱讀

    RC復(fù)位電路中R如何影響芯片復(fù)位?

    控制電荷釋放速度的作用。因此,不同的RC參數(shù)會影響芯片的復(fù)位時間、復(fù)位電平以及復(fù)位過程的穩(wěn)定性等方面的特性。 在RC
    的頭像 發(fā)表于 10-25 11:07 ?1581次閱讀

    復(fù)位電路的電阻電容分別有什么作用

    復(fù)位電路的電阻電容分別有什么作用? 復(fù)位電路是一種用于恢復(fù)電子設(shè)備正常工作狀態(tài)的電路。它通過將電
    的頭像 發(fā)表于 02-04 09:28 ?3600次閱讀

    雙管正激勵磁復(fù)位電路作用

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

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

    器系統(tǒng)中,復(fù)位電路是保證系統(tǒng)正常工作的重要部分。當(dāng)系統(tǒng)出現(xiàn)異?;蛐枰匦聠訒r,復(fù)位電路能夠迅速將系統(tǒng)恢復(fù)到初始狀態(tài)。STM32微控制器的
    的頭像 發(fā)表于 08-06 10:26 ?2464次閱讀

    復(fù)位電路介紹 復(fù)位電路的原理及作用

    電路概述 復(fù)位電路是一種用于控制電子系統(tǒng)啟動或恢復(fù)到初始狀態(tài)的電路。當(dāng)系統(tǒng)通電或者按下復(fù)位按鈕時
    的頭像 發(fā)表于 10-18 16:44 ?6199次閱讀

    復(fù)位電路的三種方式 復(fù)位電路的原理和作用

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