|
本文節選自特權同學的圖書《FPGA設計實戰演練(邏輯篇)》 配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt FPGA的時鐘輸入都有專用引腳,通過這些專用引腳輸入的時鐘信號,在FPGA內部可以很容易的連接到全局時鐘網絡上。所謂的全局時鐘網絡,是FPGA內部專門用于走一些有高扇出、低時延要求的信號,這樣的資源相對有限,但是非常實用。FPGA的時鐘和復位通常是需要走全局時鐘網絡的。如圖3.17所示,這是Cyclone III器件的內部全局時鐘網絡的布局示意圖。如果說一個城市當中的各種羊腸小道、普通馬路是FPGA器件內部的一般布線資源,那么我們就可以認為FPGA內部的全局時鐘網絡就是高架路(高速公路)。圖中我們也不難發現,除了FPGA外部的一些專用時鐘引腳,PLL的輸出以及FPGA內部的一些信號也都可以連接到FPGA的全局布線網絡上。(特權同學,版權所有)
圖3.17 FPGA全局時鐘網絡 時鐘和復位電路如圖3.18所示。外部使用了25MHz的有源晶振,連接FPGA的專用時鐘輸入引腳,FPGA內部的PLL可以將外部時鐘頻率進行倍頻或分頻,甚至進行相位的調整。復位使用簡單的RC電路,也是連接到FPGA的專用輸入時鐘引腳,走內部全局時鐘網絡。(特權同學,版權所有)
圖3.18 時鐘和復位電路 前面我們提到過,FPGA上電復位時間需要大于FPGA器件啟動后的配置加載時間,這樣才能夠確保FPGA運行后的復位初始化過程有效。因此,我們也可以來看看這個電路的設計是否滿足實際要求。(特權同學,版權所有) 如圖3.19所示,這是器件手冊中關于上電配置時間的計算公式。(特權同學,版權所有)
圖3.19 器件手冊中AS配置時間計算公式的截圖 如圖3.20所示,我們所使用的EP3C器件的配置數據量為3,000,000bits。(特權同學,版權所有)
圖3.20 器件手冊中配置數據存儲量的截圖 如圖3.21所示,配置時鐘的頻率為20~40MHz,對應周期為25~50ns。(特權同學,版權所有)
圖3.21 器件手冊中配置時鐘頻率的截圖 有了這兩個參數,我們便可以計算配置所需的時間,取最壞的情況,即配置時鐘頻率在最低情況下,配置所需時間為:3000000bits*(50ns/1bit) = 150ms。(特權同學,版權所有) 如圖3.22所示,這里標示了復位輸入引腳作為3.3-V LVTTL標準電平的最低VOH電壓值是1.7V,那么可以由此計算阻容復位電路從0V上升到1.7V所需的時間。(特權同學,版權所有)
圖3.22 器件手冊中I/O電平標準的截圖 設V0 為電容上的初始電壓值;V1為電容最終可充到或放到的電壓值;Vt 為t時刻電容上的電壓值。則有公式t = RC*Ln[(V1-V0)/(V1-Vt)]。(特權同學,版權所有) 求充電到1.7V的時間。將已知條件V0=0,V1=3.3V,Vt=1.7V代入上式得: 1.7=0+3.3*[[1-exp(-t/RC)],算得t = 0.7239RC。(特權同學,版權所有) 代入R=47k ,C=10uf得t = 0.34s,即340ms。(特權同學,版權所有) 由此我們驗證了阻容復位的時間遠大于FPGA器件的上電復位時間。當然了,這里沒有考慮FPGA器件從上電到開始配置運行所需的電壓上升時間,一般這個時間不會太長。所以我們的阻容復位肯定是有效的。如果需要實際的確認,還是要通過示波器設備來輔助觀察實際信號的延時情況。(特權同學,版權所有) |