非同步復位同步釋放

2022-08-20 20:57:09 字數 1012 閱讀 2122

首先要說一下同步復位與非同步復位的區別。

同步復位是指復位訊號在時鐘的上公升沿或者下降沿才能起作用,而非同步復位則是即時生效,與時鐘無關。非同步復位的好處是速度快。

再來談一下為什麼fpga設計中要用非同步復位同步釋放。

復位訊號的釋放是有講究的:

最後再說一下同步數位電路的setup/hold timing check的實質。

同步數位電路的基本單元就是兩級dff,中間是一堆組合邏輯,data就是在clk一拍一拍的控制下,逐漸向後面傳遞,當然,在傳遞的過程中,通過組合邏輯實現資料的處理與轉換;但是物理世界裡面,組合邏輯一定是有毛刺的,比如說data通過一系列的處理之後準備通過dff傳遞到下乙個單元的時候,你怎麼能保證第二級dff採到的值是處理完畢穩定可靠的data,而不是還處於中間態的data?!(舉個例子,假設我們這裡的data是乙個8bit的bus訊號,處理之前是1111_0000,通過組合邏輯處理完之後我們期望變成1111_1111;我們知道後面4個bit由0變1是需要時間的,由於布局佈線的緣故,這4bit不可能在同乙個時刻齊刷刷的同時由0變1,肯定是有的bit先變1,有的bit後變1;也就是在由1111_0000變成1111_1111的過程中,可能會存在1111_1000/1111_1100/1111_1101/...等等這樣的中間態資料,我們不能在data還處於中間態的時候就去sample它,否則得到的不是我們預期的值,會引起整個晶元的邏輯錯誤)我們實際上是通過setup/hold time來保證的,即:如果電路中所有dff的setup/hold time都能夠滿足,表示data到達d端的時間比clk跳變沿時刻超過了setup時間(反之,如果data在setup+hold時間視窗內還在變化,一定會有setup/hold timing vio),這樣,我們通過check 所有dff的setup/hold timing來間接地保證所有dff採到的值都是經過組合邏輯處理並且處理完畢之後穩定可靠的值。(更確切的說,通過hold timing check來保證sample到的值是經過組合邏輯處理之後的值而不是上一筆的data,通過setup time來保證sample到的是經過組合邏輯處理完畢之後並且穩定下來的值)

同步復位 非同步復位 非同步復位同步釋放筆記

同步復位 非同步復位 非同步復位同步釋放筆記 一般來說,競爭 冒險是由於組合電路競爭冒險產生毛刺,從而影響整個邏輯電路。其實時序電路中也是存在競爭 冒險的,而這一特性主要是由d觸發器輸入端訊號之間的竟爭產生的。存在以下兩種競爭 冒險。1 clk上公升沿與rstn下降沿同時到達 實際上對於d觸發器而言...

非同步復位同步釋放

結構簡單,節省資源 待深度挖掘,為什麼就結構簡單了呢?1 這裡有乙個巨集觀解釋 最好是系統一起復位釋放,但是時鐘域不同,不可能保證系統一起復位釋放。一般來說,系統復位釋放的順序,是需要保證的。否則系統就是不安全的。舉個例子,系統啟動時,核心讀取啟動指令,要powerdown某外設 但是powerdo...

非同步復位同步釋放

簡介 在實際的工程中選擇復位策略之前必須考慮許多設計方面的問題,如使用同步復位或者非同步復位或者非同步復位同步釋放 asynchronous reset synchronous release或者synchronized asynchronous reset 以及是否每乙個觸發器都需要進行復位。復位...