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

圖1模塊化復位

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