在ISE軟件中為源同步接口增加了datasheet報(bào)告的新功能,目的是幫助設(shè)計(jì)者在FPGA實(shí)現(xiàn)之后明白時(shí)鐘和數(shù)據(jù)的關(guān)系,并且把時(shí)鐘調(diào)整到數(shù)據(jù)中間。圖1所示范例描述了一個(gè)實(shí)際的應(yīng)用,數(shù)據(jù)和時(shí)鐘路徑中都有延時(shí)和相位調(diào)整電路。表格中"Source Offset To Cente"(灰色顯示)部分表示數(shù)據(jù)源相對(duì)中間位置的偏移量,即如果數(shù)據(jù)延時(shí)可以調(diào)整,那么需要調(diào)整多大延時(shí)才可以讓時(shí)鐘位于數(shù)據(jù)中間,時(shí)序圖中標(biāo)出了這個(gè)偏移量的含義。在這個(gè)例子中都是負(fù)值,它表示需要減小數(shù)據(jù)延時(shí)才可以讓時(shí)鐘處在數(shù)據(jù)中間。
圖1 ISE工具輸出的源同步報(bào)告示意
圖中所示表格的另一個(gè)特點(diǎn)是其會(huì)考慮整個(gè)數(shù)據(jù)總線的每一位來決定需要調(diào)整多大的延時(shí)才能讓時(shí)鐘處在最理想的數(shù)據(jù)窗口中間。圖2 所示的時(shí)序?yàn)橐粋€(gè)4位總線的例子,在內(nèi)部寄存器的輸入端口上每一位(bit)的數(shù)據(jù)與時(shí)鐘的關(guān)系都不同。我們來分析報(bào)告中指出的理想偏移值1.901ns(理想的時(shí)鐘采樣位置與實(shí)際的時(shí)鐘位置的偏差)是如何計(jì)算得來的。為了尋找到整個(gè)`總線的最佳采樣位置,必須用最差情況的Setup Slack和Hold Slack來計(jì)算。從圖中看出4位中最小的建立時(shí)間(Setup Slack)為0.276ns,最小的保持時(shí)間(Hold Slack)為4.078ns。結(jié)合上述的分析,整個(gè)總線的數(shù)據(jù)有效窗口就應(yīng)該是0.276ns+4.078ns=4.354ns。那么數(shù)據(jù)有效窗口的中間位置就是最佳的時(shí)鐘采樣位置,這個(gè)位置就是4.354ns/2=2.177ns。既然當(dāng)前的建立時(shí)間是0.276ns,那么距離最佳的時(shí)鐘采樣位置就還差了2.177ns-0.276ns=1.901ns,如圖4-33中的“Ideal Clock Offest To Actual Clock”所提示的信息。這是一個(gè)非常重要而有用的信息,它告訴了用戶還需要把時(shí)鐘延時(shí)增加1.901ns才能讓輸入寄存器的時(shí)鐘處在最佳的采樣位置。需要解釋的是,表格中的最后一列“Source Offset To Center”顯示都是負(fù)值,這實(shí)際上是從數(shù)據(jù)的角度來看問題。這些負(fù)值實(shí)際上告訴用戶,也可以不改變時(shí)鐘延時(shí),而把數(shù)據(jù)延時(shí)減小,這樣也能讓輸入寄存器的時(shí)鐘處在最佳的采樣位置。在這種情況下,需要根據(jù)表中給出的每位信息分別減小各路數(shù)據(jù)的延時(shí);反之,如果是正值,則表示需要增大數(shù)據(jù)延時(shí)或減小時(shí)鐘延時(shí)。
圖2 4位數(shù)據(jù)流的DDR時(shí)序分析報(bào)告
我們?cè)跁r(shí)序報(bào)告中可以看到更具體的路徑分析,如圖3所示上升沿?cái)?shù)據(jù)組和下降沿?cái)?shù)據(jù)組會(huì)分別被分析,這是因?yàn)榉謩e為其做了不同的約束。
ISE的語言模板中同樣也有源同步接口約束的UCF例子,并有詳細(xì)的解釋如圖4所示。
圖3 上升沿?cái)?shù)據(jù)組和下降沿?cái)?shù)據(jù)組會(huì)分別被分析
圖4 ISE模板中的UCF例子
來源:ks990次