在ASIC中用到鎖存器的地方很多,Time Borrowing是使用鎖存器的典型應(yīng)用之一,在深度流水線的設(shè)計(jì)中可以極大地提高處理性能。另外鎖存器和寄存器相比能夠顯著的減小面積:寄存器占用的硅片面積是鎖存器的兩倍,在ASIC設(shè)計(jì)中一個(gè)典型的主從寄存器是由兩個(gè)鎖存器級(jí)聯(lián)來(lái)實(shí)現(xiàn)的。
圖1說(shuō)明了如何使用鎖存器的Time Borrowing技術(shù)來(lái)替代關(guān)鍵路徑中的寄存器。通過(guò)重新分配相鄰鎖存器之間的組合邏輯延遲,從而延長(zhǎng)最長(zhǎng)路徑的時(shí)鐘周期。
對(duì)于Xilinx的 FPGA芯片來(lái)說(shuō),不管是鎖存器還是寄存器,都是用相同的硬件資源實(shí)現(xiàn)的。這些硬件資源共享相同的數(shù)據(jù)輸入/輸出、復(fù)位和使能信號(hào),可以配置成邊沿觸發(fā)的寄存器或者電平使能的鎖存器。因此在 FPGA芯片中,無(wú)論是鎖存器還是寄存器都使用相同的硬件資源,使用鎖存器并不會(huì)帶來(lái)任何的優(yōu)勢(shì)。
寄存器和鎖存器關(guān)于數(shù)據(jù)的存儲(chǔ)方面存在著根本的差異。鎖存器屬于電平敏感電路,當(dāng)門使能信號(hào)有效時(shí),輸入數(shù)據(jù)將直接輸出;而門使能信號(hào)無(wú)效時(shí),數(shù)據(jù)保持到鎖存器中。寄存器屬于邊沿敏感電路,數(shù)據(jù)只有在時(shí)鐘的上升沿或者下降沿才會(huì)被保存到寄存器中。
雖然鎖存器和寄存器使用相同的FPGA硬件資源,但還是要盡量避免使用前者。首先,當(dāng)鎖存器處于導(dǎo)通狀態(tài)時(shí),輸入信號(hào)的毛刺會(huì)直接傳遞到后面的邏輯中;另外,對(duì)于靜態(tài)時(shí)序分析工具來(lái)說(shuō)、分析寄存器遠(yuǎn)遠(yuǎn)比鎖存器簡(jiǎn)單得多。因?yàn)閷?duì)于寄存器而言,只考慮到時(shí)鐘的上升或者下降沿:對(duì)于鎖存器而言,不僅需要考慮其上升沿和下降沿,而且還要考慮上、下沿之間的持續(xù)時(shí)間。對(duì)于具有周期性抖動(dòng)的信號(hào)而言,鎖存器常常會(huì)造成問(wèn)題。而對(duì)于邊沿敏感的寄存器,由于只需要關(guān)心時(shí)鐘邊沿的達(dá)到時(shí)間,因此即便是門使能的信號(hào)具有周期抖動(dòng),也不會(huì)造成任何的問(wèn)題。ASIC設(shè)計(jì)中鎖存器的Time Borrowing電路,對(duì)于FPGA結(jié)構(gòu)來(lái)講更是難以回避的挑戰(zhàn)。由于某級(jí)流水線的延遲和前面所有流水線的延遲相關(guān),這種流水線的高度相關(guān)性將使得靜態(tài)時(shí)序分析更加難以處理,并且其困難程度和流水線的級(jí)數(shù)也不存在任何的線性關(guān)系。
正是因?yàn)樯鲜鲈?基于鎖存器的設(shè)計(jì)需要更加仔細(xì)和周密的時(shí)序約束。對(duì)于基于鎖存器流水線的邏輯綜合和物理實(shí)現(xiàn),更是要從整個(gè)芯片的角度去做分析,才能夠正確地約束不同的時(shí)序關(guān)系。
因此在將ASIC 設(shè)計(jì)移植到FPGA時(shí),最好就是將電平使能的鎖存器轉(zhuǎn)換為邊沿觸發(fā)的寄存器。這需要工程師投人許多的時(shí)間去分析和修改,因?yàn)椴皇撬忻枋鲦i存器的代碼風(fēng)格都能夠通過(guò)同樣的方式進(jìn)行轉(zhuǎn)換。
大多數(shù)商用綜合工具都支持鎖存器的設(shè)計(jì),代碼中的if語(yǔ)句如果缺少相應(yīng)的case語(yǔ)句,將自動(dòng)生成鎖存器。
當(dāng)Xilinx的綜合工具XST 遇到鎖存器之后,會(huì)產(chǎn)生以下類似的報(bào)告。
通過(guò)修改成綜合工具所支持的代碼風(fēng)格,可以將鎖存器轉(zhuǎn)換成寄存器。下面通過(guò)一個(gè)簡(jiǎn)單的例子展示了其中的一種代碼風(fēng)格,可以將門使能信號(hào)轉(zhuǎn)換成時(shí)鐘信號(hào)。
當(dāng)然也有其他一些代碼風(fēng)格,比如時(shí)鐘可以使用上升沿或者下降沿(Xilinx的FPGA不支持雙時(shí)鐘沿)、同步或者異步的復(fù)位置位等。
原文標(biāo)題:FPGA知識(shí)匯集-鎖存器的移植
文章出處:【微信公眾號(hào):FPGA技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1620文章
21510瀏覽量
598906 -
寄存器
+關(guān)注
關(guān)注
31文章
5253瀏覽量
119201 -
鎖存器
+關(guān)注
關(guān)注
8文章
903瀏覽量
41314
原文標(biāo)題:FPGA知識(shí)匯集-鎖存器的移植
文章出處:【微信號(hào):gh_873435264fd4,微信公眾號(hào):FPGA技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論