官术网_书友最值得收藏!

2.3 復(fù)位與時鐘電路

2.3.1 關(guān)于FPGA器件的時鐘

如圖2.7所示,理想的時鐘模型是一個占空比為50%且周期固定的方波。Tclk為一個時鐘周期,T1為高脈沖寬度,T2為低脈沖寬度,Tclk=T1+T2。一般情況下,F(xiàn)PGA器件內(nèi)部的邏輯會在每個時鐘周期的上升沿執(zhí)行一次數(shù)據(jù)的輸入和輸出處理,在兩個時鐘上升沿的空閑時間里,則可以用于執(zhí)行各種各樣復(fù)雜的處理。而一個比較耗時的復(fù)雜運(yùn)算過程,往往無法在一個時鐘周期內(nèi)完成,可以切割成幾個耗時較少的運(yùn)算,然后在數(shù)個時鐘上升沿后輸出最終的運(yùn)算結(jié)果。時鐘信號的引入,不僅讓所有的數(shù)字運(yùn)算過程變成“可量化”的,而且也能夠?qū)⒏鞣N不相關(guān)的操作過程同步到一個節(jié)拍上協(xié)同工作。

圖2.7 理想時鐘波形

FPGA器件的時鐘信號源一般來自外部,通常使用晶體振蕩器(簡稱晶振)產(chǎn)生時鐘信號。當(dāng)然,一些規(guī)模較大的FPGA器件內(nèi)部都會有可以對時鐘信號進(jìn)行倍頻或分頻的專用時鐘管理模塊,如PLL或DLL。由于FPGA器件內(nèi)部使用的時鐘信號往往不只供給單個寄存器使用,在實(shí)際應(yīng)用中,成百上千甚至更多的寄存器很可能共用一個時鐘源,那么從時鐘源到不同寄存器間的延時也可能存在較大偏差(通常稱為時鐘網(wǎng)絡(luò)延時),大家知道,這個時間差過大是很嚴(yán)重的問題。因此,F(xiàn)PGA器件內(nèi)部設(shè)計了一些稱之為“全局時鐘網(wǎng)絡(luò)”的走線池。通過這種專用時鐘網(wǎng)絡(luò)走線,同一時鐘到達(dá)不同寄存器的時間差可以被控制在很小的范圍內(nèi)。那么又如何能保證輸入的時鐘信號能夠走“全局時鐘網(wǎng)絡(luò)”呢?有多種方式:對于外部輸入的時鐘信號,只要將晶振產(chǎn)生的時鐘信號連接到“全局時鐘專用引腳”上;而對于FPGA內(nèi)部的高扇出控制信號,通常工具軟件會自動識別此類信號,將其默認(rèn)連接到“全局時鐘網(wǎng)絡(luò)”上,設(shè)計者若是不放心,還可通過編譯報告進(jìn)行查看,甚至可以手動添加這類信號。關(guān)于時鐘電路的設(shè)計和選型,有如下基本事項(xiàng)需要考慮:

●系統(tǒng)運(yùn)行的時鐘頻率是多少?(可能有多個時鐘)

●是否有內(nèi)部的時鐘管理單元可用?(通常是有)它的輸入頻率范圍為多少?(需要查看器件手冊進(jìn)行確認(rèn))

●盡可能選擇專用的時鐘輸入引腳。

關(guān)于FPGA時鐘電路的PCB Layout設(shè)計,通常需要遵循以下的原則:

●時鐘晶振源應(yīng)該盡可能放在與其連接的FPGA時鐘專用引腳的臨近位置。

●時鐘線盡可能走直線。如果無法避免轉(zhuǎn)彎走線,則使用45°線,盡量避免T型走線和直角走線。

●不要同時在多個信號層走時鐘線。

●時鐘走線不要使用過孔,因?yàn)檫^孔會導(dǎo)致阻抗變化及反射。

●靠近外層的地層能夠最小化噪聲。如果使用內(nèi)層走時鐘線,則要有良好的參考平面,且走帶狀線。

●時鐘信號應(yīng)該有終端匹配電路,以最小化反射。

●盡可能使用點(diǎn)到點(diǎn)的時鐘走線。

●如圖2.8所示,對于時鐘差分對的走線,必須嚴(yán)格按照D>2S的規(guī)則,以最小化相鄰差分對間的串?dāng)_。

圖2.8 時鐘差分對的間隔

●確保整個差分對在整個走線過程中的線間距恒定。

●確保差分對的走線等長,以最小化偏斜和相移。

●同一網(wǎng)絡(luò)走線過程中避免使用多個過孔,以確保阻抗匹配和更低的感抗。

●高頻的時鐘和USB差分信號對走線盡可能短。

●高頻時鐘或周期性信號盡可能遠(yuǎn)離高速差分對以及任何引出的連接器(例如I/O連接器、控制和數(shù)據(jù)連接器或電源連接器)。

●應(yīng)當(dāng)保證所有走線有持續(xù)的地和電源參考平面。

●為了最小化串?dāng)_,盡量縮短高頻時鐘或周期性信號與高速信號并行走線的長度。推薦的最小間距是3倍的時鐘信號與最近參考面間距。

●信號換層時使用回路過孔。

●同步時鐘的延時應(yīng)該與數(shù)據(jù)相匹配。確保時鐘與同步數(shù)據(jù)總線在同一層走線,以最小化不同層之間的傳輸速率差異。

2.3.2 關(guān)于FPGA器件的復(fù)位

FPGA器件在上電后都需要有一個確定的初始狀態(tài),以保證器件內(nèi)部邏輯快速進(jìn)入正常的工作狀態(tài)。因此,F(xiàn)PGA器件外部通常會引入一個用于內(nèi)部復(fù)位的輸入信號,這個信號稱之為復(fù)位信號。對于低電平有效的復(fù)位信號,當(dāng)它的電平為低電平時,系統(tǒng)處于復(fù)位狀態(tài);當(dāng)它從低電平變?yōu)楦唠娖綍r,則系統(tǒng)撤銷復(fù)位,進(jìn)入正常工作狀態(tài)。由于在復(fù)位狀態(tài)期間,各個寄存器都賦予輸出信號一個固定的電平狀態(tài),因此在隨后進(jìn)入正常工作狀態(tài)后,系統(tǒng)便擁有了所期望的初始狀態(tài)。

復(fù)位電路的設(shè)計也很有講究,一般的設(shè)計是期望系統(tǒng)的復(fù)位狀態(tài)能夠在上電進(jìn)入穩(wěn)定工作狀態(tài)后多保持一點(diǎn)時間。因此,阻容復(fù)位電路可以勝任一般的應(yīng)用;如果需要得到更穩(wěn)定可靠的復(fù)位信號,則可以選擇一些專用的復(fù)位芯片。復(fù)位信號和FPGA器件的連接也有講究,通常也會有專用的復(fù)位輸入引腳。

至于上電復(fù)位延時的長短,也是很有講究的。因?yàn)镕PGA器件是基于RAM結(jié)構(gòu)的,它通常需要一顆用于配置的外部ROM或Flash進(jìn)行上電加載,在系統(tǒng)上電穩(wěn)定后,F(xiàn)PGA器件首先需要足夠的時間用于配置加載操作,只有在這個過程結(jié)束之后,F(xiàn)PGA器件才能夠進(jìn)入正常的用戶運(yùn)行模式。如果上電復(fù)位延時過短,等同于FPGA器件根本就沒有復(fù)位過程;如果上電復(fù)位延時過長,那么對系統(tǒng)性能甚至用戶體驗(yàn)都會有不同程度的影響,因此,設(shè)計者在實(shí)際電路中必須對此做好考量,保證復(fù)位延時時間的長短恰到好處。關(guān)于FPGA器件的復(fù)位電路,也需要注意以下幾個要點(diǎn):

●盡可能使用FPGA的專用時鐘或復(fù)位引腳。

●對上電復(fù)位時間的長短需要做好考量。

●確保系統(tǒng)正常運(yùn)行過程中復(fù)位信號不會誤動作。

2.3.3 實(shí)驗(yàn)平臺電路解析

FPGA的時鐘輸入都有專用引腳,通過這些專用引腳輸入的時鐘信號,在FPGA內(nèi)部可以很容易地連接到全局時鐘網(wǎng)絡(luò)上。所謂全局時鐘網(wǎng)絡(luò),是FPGA內(nèi)部專門用于走一些有高扇出、低時延要求的信號的走線池,這樣的資源相對有限,但是非常實(shí)用。FPGA的時鐘和復(fù)位通常是需要走全局時鐘網(wǎng)絡(luò)的。

如圖2.9所示,25MHz有源晶振和阻容復(fù)位電路產(chǎn)生的時鐘信號和復(fù)位信號分別連接到FPGA的專用時鐘輸入引腳CLK_0和CLK_1上。

圖2.9 復(fù)位與時鐘電路示意圖

如圖2.10所示,所使用的FPGA器件共有8個專用時鐘輸入引腳,在不作時鐘輸入引腳功能使用時,這些引腳也可以作為普通I/O引腳。如我們的電路中,只使用了CLK_0和CLK_1作為專用時鐘引腳功能,其他6個引腳則作為普通的I/O引腳功能。

圖2.10 時鐘專用輸入引腳

FPGA上電復(fù)位時間需要大于FPGA器件啟動后的配置加載時間,這樣才能夠確保FPGA運(yùn)行后的復(fù)位初始化過程有效??梢詠砜纯催@個電路的設(shè)計是否滿足實(shí)際要求。

查詢器件手冊中關(guān)于上電配置時間的計算,有如下的公式:

配置數(shù)據(jù)量*(最低的DCLK時鐘周期/bit)=最大的配置時間

其中,所使用FPGA器件EP4CE6的配置數(shù)據(jù)量為2944088位,最低的SPI Flash傳輸時鐘DCLK通常為20MHz(經(jīng)實(shí)測,一般情況下,DCLK時鐘頻率為32MHz),那么由此便可計算出最大的配置時間為:2944088bit*(50ns/bit)=148ms。

另外,從器件手冊上,可以查詢到復(fù)位輸入引腳作為3.3V LVTTL標(biāo)準(zhǔn)電平的最低VIH電壓值是1.7V,由此便可計算阻容復(fù)位電路從0V上升到1.7V所需的時間。

設(shè)V0為電容上的初始電壓值,V1為電容最終可充到或放到的電壓值,Vtt時刻電容上的電壓值。則有公式t=RC*Ln[(V1V0)/(V1Vt)]。求充電到1.7V的時間。

將已知條件V0=0V,V1=3.3V,Vt=1.7V代入上式得1.7=0+3.3*[1-exp(-t/RC)],算得t=0.7239RC。

代入R=47kΩ,C=10μF,得t=0.34s,即340ms。

由此驗(yàn)證了阻容復(fù)位的時間遠(yuǎn)大于FPGA器件的上電復(fù)位時間。當(dāng)然,這里沒有考慮FPGA器件從上電到開始配置運(yùn)行所需的電壓上升時間,一般這個時間不會太長,所以阻容復(fù)位肯定是有效的。如果需要實(shí)際的確認(rèn),還是要通過示波器設(shè)備來觀察實(shí)際信號的延時情況。

主站蜘蛛池模板: 沙洋县| 南岸区| 舞钢市| 公主岭市| 桓仁| 嵊州市| 元氏县| 曲阳县| 孙吴县| 福安市| 新巴尔虎右旗| 托里县| 乌兰浩特市| 手机| 萨嘎县| 阿坝县| 浑源县| 安国市| 怀集县| 东乡族自治县| 巧家县| 定日县| 灵台县| 武乡县| 泸水县| 平度市| 石渠县| 伊川县| 怀来县| 筠连县| 泰宁县| 开鲁县| 彝良县| 容城县| 大洼县| 霍邱县| 石阡县| 孝昌县| 台北县| 泸西县| 岚皋县|