邏輯器件的同步設(shè)計
在設(shè)計邏輯和電路時,經(jīng)常會遇到這樣的問題。即采用普通集成電路實現(xiàn)的設(shè)計移植到FPGA/CPLD邏輯器件時,其設(shè)計無法正常運行。另外,有些設(shè)計己經(jīng)在邏輯器件申實現(xiàn)或通過了仿真測試。但經(jīng)過重新布線設(shè)計后,該設(shè)計不能正常工作。出現(xiàn)這些問題,基本上是在設(shè)計中出現(xiàn)了異步設(shè)計。典型的異步電路有以下幾種。
本文引用地址:http://cafeforensic.com/article/189900.htm(1)組合環(huán)路
組合環(huán)路是數(shù)字邏輯設(shè)計中不穩(wěn)定性和不可靠性最常見的原因之一。在同步設(shè)計中,所有的反饋環(huán)路都應(yīng)該包括寄存器。組合環(huán)路直接建立沒有寄存器的反饋,違反了同步設(shè)計的原則。例如,當(dāng)把一個寄存器輸出通過組合邏輯反饋給同一個寄存器的異步引腳時,就會產(chǎn)生組合環(huán)路,如圖1所示。
圖1 組合邏輯反饋的異步電路
組合環(huán)路是高風(fēng)險的設(shè)計結(jié)構(gòu),這是因為組合環(huán)路的功能通常依靠環(huán)路邏輯的相對傳播延遲。正如所討論的,傳播延遲可能改變,那么環(huán)路行為也可能發(fā)生改變。
(2)延遲鏈路
當(dāng)兩個以上連續(xù)的單輸入單扇出節(jié)點引起延遲時就會產(chǎn)生延遲鏈路,通常把反相器連在一起增加延遲。延遲鏈通常由異步設(shè)計引入,有時用來解決其他組合邏輯引起的競爭冒險,如圖2所示。FPGA延遲會隨每次布局布線的變化而改變,延遲鏈可能引發(fā)不同的設(shè)計問題,包括增加了設(shè)計對工作條件的敏感性,減小了設(shè)計的可靠性,從而不利于移植到其他器件結(jié)構(gòu)上。在設(shè)計中要避免使用延遲鏈,而應(yīng)采用同步設(shè)計。
圖2 延遲鏈引發(fā)設(shè)計問題
(3)異步計數(shù)器
在低速且小規(guī)模的集成電路設(shè)計中,經(jīng)常采用異步結(jié)構(gòu)進行計數(shù)器或分頻器設(shè)計,如圖3所示。因為這種電路結(jié)構(gòu)簡單,連線較少。但這種電路結(jié)構(gòu)非常容易產(chǎn)生競爭冒險現(xiàn)象,并且無法提供電路的工作速度。
圖3 異步計數(shù)器結(jié)構(gòu)產(chǎn)生競爭冒險現(xiàn)象
綜合以上因素,為提高邏輯設(shè)計的可靠性,在邏輯設(shè)計時應(yīng)盡可能地采用同步設(shè)計。另外,由于FPGA器件的內(nèi)部結(jié)構(gòu)特性,采用同步設(shè)計可以有效地利用器件中的邏輯資源。在同步設(shè)計時,只要邏輯延遲不等于或大于時鐘周期就可以避免毛刺對邏輯運行的影響,使系統(tǒng)穩(wěn)定地同步于系統(tǒng)時鐘。
評論