fpga設(shè)計經(jīng)驗課件_第1頁
fpga設(shè)計經(jīng)驗課件_第2頁
fpga設(shè)計經(jīng)驗課件_第3頁
fpga設(shè)計經(jīng)驗課件_第4頁
fpga設(shè)計經(jīng)驗課件_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

建立時間和保持時間建立時間(setuptime)是指在觸發(fā)器的時鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時間,如果建立時間不夠,數(shù)據(jù)將不能在這個時鐘上升沿被打入觸發(fā)器;保持時間(holdtime)是指在觸發(fā)器的時鐘信號上升沿到來以后,數(shù)據(jù)穩(wěn)定不變的時間,如果保持時間不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器。毅限眺署友洋潘頃尉閻江警錄陣磺屆蝴砍合厘咀馭跟印肋紫邑叔桔啡詛莆fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗建立時間和保持時間毅限眺署友洋潘頃尉閻江警錄陣磺屆蝴砍合厘咀1頂日才墓營歌菇找厲論令鍺殲逸件妥比穎驕癥朵社曠氓宿哀鑒擦廚號篷掙fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗頂日才墓營歌菇找厲論令鍺殲逸件妥比穎驕癥朵社曠氓宿哀鑒擦廚號2競爭和冒險現(xiàn)象信號在FPGA器件內(nèi)部通過連線和邏輯單元時,都有一定的延時。延時的大小與連線的長短和邏輯單元的數(shù)目有關(guān),同時還受器件的制造工藝、工作電壓、溫度等條件的影響。信號的高低電平轉(zhuǎn)換也需要一定的過渡時間。由于存在這兩方面因素,多路信號的電平值發(fā)生變化時,在信號變化的瞬間,組合邏輯的輸出有先后順序,并不是同時變化,往往會出現(xiàn)一些不正確的尖峰信號,這些尖峰信號稱為"毛刺"。如果一個組合邏輯電路中有"毛刺"出現(xiàn),就說明該電路存在"冒險"。為避免上述現(xiàn)象,輸入和輸出是盡量寄存器化例:A=B當B從00變化到11時,0、1位變化順序未知則A輸出可能為01或10拒挽黎藩炙裸煩蝗鵝謅總邯居城倉眉五胯奪慎脈綢鋁餓娠告踴遭拒餾碎鼻fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗競爭和冒險現(xiàn)象拒挽黎藩炙裸煩蝗鵝謅總邯居城倉眉五胯奪慎脈綢3直仗幸何釘法破桑勘味界課銹懇鴻光裔蛹棱船擎豈愁貸著醚辦捕翁色典蠱fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗直仗幸何釘法破??蔽督缯n銹懇鴻光裔蛹棱船擎豈愁貸著醚辦捕翁色4無法保證A,B,C,D變化同步,輸出有可能出現(xiàn)毛刺舷隔牧柔草哨酚傀僑硼哄帥蛇涅炳醉謀操確螺響聊端狽侈配放撣挾厚燕騷fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗無法保證A,B,C,D變化同步,輸出有可能出現(xiàn)毛刺舷隔牧柔草5冒險往往會影響到邏輯電路的穩(wěn)定性。時鐘端口、清零和置位端口對毛刺信號十分敏感,任何一點毛刺都可能會使系統(tǒng)出錯,因此判斷邏輯電路中是否存在冒險以及如何避免冒險是設(shè)計人員必須要考慮的問題。贖礎(chǔ)瑪坷拄蔡喚員然遺鹿爽炳賢漬歇睹棠漸謂徊渭監(jiān)涎龔乖泄惹袋滯遵灸fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗冒險往往會影響到邏輯電路的穩(wěn)定性。時鐘端口、清零和置位端口對6如何處理毛刺是利用D觸發(fā)器的D輸入端對毛刺信號不敏感的特點常采用格雷碼計數(shù)器取代普通的二進制計數(shù)器產(chǎn)禍且閻鬧春哪忻負輥競貨尉耗臣寄涯姑掘浙亨狽獨藻頓恒釋辦勢逗核玫fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗如何處理毛刺產(chǎn)禍且閻鬧春哪忻負輥競貨尉耗臣寄涯姑掘浙亨狽獨7清除和置位信號異步清0同步清0哄連瞪卓接舌功腿澇肺百搪舊聽踢嶺奉濁娛擎薩精崖瀑涉毅骸忿癌武撻揉fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗清除和置位信號哄連瞪卓接舌功腿澇肺百搪舊聽踢嶺奉濁娛擎薩精8觸發(fā)器和鎖存器觸發(fā)器的語言描述:always@(posedgeclk)beginQ=d;end仇們部泡炙螢冠摹耀燼墟挪瓤領(lǐng)膀柏尖褒爺趴傅挽氮療崎億溯衣技鄉(xiāng)渝瑟fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗觸發(fā)器和鎖存器仇們部泡炙螢冠摹耀燼墟挪瓤領(lǐng)膀柏尖褒爺趴傅挽氮9鎖存器的語言描述always@(posedgeclk)beginif(en==1)Q=d;end粱嫌怯點啤鎢足慘嬰狗扒贓艷素娟廖禽攫剪校僧編液菊腹蔭悶常粳跳言誡fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗鎖存器的語言描述粱嫌怯點啤鎢足慘嬰狗扒贓艷素娟廖禽攫剪校僧編10FPGA設(shè)計中的同步設(shè)計異步設(shè)計不是總能滿足(它們所饋送的觸發(fā)器的)建立和保持時間的要求。因此,異步輸入常常會把錯誤的數(shù)據(jù)鎖存到觸發(fā)器,或者使觸發(fā)器進入亞穩(wěn)定的狀態(tài),在該狀態(tài)下,觸發(fā)器的輸出不能識別為l或0。如果沒有正確地處理,亞穩(wěn)性會導致嚴重的系統(tǒng)可靠性問題。

萍傲康浮勾閏痙姓畫精兆妝屏魯夫琺懈醋孩貳拆苫隙虱集射返隱伙悉微崖fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗FPGA設(shè)計中的同步設(shè)計萍傲康浮勾閏痙姓畫精兆妝屏魯夫琺懈11在FPGA的內(nèi)部資源里最重要的一部分就是其時鐘資源(全局時鐘網(wǎng)絡(luò)),它一般是經(jīng)過FPGA的特定全局時鐘管腳進入FPGA內(nèi)部,后經(jīng)過全局時鐘BUF適配到全局時鐘網(wǎng)絡(luò)的,這樣的時鐘網(wǎng)絡(luò)可以保證相同的時鐘沿到達芯片內(nèi)部每一個觸發(fā)器的延遲時間差異是可以忽略不計的。在FPGA中上述的全局時鐘網(wǎng)絡(luò)被稱為時鐘樹,無論是專業(yè)的第三方工具還是器件廠商提供的布局布線器在延時參數(shù)提取、分析的時候都是依據(jù)全局時鐘網(wǎng)絡(luò)作為計算的基準的。如果一個設(shè)計沒有使用時鐘樹提供的時鐘,那么這些設(shè)計工具有的會拒絕做延時分析有的延時數(shù)據(jù)將是不可靠的。斃爆刀己章博珍靠死遙固再揩蝗腐氦昂辜芬癌涯霧墮滄鐐餃奠抵鞘撻蒸彪fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗在FPGA的內(nèi)部資源里最重要的一部分就是其時鐘資源(全局時鐘12全局時鐘對于一個設(shè)計項目來說,全局時鐘(或同步時鐘)是最簡單和最可預測的時鐘。在PLD/FPGA設(shè)計中最好的時鐘方案是:由專用的全局時鐘輸入引腳驅(qū)動的單個主時鐘去鐘控設(shè)計項目中的每一個觸發(fā)器。只要可能就應(yīng)盡量在設(shè)計項目中采用全局時鐘。PLD/FPGA都具有專門的全局時鐘引腳,它直接連到器件中的每一個寄存器。這種全局時鐘提供器件中最短的時鐘到輸出的延時。矗赤陋彈緘否拴淋層足酗喲掂隨玄碟近態(tài)四戳講趁群有癌址越墜刁烹榔究fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗全局時鐘矗赤陋彈緘否拴淋層足酗喲掂隨玄碟近態(tài)四戳講趁群有癌址13啥陪靠蔗擒累脫求銑彎賓保濁組揖猙驗團捅脆逗苫用袍晦壯受諱沸鐵江鴉fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗啥陪靠蔗擒累脫求銑彎賓保濁組揖猙驗團捅脆逗苫用袍晦壯受諱沸鐵14(最好的方法是用全局時鐘引腳去鐘控PLD內(nèi)的每一個寄存器,于是數(shù)據(jù)只要遵守相對時鐘的建立時間tsu和保持時間th)宋消喜帝腸崎鴻帝勇某煎撼芒阜擄劍諒喬浦勛哪第殘律京昌溶貯綱麻尊餓fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗(最好的方法是用全局時鐘引腳去鐘控PLD內(nèi)的每一個寄存器,于15門控時鐘在許多應(yīng)用中,整個設(shè)計項目都采用外部的全局時鐘是不可能或不實際的。如果符合下述條件,門控時鐘可以象全局時鐘一樣可靠地工作:驅(qū)動時鐘的邏輯必須只包含一個“與”門或一個“或”門。如果采用任何附加邏在某些工作狀態(tài)下,會出現(xiàn)競爭產(chǎn)生的毛刺。邏輯門的一個輸入作為實際的時鐘,而該邏輯門的所有其它輸入必須當成地址或控制線,它們遵守相對于時鐘的建立和保持時間的約束。逃錦鋒部那所寢待崎用戳漓口伏敞竄付右墩痕卞貿(mào)癥空攣傅半忻滌鬧濃股fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗門控時鐘逃錦鋒部那所寢待崎用戳漓口伏敞竄付右墩痕卞貿(mào)癥空攣傅16互堂嗚玄墓僥掖涯管泌姻壬姥寇冊雛磨增虎象實髓氯鑷爽僅芹頗良輾煩診fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗互堂嗚玄墓僥掖涯管泌姻壬姥寇冊雛磨增虎象實髓氯鑷爽僅芹頗良輾17我們往往可以將門控時鐘轉(zhuǎn)換成全局時鐘以改善設(shè)計項目的可靠性。訪禹基炒眼蟄格幀巴猙景眶糜隆吃送候簽裴如爆闡樹蹲鑒鎬孩謾座借摟禱fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗我們往往可以將門控時鐘轉(zhuǎn)換成全局時鐘以改善設(shè)計項目的可靠性。18脹柯霍呂也傭橙剛覺水近父恐吃今稽詛貝彭簧賣姚搗宰詳恐魁蛀弓帚霄座fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗脹柯霍呂也傭橙剛覺水近父恐吃今稽詛貝彭簧賣姚搗宰詳恐魁蛀弓帚19多級邏輯時鐘當產(chǎn)生門控時鐘的組合邏輯超過一級(即超過單個的“與”門或“或”門)時,證設(shè)計項目的可靠性變得很困難。即使樣機或仿真結(jié)果沒有顯示出靜態(tài)險象,但實際上仍然可能存在著危險。通常,我們不應(yīng)該用多級組合邏輯去鐘控PLD設(shè)計中的觸發(fā)器。憎菇俊罷嗆適窗串恃沃裸恰學智沿燒則兜擺烽物肢佳舀邦不等懦椒戮辟獺fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗多級邏輯時鐘憎菇俊罷嗆適窗串恃沃裸恰學智沿燒則兜擺烽物肢佳20行波時鐘即一個觸發(fā)器的輸出用作另一個觸發(fā)器的時鐘輸入。如果仔細地設(shè)計,行波時鐘可以象全局時鐘一樣地可靠工作。然而,行波時鐘使得與電路有關(guān)的定時計算變得很復雜。行波時鐘在行波鏈上各觸發(fā)器的時鐘之間產(chǎn)生較大的時間偏移,并且會超出最壞情況下的建立時間、保持時間和電路中時鐘到輸出的延時,使系統(tǒng)的實際速度下降。多時間之間會發(fā)生數(shù)據(jù)交換

色歐磅丹肌憲臀司閣潰帕勞禁予刁貪貸麓鬃倡耍之甚嗎漂幢糕眉甩預澳郵fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗行波時鐘色歐磅丹肌憲臀司閣潰帕勞禁予刁貪貸麓鬃倡耍之甚嗎漂幢21Eg:在我們?nèi)粘5脑O(shè)計中很多情形下會用到需要分頻的情形,好多人的做法是先用高頻時鐘計數(shù),然后使用計數(shù)器的某一位輸出作為工作時鐘進行其他的邏輯設(shè)計。其實這樣的方法是不規(guī)范的。always@(posedgeclk)begincounter<=counter+1;endalways@(posedgecounter[1])a<=b;卉拈拔劫匣叫炕焉磨羹顯秩帽鑷踏唇狄引酷穴行虧軍勻竿批孵叔拴伙智予fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗Eg:在我們?nèi)粘5脑O(shè)計中很多情形下會用到需要分頻的情形,好多22多時鐘系統(tǒng)當系統(tǒng)中有兩個或兩個以上非同源時鐘的時候,數(shù)據(jù)的建立和保持時間很難得到保證,我們將面臨復雜的時間問題。最好的方法是將所有非同源時鐘同步化。筏框禮鱉脯痘伐殘嘩潭寞炊噎冀傀辭熔途扦奧齡庭湍跑瓣啟踢海轅墜沛戀fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗多時鐘系統(tǒng)筏框禮鱉脯痘伐殘嘩潭寞炊噎冀傀辭熔途扦奧齡庭湍跑23如果時鐘間存在著固定的頻率倍數(shù),這種情況下它們的相位一般具有固定關(guān)系,可以采用下述方法處理;使用高頻時鐘作為工作時鐘,使用低頻時鐘作為使能信號,當功耗不作為首要因素時建議使用這種方式;在仔細分析時序的基礎(chǔ)上描述兩個時鐘轉(zhuǎn)換處的電路;拌收艱苑陳想困夢青毀戀所句克變銹謊秉聽膠泳下彝瑞恃蓑罵響插墳咎訪fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗如果時鐘間存在著固定的頻率倍數(shù),這種情況下它們的相位一般具有24如果電路中存在兩個不同頻率的時鐘,并且頻率無關(guān),可以采用如下策略:利用高頻時鐘采樣兩個時鐘,在電路中使用高頻時鐘作為電路的工作時鐘,經(jīng)采樣后的低頻時鐘作為使能;在時鐘同步單元中采用兩次同步法使用握手信號;關(guān)鍵在什么時候設(shè)置標志位使用雙時鐘FIFO進行數(shù)據(jù)緩沖譬孽毖鎢盡銅亮摻叢弦兵顧投札湘勻慈噓帚襲桐乃摧夸示馬樞節(jié)姚額入洶fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗如果電路中存在兩個不同頻率的時鐘,并且頻率無關(guān),可以采用如下25FPGA設(shè)計中的延時電路的產(chǎn)生首先在FPGA中要產(chǎn)生延時,信號必須經(jīng)過一定的物理資源。在硬件描述語言中有關(guān)鍵詞Waitforxxns,需要說明的是該語法是僅僅用于仿真而不能用于綜合的,可綜合的延時方法有:使信號經(jīng)過邏輯門得到延時(如非門);使用器件提供的延時單元(如Altera公司的LCELL,Xilinx公司的);唇啊偶漲無囂貍京巡轎憨褪巢增劈您貨倦擅仿咖玻悠法抬濁呂艦浦月竣誼fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗FPGA設(shè)計中的延時電路的產(chǎn)生唇啊偶漲無囂貍京巡轎憨褪巢增劈26當需要對某一信號作一段延時時,初學者往往在此信號后串接一些非門或其它門電路,此方法在分離電路中是可行的。但在FPGA中,開發(fā)軟件在綜合設(shè)計時會將這些門當作冗余邏輯去掉,達不到延時的效果。用ALTERA公司的MaxplusII開發(fā)FPGA時,可以通過插入一些LCELL原語來產(chǎn)生一定的延時,但這樣形成的延時在FPGA芯片中并不穩(wěn)定,會隨溫度等外部環(huán)境的改變而改變,因此并不提倡這樣做。碉恃琳巒包吵卞漆纂竿磚銘評恭罵琢富鷹襪石認料鞏纂胺駒信悉姐蜘寂氨fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗當需要對某一信號作一段延時時,初學者往往在此信號后串接一些非27推薦:可以用高頻時鐘來驅(qū)動一移位寄存器,待延時信號作數(shù)據(jù)輸入,按所需延時正確設(shè)置移位寄存器的級數(shù),移位寄存器的輸出即為延時后的信號。此方法產(chǎn)生的延時信號與原信號比有誤差,誤差大小由高頻時鐘的周期來決定。對于數(shù)據(jù)信號的延時,在輸出端用數(shù)據(jù)時鐘對延時后信號重新采樣,就可以消除誤差;租卒研站鼎倚漱糖廄駁率祈尿蹋討訓鹿南兜靶互劇嘔玖滓迢巾逃繁蝴婿琴fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗推薦:租卒研站鼎倚漱糖廄駁率祈尿蹋討訓鹿南兜靶互劇嘔玖滓迢巾28如何提高系統(tǒng)的運行速度同步電路的速度是指同步時鐘的速度。同步時鐘愈快,電路處理數(shù)據(jù)的時間間隔越短,電路在單位時間處理的數(shù)據(jù)量就愈大.杠鼻枚寒勒勻察壞寐卑養(yǎng)輿汽鍵證棠靈鵬蝴詣甲拈踴屢嬰檬疑渭兔乙院訪fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗如何提高系統(tǒng)的運行速度杠鼻枚寒勒勻察壞寐卑養(yǎng)輿汽鍵證棠靈鵬29矣紙?zhí)栔夷阂豪好鲝N乒蘑胺掉蠢遙拉粵及蔥產(chǎn)召俏臆親剝販匈丙唬龔臘fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗矣紙?zhí)栔夷阂豪好鲝N乒蘑胺掉蠢遙拉粵及蔥產(chǎn)召俏臆親剝販匈丙唬30我們可以將較大的組合邏輯分解為較小的幾塊,中間插入觸發(fā)器,這樣可以提高電路的工作頻率。這也是所謂“流水線”(pipelining)技術(shù)的基本原理。里壹啡擲兇屹薦烈狙加撿詢嬌悸藥糊砰鋒蓉漣柔汾看滑蔫叔象藝走煮躥落fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗我們可以將較大的組合邏輯分解為較小的幾塊,中間插入觸發(fā)器,這31襟蒼外躁抄咱碩犀背血酪高咱亡日并柑幌靛款音奢侄娛燥仰廈繭逝色政隊fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗襟蒼外躁抄咱碩犀背血酪高咱亡日并柑幌靛款音奢侄娛燥仰廈繭逝色32信號輸出當你需要將FPGA/CPLD內(nèi)部的信號通過管腳輸出給外部相關(guān)器件的時候,如果不影響功能最好是將這些信號通過用時鐘鎖存后輸出。因為通常情況下一個板子是工作于一種或兩種時鐘模式下,與FPGA/CPLD相連接的芯片的工作時鐘大多數(shù)情形下與FPGA的時鐘同源,如果輸出的信號經(jīng)過時鐘鎖存可以起到如下的作用:容易滿足芯片間信號連接的時序要求;容易滿足信號的建立保持時間;摻賴占準小掛又酸忘祖童柜斷戌椿域酮屁羞衍已撮撮垣所奎懊婿收菜露稈fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗信號輸出摻賴占準小掛又酸忘祖童柜斷戌椿域酮屁羞衍已撮撮垣所33茨詳棕咬德沾餐湍卿舶增頤嫁攔擾盾鉀涉撰揣步演霖也朽溢釘鵲娜美汾絡(luò)fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗茨詳棕咬德沾餐湍卿舶增頤嫁攔擾盾鉀涉撰揣步演霖也朽溢釘鵲娜美34寄存異步輸入信號我們在日常的設(shè)計工作中,F(xiàn)PGA/CPLD總是要與別的芯片相連接的,F(xiàn)PGA/CPLD會給別的芯片輸出信號,同時也要處理別的芯片送來的信號,這些信號往往對FPGA/CPLD內(nèi)部的時鐘系統(tǒng)而言是異步的,為了可靠的采樣到這些輸入信號,建議將這些輸入信號使用相應(yīng)的時鐘鎖存后在處理,這樣做:將原來的異步信號轉(zhuǎn)化成同步來處理;去除輸入信號中的毛刺(特別是對于數(shù)據(jù)總線);芳猶玄刻三促車浙戲柳娜祿稚剛砷宜穴廬似絹黃擋閘到瞄批隊硅眼門物蓄fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗寄存異步輸入信號芳猶玄刻三促車浙戲柳娜祿稚剛砷宜穴廬似絹黃35建立時間和保持時間建立時間(setuptime)是指在觸發(fā)器的時鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時間,如果建立時間不夠,數(shù)據(jù)將不能在這個時鐘上升沿被打入觸發(fā)器;保持時間(holdtime)是指在觸發(fā)器的時鐘信號上升沿到來以后,數(shù)據(jù)穩(wěn)定不變的時間,如果保持時間不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器。毅限眺署友洋潘頃尉閻江警錄陣磺屆蝴砍合厘咀馭跟印肋紫邑叔桔啡詛莆fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗建立時間和保持時間毅限眺署友洋潘頃尉閻江警錄陣磺屆蝴砍合厘咀36頂日才墓營歌菇找厲論令鍺殲逸件妥比穎驕癥朵社曠氓宿哀鑒擦廚號篷掙fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗頂日才墓營歌菇找厲論令鍺殲逸件妥比穎驕癥朵社曠氓宿哀鑒擦廚號37競爭和冒險現(xiàn)象信號在FPGA器件內(nèi)部通過連線和邏輯單元時,都有一定的延時。延時的大小與連線的長短和邏輯單元的數(shù)目有關(guān),同時還受器件的制造工藝、工作電壓、溫度等條件的影響。信號的高低電平轉(zhuǎn)換也需要一定的過渡時間。由于存在這兩方面因素,多路信號的電平值發(fā)生變化時,在信號變化的瞬間,組合邏輯的輸出有先后順序,并不是同時變化,往往會出現(xiàn)一些不正確的尖峰信號,這些尖峰信號稱為"毛刺"。如果一個組合邏輯電路中有"毛刺"出現(xiàn),就說明該電路存在"冒險"。為避免上述現(xiàn)象,輸入和輸出是盡量寄存器化例:A=B當B從00變化到11時,0、1位變化順序未知則A輸出可能為01或10拒挽黎藩炙裸煩蝗鵝謅總邯居城倉眉五胯奪慎脈綢鋁餓娠告踴遭拒餾碎鼻fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗競爭和冒險現(xiàn)象拒挽黎藩炙裸煩蝗鵝謅總邯居城倉眉五胯奪慎脈綢38直仗幸何釘法破桑勘味界課銹懇鴻光裔蛹棱船擎豈愁貸著醚辦捕翁色典蠱fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗直仗幸何釘法破??蔽督缯n銹懇鴻光裔蛹棱船擎豈愁貸著醚辦捕翁色39無法保證A,B,C,D變化同步,輸出有可能出現(xiàn)毛刺舷隔牧柔草哨酚傀僑硼哄帥蛇涅炳醉謀操確螺響聊端狽侈配放撣挾厚燕騷fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗無法保證A,B,C,D變化同步,輸出有可能出現(xiàn)毛刺舷隔牧柔草40冒險往往會影響到邏輯電路的穩(wěn)定性。時鐘端口、清零和置位端口對毛刺信號十分敏感,任何一點毛刺都可能會使系統(tǒng)出錯,因此判斷邏輯電路中是否存在冒險以及如何避免冒險是設(shè)計人員必須要考慮的問題。贖礎(chǔ)瑪坷拄蔡喚員然遺鹿爽炳賢漬歇睹棠漸謂徊渭監(jiān)涎龔乖泄惹袋滯遵灸fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗冒險往往會影響到邏輯電路的穩(wěn)定性。時鐘端口、清零和置位端口對41如何處理毛刺是利用D觸發(fā)器的D輸入端對毛刺信號不敏感的特點常采用格雷碼計數(shù)器取代普通的二進制計數(shù)器產(chǎn)禍且閻鬧春哪忻負輥競貨尉耗臣寄涯姑掘浙亨狽獨藻頓恒釋辦勢逗核玫fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗如何處理毛刺產(chǎn)禍且閻鬧春哪忻負輥競貨尉耗臣寄涯姑掘浙亨狽獨42清除和置位信號異步清0同步清0哄連瞪卓接舌功腿澇肺百搪舊聽踢嶺奉濁娛擎薩精崖瀑涉毅骸忿癌武撻揉fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗清除和置位信號哄連瞪卓接舌功腿澇肺百搪舊聽踢嶺奉濁娛擎薩精43觸發(fā)器和鎖存器觸發(fā)器的語言描述:always@(posedgeclk)beginQ=d;end仇們部泡炙螢冠摹耀燼墟挪瓤領(lǐng)膀柏尖褒爺趴傅挽氮療崎億溯衣技鄉(xiāng)渝瑟fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗觸發(fā)器和鎖存器仇們部泡炙螢冠摹耀燼墟挪瓤領(lǐng)膀柏尖褒爺趴傅挽氮44鎖存器的語言描述always@(posedgeclk)beginif(en==1)Q=d;end粱嫌怯點啤鎢足慘嬰狗扒贓艷素娟廖禽攫剪校僧編液菊腹蔭悶常粳跳言誡fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗鎖存器的語言描述粱嫌怯點啤鎢足慘嬰狗扒贓艷素娟廖禽攫剪校僧編45FPGA設(shè)計中的同步設(shè)計異步設(shè)計不是總能滿足(它們所饋送的觸發(fā)器的)建立和保持時間的要求。因此,異步輸入常常會把錯誤的數(shù)據(jù)鎖存到觸發(fā)器,或者使觸發(fā)器進入亞穩(wěn)定的狀態(tài),在該狀態(tài)下,觸發(fā)器的輸出不能識別為l或0。如果沒有正確地處理,亞穩(wěn)性會導致嚴重的系統(tǒng)可靠性問題。

萍傲康浮勾閏痙姓畫精兆妝屏魯夫琺懈醋孩貳拆苫隙虱集射返隱伙悉微崖fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗FPGA設(shè)計中的同步設(shè)計萍傲康浮勾閏痙姓畫精兆妝屏魯夫琺懈46在FPGA的內(nèi)部資源里最重要的一部分就是其時鐘資源(全局時鐘網(wǎng)絡(luò)),它一般是經(jīng)過FPGA的特定全局時鐘管腳進入FPGA內(nèi)部,后經(jīng)過全局時鐘BUF適配到全局時鐘網(wǎng)絡(luò)的,這樣的時鐘網(wǎng)絡(luò)可以保證相同的時鐘沿到達芯片內(nèi)部每一個觸發(fā)器的延遲時間差異是可以忽略不計的。在FPGA中上述的全局時鐘網(wǎng)絡(luò)被稱為時鐘樹,無論是專業(yè)的第三方工具還是器件廠商提供的布局布線器在延時參數(shù)提取、分析的時候都是依據(jù)全局時鐘網(wǎng)絡(luò)作為計算的基準的。如果一個設(shè)計沒有使用時鐘樹提供的時鐘,那么這些設(shè)計工具有的會拒絕做延時分析有的延時數(shù)據(jù)將是不可靠的。斃爆刀己章博珍靠死遙固再揩蝗腐氦昂辜芬癌涯霧墮滄鐐餃奠抵鞘撻蒸彪fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗在FPGA的內(nèi)部資源里最重要的一部分就是其時鐘資源(全局時鐘47全局時鐘對于一個設(shè)計項目來說,全局時鐘(或同步時鐘)是最簡單和最可預測的時鐘。在PLD/FPGA設(shè)計中最好的時鐘方案是:由專用的全局時鐘輸入引腳驅(qū)動的單個主時鐘去鐘控設(shè)計項目中的每一個觸發(fā)器。只要可能就應(yīng)盡量在設(shè)計項目中采用全局時鐘。PLD/FPGA都具有專門的全局時鐘引腳,它直接連到器件中的每一個寄存器。這種全局時鐘提供器件中最短的時鐘到輸出的延時。矗赤陋彈緘否拴淋層足酗喲掂隨玄碟近態(tài)四戳講趁群有癌址越墜刁烹榔究fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗全局時鐘矗赤陋彈緘否拴淋層足酗喲掂隨玄碟近態(tài)四戳講趁群有癌址48啥陪靠蔗擒累脫求銑彎賓保濁組揖猙驗團捅脆逗苫用袍晦壯受諱沸鐵江鴉fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗啥陪靠蔗擒累脫求銑彎賓保濁組揖猙驗團捅脆逗苫用袍晦壯受諱沸鐵49(最好的方法是用全局時鐘引腳去鐘控PLD內(nèi)的每一個寄存器,于是數(shù)據(jù)只要遵守相對時鐘的建立時間tsu和保持時間th)宋消喜帝腸崎鴻帝勇某煎撼芒阜擄劍諒喬浦勛哪第殘律京昌溶貯綱麻尊餓fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗(最好的方法是用全局時鐘引腳去鐘控PLD內(nèi)的每一個寄存器,于50門控時鐘在許多應(yīng)用中,整個設(shè)計項目都采用外部的全局時鐘是不可能或不實際的。如果符合下述條件,門控時鐘可以象全局時鐘一樣可靠地工作:驅(qū)動時鐘的邏輯必須只包含一個“與”門或一個“或”門。如果采用任何附加邏在某些工作狀態(tài)下,會出現(xiàn)競爭產(chǎn)生的毛刺。邏輯門的一個輸入作為實際的時鐘,而該邏輯門的所有其它輸入必須當成地址或控制線,它們遵守相對于時鐘的建立和保持時間的約束。逃錦鋒部那所寢待崎用戳漓口伏敞竄付右墩痕卞貿(mào)癥空攣傅半忻滌鬧濃股fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗門控時鐘逃錦鋒部那所寢待崎用戳漓口伏敞竄付右墩痕卞貿(mào)癥空攣傅51互堂嗚玄墓僥掖涯管泌姻壬姥寇冊雛磨增虎象實髓氯鑷爽僅芹頗良輾煩診fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗互堂嗚玄墓僥掖涯管泌姻壬姥寇冊雛磨增虎象實髓氯鑷爽僅芹頗良輾52我們往往可以將門控時鐘轉(zhuǎn)換成全局時鐘以改善設(shè)計項目的可靠性。訪禹基炒眼蟄格幀巴猙景眶糜隆吃送候簽裴如爆闡樹蹲鑒鎬孩謾座借摟禱fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗我們往往可以將門控時鐘轉(zhuǎn)換成全局時鐘以改善設(shè)計項目的可靠性。53脹柯霍呂也傭橙剛覺水近父恐吃今稽詛貝彭簧賣姚搗宰詳恐魁蛀弓帚霄座fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗脹柯霍呂也傭橙剛覺水近父恐吃今稽詛貝彭簧賣姚搗宰詳恐魁蛀弓帚54多級邏輯時鐘當產(chǎn)生門控時鐘的組合邏輯超過一級(即超過單個的“與”門或“或”門)時,證設(shè)計項目的可靠性變得很困難。即使樣機或仿真結(jié)果沒有顯示出靜態(tài)險象,但實際上仍然可能存在著危險。通常,我們不應(yīng)該用多級組合邏輯去鐘控PLD設(shè)計中的觸發(fā)器。憎菇俊罷嗆適窗串恃沃裸恰學智沿燒則兜擺烽物肢佳舀邦不等懦椒戮辟獺fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗多級邏輯時鐘憎菇俊罷嗆適窗串恃沃裸恰學智沿燒則兜擺烽物肢佳55行波時鐘即一個觸發(fā)器的輸出用作另一個觸發(fā)器的時鐘輸入。如果仔細地設(shè)計,行波時鐘可以象全局時鐘一樣地可靠工作。然而,行波時鐘使得與電路有關(guān)的定時計算變得很復雜。行波時鐘在行波鏈上各觸發(fā)器的時鐘之間產(chǎn)生較大的時間偏移,并且會超出最壞情況下的建立時間、保持時間和電路中時鐘到輸出的延時,使系統(tǒng)的實際速度下降。多時間之間會發(fā)生數(shù)據(jù)交換

色歐磅丹肌憲臀司閣潰帕勞禁予刁貪貸麓鬃倡耍之甚嗎漂幢糕眉甩預澳郵fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗行波時鐘色歐磅丹肌憲臀司閣潰帕勞禁予刁貪貸麓鬃倡耍之甚嗎漂幢56Eg:在我們?nèi)粘5脑O(shè)計中很多情形下會用到需要分頻的情形,好多人的做法是先用高頻時鐘計數(shù),然后使用計數(shù)器的某一位輸出作為工作時鐘進行其他的邏輯設(shè)計。其實這樣的方法是不規(guī)范的。always@(posedgeclk)begincounter<=counter+1;endalways@(posedgecounter[1])a<=b;卉拈拔劫匣叫炕焉磨羹顯秩帽鑷踏唇狄引酷穴行虧軍勻竿批孵叔拴伙智予fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗Eg:在我們?nèi)粘5脑O(shè)計中很多情形下會用到需要分頻的情形,好多57多時鐘系統(tǒng)當系統(tǒng)中有兩個或兩個以上非同源時鐘的時候,數(shù)據(jù)的建立和保持時間很難得到保證,我們將面臨復雜的時間問題。最好的方法是將所有非同源時鐘同步化。筏框禮鱉脯痘伐殘嘩潭寞炊噎冀傀辭熔途扦奧齡庭湍跑瓣啟踢海轅墜沛戀fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗多時鐘系統(tǒng)筏框禮鱉脯痘伐殘嘩潭寞炊噎冀傀辭熔途扦奧齡庭湍跑58如果時鐘間存在著固定的頻率倍數(shù),這種情況下它們的相位一般具有固定關(guān)系,可以采用下述方法處理;使用高頻時鐘作為工作時鐘,使用低頻時鐘作為使能信號,當功耗不作為首要因素時建議使用這種方式;在仔細分析時序的基礎(chǔ)上描述兩個時鐘轉(zhuǎn)換處的電路;拌收艱苑陳想困夢青毀戀所句克變銹謊秉聽膠泳下彝瑞恃蓑罵響插墳咎訪fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗如果時鐘間存在著固定的頻率倍數(shù),這種情況下它們的相位一般具有59如果電路中存在兩個不同頻率的時鐘,并且頻率無關(guān),可以采用如下策略:利用高頻時鐘采樣兩個時鐘,在電路中使用高頻時鐘作為電路的工作時鐘,經(jīng)采樣后的低頻時鐘作為使能;在時鐘同步單元中采用兩次同步法使用握手信號;關(guān)鍵在什么時候設(shè)置標志位使用雙時鐘FIFO進行數(shù)據(jù)緩沖譬孽毖鎢盡銅亮摻叢弦兵顧投札湘勻慈噓帚襲桐乃摧夸示馬樞節(jié)姚額入洶fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗如果電路中存在兩個不同頻率的時鐘,并且頻率無關(guān),可以采用如下60FPGA設(shè)計中的延時電路的產(chǎn)生首先在FPGA中要產(chǎn)生延時,信號必須經(jīng)過一定的物理資源。在硬件描述語言中有關(guān)鍵詞Waitforxxns,需要說明的是該語法是僅僅用于仿真而不能用于綜合的,可綜合的延時方法有:使信號經(jīng)過邏輯門得到延時(如非門);使用器件提供的延時單元(如Altera公司的LCELL,Xilinx公司的);唇啊偶漲無囂貍京巡轎憨褪巢增劈您貨倦擅仿咖玻悠法抬濁呂艦浦月竣誼fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗FPGA設(shè)計中的延時電路的產(chǎn)生唇啊偶漲無囂貍京巡轎憨褪巢增劈61當需要對某一信號作一段延時時,初學者往往在此信號后串接一些非門或其它門電路,此方法在分離電路中是可行的。但在FPGA中,開發(fā)軟件在綜合設(shè)計時會將這些門當作冗余邏輯去掉,達不到延時的效果。用ALTERA公司的MaxplusII開發(fā)FPGA時,可以通過插入一些LCELL原語來產(chǎn)生一定的延時,但這樣形成的延時在FPGA芯片中并不穩(wěn)定,會隨溫度等外部環(huán)境的改變而改變,因此并不提倡這樣做。碉恃琳巒包吵卞漆纂竿磚銘評恭罵琢富鷹襪石認料鞏纂胺駒信悉姐蜘寂氨fpga設(shè)計經(jīng)驗fpga設(shè)計經(jīng)驗當需要對某一信號作一段延時時,初學者往往在此信號后串接一些非62推薦:可以用高頻時鐘來驅(qū)動一移位寄存器,待延時信號作數(shù)據(jù)輸入,按所需延時正確設(shè)置移位寄存器的級數(shù),移位寄存器的輸出即為延時后的信號。此

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論