上思維導圖:
如果要問“芯片中怎么復位才對,?”
很多人都會回答“異步復位同步釋放”,。
為什么要用異步復位同步釋放,是不是所有的芯片都必須采用這種方式,,估計很少人能回答上來,。那么讓我們從為什么要復位開始。
1. 復位的目的
復位信號在數(shù)字電路里面的重要性僅次于時鐘信號,。對一個芯片來說,,復位的主要目的是使芯片電路進入一個已知的,確定的狀態(tài),。主要是觸發(fā)器進入確定的狀態(tài),。在一般情況下,芯片中的每個觸發(fā)器都應該是可復位的,。在某些情況下,,當在高速應用程序中使用流水線觸發(fā)器(移位寄存器觸發(fā)器)時,為了實現(xiàn)更高的性能設計,,可能會從某些觸發(fā)器中消除復位,。這種類型設計需要在復位期間,運行預先確定數(shù)量的時鐘周期,,以使ASIC處于已知的狀態(tài),。
1.1 為什么需要復位呢?
1)復位可以使電路從確定的初始狀態(tài)開始運行:
上電復位:上電的時候,,為了避免上電后進入隨機狀態(tài)而使電路紊亂,,這個時候就需要上電復位。
中間復位:有時候,,要求電路從初始狀態(tài)開始執(zhí)行電路的功能,,要對電路進行復位,讓它從初的狀態(tài)開始運行,。
2) 復位可以使電路從錯誤狀態(tài)回到可以控制的確定狀態(tài):
如果電路發(fā)生了異常,,比如狀態(tài)不正常,中斷異常,,firmware程序跑飛,,這個時候就可以對電路進行復位,讓它從錯誤的狀態(tài)回到一個正常的狀態(tài),。
3) 電路仿真時需要電路具有已知的初始值
在仿真的時候,,信號在初始狀態(tài)是未知狀態(tài)(也就是所謂的x,,對信號初始化之后的這種情況除外,因為仿真的時候?qū)π盘柍跏蓟褪剐盘栍辛顺跏贾?,這就不是x了),。
對于數(shù)據(jù)通路(數(shù)字系統(tǒng)一般分為數(shù)據(jù)通路和控制通路,數(shù)據(jù)通路一般是對輸入的數(shù)據(jù)進行處理,,控制通路則是對運行的情況進行操作),,在實際電路中,只要輸入是有效數(shù)據(jù)(開始的時候可能不是有效的),,輸出后的狀態(tài)也是確定的;在仿真的時候,也是輸入數(shù)據(jù)有效了,,輸出也就確定了,。也就是說,初始不定態(tài)對數(shù)據(jù)通路的影響不明顯,。
對于控制通路,,在實際電路中,只要控制通路完備(比如說控制通路的狀態(tài)機是完備的),,初始狀態(tài)是不定態(tài),,在經(jīng)過一定的循環(huán)后,還是能回到正確的狀態(tài)上;在仿真的時候就不行了,,仿真的時候由于初始狀態(tài)為未知態(tài),,控制電路一開始就陷入了未知態(tài);仿真跟實際電路不同,仿真是“串行”的,,仿真時控制信號的初始不定態(tài)會導致后續(xù)的控制信號結(jié)果都是不定態(tài),,也就是說,初始的不定態(tài)對控制通道是致命的,。

