freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

fpgacpld數(shù)字電路設(shè)計(jì)經(jīng)驗(yàn)分享轉(zhuǎn)載(已修改)

2025-05-23 20:01 本頁面
 

【正文】 FPGA CPLD 數(shù)字電路設(shè)計(jì)經(jīng)驗(yàn)分享 轉(zhuǎn)載 摘要:在數(shù)字電路的設(shè)計(jì)中,時序設(shè)計(jì)是一個系統(tǒng)性能的主要標(biāo)志,在高層次設(shè)計(jì)方法中,對時序控制的抽象度也相應(yīng)提高,因此在設(shè)計(jì)中較難把握,但在理解 RTL 電路時序模型的基礎(chǔ)上,采用合理的設(shè)計(jì)方法在設(shè)計(jì)復(fù)雜數(shù)字系統(tǒng)是行之有效的,通過許多設(shè)計(jì)實(shí)例證明采用這種方式可以使電路的后仿真通過率大大提高,并且系統(tǒng)的工作頻率可以達(dá)到一個較高水平。 關(guān)鍵詞: FPGA 數(shù)字電路時序時延路徑建立時間保持時間 1數(shù)字電路設(shè)計(jì)中的幾個基本概念: 建立時間和保持時間: 建立時間 (setup time)是指在觸發(fā)器的時鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時間,如果建立時間不夠,數(shù)據(jù)將不能在這個時鐘上升沿被打入觸發(fā)器;保持時間 (hold time)是指在觸發(fā)器的時鐘信號上升沿到來以后,數(shù)據(jù)穩(wěn)定不變的時間,如果保持時間不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器。如圖 1。數(shù)據(jù)穩(wěn)定傳輸必須滿足建立和保持時間的要求,當(dāng)然在一些情況下,建立時間和保持時間的值可以為零。 PLD/FPGA 開發(fā)軟件可以自動計(jì)算兩個相關(guān)輸入的建立和保持時間 (如圖 2) 圖 1建立時間和保持時間關(guān)系圖 注:在考慮建立保持時間時, 應(yīng)該考慮時鐘樹向后偏斜的情況,在考慮建立時間時應(yīng)該考慮時鐘樹向前偏斜的情況。在進(jìn)行后仿真時,最大延遲用來檢查建立時間,最小延時用來檢查保持時間。 建立時間的約束和時鐘周期有關(guān),當(dāng)系統(tǒng)在高頻時鐘下無法工作時,降低時鐘頻率就可以使系統(tǒng)完成工作。保持時間是一個和時鐘周期無關(guān)的參數(shù),如果設(shè)計(jì)不合理,使得布局布線工具無法布出高質(zhì)量的時鐘樹,那么無論如何調(diào)整時鐘頻率也無法達(dá)到要求,只有對所設(shè)計(jì)系統(tǒng)作較大改動才有可能正常工作,導(dǎo)致設(shè)計(jì)效率大大降低。因此合理的設(shè)計(jì)系統(tǒng)的時序是提高設(shè)計(jì)質(zhì)量的關(guān)鍵。在可編程器件中,時鐘樹的偏斜 幾乎可以不考慮,因此保持時間通常都是滿足的。 FPGA 中的競爭和冒險現(xiàn)象 信號在 FPGA 器件內(nèi)部通過連線和邏輯單元時,都有一定的延時。延時的大小與連線的長短和邏輯單元的數(shù)目有關(guān),同時還受器件的制造工藝、工作電壓、溫度等條件的影響。信號的高低電平轉(zhuǎn)換也需要一定的過渡時間。由于存在這兩方面因素,多路信號的電平值發(fā)生變化時,在信號變化的瞬間,組合邏輯的輸出有先后順序,并不是同時變化 ,往往會出現(xiàn)一些不正確的尖峰信號,這些尖峰信號稱為 毛刺 。如果一個組合邏輯電路中有 毛刺 出現(xiàn),就說明該電路存在 冒險 。 (與分立元件不同,由于 PLD 內(nèi)部不存在寄生電容電感,這些毛刺將被完整的保留并向下一級傳遞,因此毛刺現(xiàn)象在 PLD、 FPGA 設(shè)計(jì)中尤為突出 )圖2是一個邏輯冒險的例子,從圖 3 的仿真波形可以看出, A、 B、 C、 D四個輸入信號經(jīng)過布線延時以后,高低電平變換不是同時發(fā)生的,這導(dǎo)致輸出信號OUT出現(xiàn)了毛刺。 (我們無法保證所有連線的長度一致,所以即使四個輸入信號在輸入端同時變化,但經(jīng)過 PLD 內(nèi)部的走線,到達(dá)或門的時間也是不一樣的,毛刺必然產(chǎn)生 )。可以概括的講,只要輸入信號同時變化, (經(jīng)過內(nèi)部走線 )組合邏輯必將產(chǎn)生毛刺。 將它們的輸出直接連接到時鐘輸入端、清零或置位端口的設(shè)計(jì)方法是錯誤的,這可能會導(dǎo)致嚴(yán)重的后果。所以我們必須檢查設(shè)計(jì)中所有時鐘、清零和置位等對毛刺敏感的輸入端口,確保輸入不會含有任何毛刺 圖 2存在邏輯冒險的電路示例 圖 3圖 2所示電路的仿真波形 冒險往往會影響到邏輯電路的穩(wěn)定性。時鐘端口、清零和置位端口對毛刺信號十分敏感,任何一點(diǎn)毛刺都可能會使系統(tǒng)出錯,因此判斷邏輯電路中是否存在冒險以及如何避免冒險是設(shè)計(jì)人員必須要考慮的問題。 如何處理毛刺 我們可以通過改變設(shè)計(jì),破壞毛刺產(chǎn)生的條件,來減少毛刺的發(fā)生。例如,在數(shù)字 電路設(shè)計(jì)中,常常采用格雷碼計(jì)數(shù)器取代普通的二進(jìn)制計(jì)數(shù)器,這是因?yàn)楦窭状a計(jì)數(shù)器的輸出每次只有一位跳變,消除了競爭冒險的發(fā)生條件,避免了毛刺的產(chǎn)生。 毛刺并不是對所有的輸入都有危害,例如 D 觸發(fā)器的 D 輸入端,只要毛刺不出現(xiàn)在時鐘的上升沿并且滿足數(shù)據(jù)的建立和保持時間,就不會對系統(tǒng)造成危害,我們可以說 D 觸發(fā)器的 D 輸入端對毛刺不敏感。根據(jù)這個特性,我們應(yīng)當(dāng)在系統(tǒng)中盡可能采用同步電路,這是因?yàn)橥诫娐沸盘柕淖兓及l(fā)生在時鐘沿,只要毛刺不出現(xiàn)在時鐘的沿口并且不滿足數(shù)據(jù)的建立和保持時間,就不會對系統(tǒng)造成危害。 (由于毛刺很短, 多為幾納秒,基本上都不可能滿足數(shù)據(jù)的建立和保持時間 ) 去除毛刺的一種常見的方法是利用 D 觸發(fā)器的 D 輸入端對毛刺信號不敏感的特點(diǎn),在輸出信號的保持時間內(nèi),用觸發(fā)器讀取組合邏輯的輸出信號,這種方法類似于將異步電路轉(zhuǎn)化為同步電路。圖 4 給出了這種方法的示范電路,圖5是仿真波形。 如前所述,優(yōu)秀的設(shè)計(jì)方案,如采用格雷碼計(jì)數(shù)器,同步電路等,可以大大減少毛刺,但它并不能完全消除毛刺。毛刺并不是對所有輸入都有危害,例如 D 觸發(fā)器的 D 輸入端,只要毛刺不出現(xiàn)在時鐘的上升沿并且滿足數(shù)據(jù)的建立和保持時間,就不會對系統(tǒng)造成危害。因此我們 可以說 D觸發(fā)器的 D輸入端對毛刺不敏感。但對于 D 觸發(fā)器的時鐘端,置位端,清零端,則都是對毛刺敏感的輸入端,任何一點(diǎn)毛刺就會使系統(tǒng)出錯,但只要認(rèn)真處理,我們可以把危害降到最低直至消除。下面我們就對幾種具體的信號進(jìn)行探討。 清除和置位信號在 FPGA 的設(shè)計(jì)中,全局的清零和置位信號必須經(jīng)過全局的清零和置位管腳輸入,因?yàn)樗麄円矊儆谌值馁Y源,其扇出能力大,而且在 FPGA 內(nèi)部是直接連接到所有的觸發(fā)器的置位和清零端的,這樣的做法會使芯片的工作可靠、性能穩(wěn)定,而使用普通的 IO 腳則不能保證該性能。 在 FPGA 的設(shè)計(jì)中,除 了從外部管腳引入的全局清除和置位信號外在 FPGA內(nèi)部邏輯的處理中也經(jīng)常需要產(chǎn)生一些內(nèi)部的清除或置位信號。清除和置位信號要求象對待時鐘那樣小心地考慮它們,因?yàn)檫@些信號對毛刺也是非常敏感的。 在同步電路設(shè)計(jì)中,有時候可以用同步置位的辦法來替代異步清 0。在用硬件描述語言的設(shè)計(jì)中可以用如下的方式來描述: 異步清 0的描述方法: process(rst,clk) begin if rst=39。139。then count=(others=39。039。); elsif clk39。event and clk=39。139。then count=count 1; end if; end process; 同步清 0的描述方法: process begin wait until clk39。event and clk=39。139。; if rst=39。139。then count=(others=39。039。); else count=count 1; end if; end process; 觸發(fā)器和所存器: 我們知道,觸發(fā)器是在時鐘的沿進(jìn)行數(shù)據(jù)的鎖存的,而所存器是用電平使能來鎖存數(shù)據(jù)的。所 以觸發(fā)器的 Q 輸出端在每一個時鐘沿都會被更新,而所存器只能在使能電平有效器件才會被更新。在 FPGA 設(shè)計(jì)中建議如果不是必須那么應(yīng)該盡量使用觸發(fā)器而不是所存器。 那么在使用硬件描述語言進(jìn)行電路設(shè)計(jì)的時候如何區(qū)分觸發(fā)器和所存器的描述方法哪 ?其實(shí)有不少人在使用的過程中可能并沒有特意區(qū)分過,所以也忽略了二者在描述方法上的區(qū)別。下面是用 VHDL 語言描述的觸發(fā)器和所存器以及綜合器產(chǎn)生的電路邏輯圖。 觸發(fā)器的語言描述: process begin wait until clk39。event and clk=39。139。; q=d; end process; 所存器的語言描述: process(en,d) begin if en=39。139。then q=d; end if; end process; 由上述對
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1