FPGA全局復位及局部復位設計
隨著(zhù)FPGA設計越來(lái)越復雜,芯片內部的時(shí)鐘域也越來(lái)越多,使全局復位已不能夠適應FPGA設計的需求,更多的設計趨向于使用局部的復位。本節將會(huì )從FPGA內部復位“樹(shù)”的結構來(lái)分析復位的結構。
本文引用地址:http://dyxdggzs.com/article/189899.htm我們的復位線(xiàn)將會(huì )是一個(gè)和時(shí)鐘一樣多扇出的網(wǎng)絡(luò ),如此多的扇出,時(shí)鐘信號是采用全局時(shí)鐘網(wǎng)絡(luò )的,那么復位如何處理?有人提出用全局時(shí)鐘網(wǎng)絡(luò )來(lái)傳遞復位信號,但是在FPGA設計中,這種方法還是有其弊端。一是無(wú)法解決復位結束可能造成的時(shí)序問(wèn)題,因為全局網(wǎng)絡(luò )的延時(shí)較大,并且不可以直接連到寄存器的復位端。仍然需要局部走線(xiàn),這對于時(shí)序要求緊張的場(chǎng)合,較難滿(mǎn)足時(shí)序;二是會(huì )占用全局時(shí)鐘資源,多個(gè)復位信號會(huì )占用更多的全局時(shí)鐘資源。
在這里提出一個(gè)區域化復位的方案,如圖1所示。外部的異步復位信號被二級寄存器同步化之后,復制不同的復位寄存器連到不同的模塊來(lái)作為復位控制。如果單個(gè)模塊的復位扇出太大的話(huà),還可以在模塊內部復制復位寄存器。強烈建議那些在datapath上不需要復位的寄存器不要在代碼中復位,因為這樣會(huì )增加復位信號的扇出,并增加邏輯資源和降低邏輯速度。
對于那些有多個(gè)時(shí)鐘區域,需要多個(gè)時(shí)鐘區域內獨立復位的設計由多個(gè)同步化的寄存器的模塊來(lái)完成同步,然后送到各模塊進(jìn)行復位。
當然,對于選擇同步化的異步復位的方案,也可以如圖2所示來(lái)安排復位。將復位信號轉換成同步后送到不同的模塊,在各模塊中進(jìn)行同步化處理,各模塊完成自己的本地復位。

圖1模塊化復位

圖2 同步化異步復位之模塊化復位
綜合本節說(shuō)明的復位路徑設計,推薦采用局部復位,即各模塊或多個(gè)模塊采用自己的獨立復位信號。
評論