国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于EZ-USB FX3 的FPGA 在線配置設(shè)計方法

2015-04-13 04:07梅茹盧歡汕頭市超聲儀器研究所有限公司汕頭515041
中國醫(yī)療器械信息 2015年11期
關(guān)鍵詞:低電平高電平時序

梅茹 盧歡 汕頭市超聲儀器研究所有限公司 (汕頭 515041)

當(dāng)今,電子技術(shù)發(fā)展迅速,F(xiàn)PGA 以其集成度高、編程方便、速度快等特點被越來越廣泛地應(yīng)用在各個領(lǐng)域??芍貜?fù)編程型FPGA 采用SRAM 開關(guān)元件,其中每個邏輯塊的功能以及邏輯塊之間的互聯(lián)模式都是由存儲在SRAM 中的數(shù)據(jù)決定的。而這種FPGA 中的數(shù)據(jù)在掉電后具有易失性,故每次重新加電時,F(xiàn)PGA 都要重新加載配置數(shù)據(jù),同時只有配置數(shù)據(jù)正確時FPGA 才能正常工作。本文針對其FPGA 的這種特點,提出了一種比較靈活實用的在線配置方式。

1.系統(tǒng)設(shè)計原理

本系統(tǒng)中計算機(jī)作為主控設(shè)備,配置數(shù)據(jù)以文件形式存儲在計算機(jī)中。EZ-USB FX3 作為USB3.0 的接口控制器,利用其通用可編程接口GPIF II 與邏輯器件連接后,產(chǎn)生FPGA 所需的配置信號,這些配置信號再與FPGA 中的專用配置引腳連接形成配置鏈路。軟件通過一定的控制方式,將存儲在計算機(jī)中的配置數(shù)據(jù)文件組合成FPGA 能識別到的配置數(shù)據(jù)以及控制信號,通過配置鏈路傳送給FPGA 完成整個FPGA 的配置。其系統(tǒng)框圖如圖1 所示。

圖1. 系統(tǒng)實現(xiàn)框圖

1.1 EZ-USB FX3 工作模式

EZ-USB FX3 是CYPRESS 公 司 的 高 帶 寬USB3.0 外設(shè)控制器。它具有一個可實現(xiàn)5-Gbps USB3.0 數(shù)據(jù)傳送能力的通用可編程接口GPIF II,數(shù)據(jù)傳輸速率可高達(dá)每秒400 兆字節(jié),這個通用可編程接口GPIF II 可以使EZ-USB FX3 能與任何處理器或FPGA 直接通訊。

本設(shè)計中,EZ-USB FX3 的通用可編程接口GPIF II 在上電時被設(shè)置成Slave FIFO 接口模式。這種模式使得EZ-USB FX3 成為從設(shè)備,而外部FPGA 作為主設(shè)備。由于在上電時FPGA 處于還沒有配置的狀態(tài),即使作為主設(shè)備也無法控制EZ-USB FX3 的GPIF II 接口,因此需要設(shè)計額外的硬件電路,一方面來滿足在FPGA 配置完成前對GPIF II 接口的控制,另一方面要產(chǎn)生FPGA配置所需信號線。

在FPGA 配置過程中,EZ-USB FX3 的GPIF II 接口需要從計算機(jī)傳輸數(shù)據(jù)到FPGA 的配置端口,此時,GPIF II 接口信號需要滿足同步Slave FIFO 讀的時序要求,如圖2 所示。

1.2 FPGA 在線配置模式原理

Xilinx 公司的FPGA 有多種配置模式,各種配置模式由配置模式引腳M0、M1、M2 的連接方式來決定。而Spartan-6 系列FPGA 只有M0 和M1 兩個配置模式引腳,只需要設(shè)置這兩個引腳的狀態(tài)即可決定其配置模式。

表1 中列出了Spartan-6 系列FPGA 的各種配置模式,同時還列出了各模式對應(yīng)的配置模式引腳狀態(tài)和配置數(shù)據(jù)位寬以及配置時鐘傳輸方向。

圖2. GPIF II 接口同步Slave FIFO 讀時序[1]

本設(shè)計中,為了實現(xiàn)計算機(jī)端到FPGA 端的在線配置,F(xiàn)PGA 的配置模式擬采用從串(Slave Serial)的配置模式,此時需要將FPGA 的M0和M1 兩個信號引腳連接成高電平狀態(tài),同時為了保證在配置過程中FPGA 的其他引腳狀態(tài)穩(wěn)定,可以將HSWAPEN 信號引腳拉低到地,此時FPGA 的所有通用引腳會通過上拉電阻連接到各個板塊的電源信號。

當(dāng)FPGA 采用從串配置模式時,除了M0和M1 兩條配置模式信號外,還有6 條配置信號線,分別為PROG、CCLK、DIN、DOUT、INIT和DONE。其中,PROG 為FPGA 的一條異步控制輸入信號,當(dāng)它為低電平時,復(fù)位FPGA 同時初始化配置存儲器,當(dāng)這條信號由低電平變?yōu)楦唠娖綍r,F(xiàn)PGA 開始配置;INIT 作用很多,在配置初期低電平,表示正在清除配置存儲區(qū)的內(nèi)容,當(dāng)配置進(jìn)行中時,若該信號變低則表示CRC 校驗錯誤;CCLK 為配置時鐘信號,根據(jù)配置模式的不同,其時鐘源也不同;DIN 為配置數(shù)據(jù)輸入信號;DOUT 為配置數(shù)據(jù)輸出信號,當(dāng)串聯(lián)多個FPGA時,該引腳輸出的配置數(shù)據(jù)作為下一個FPGA 的輸入數(shù)據(jù),若系統(tǒng)中只有一個FPGA 則該信號可忽略;DONE 信號在配置過程中為低電平,當(dāng)配置完成后則會變?yōu)楦唠娖健?/p>

表1. Spartan-6 系列FPGA 配置模式[2]

圖3. 配置信號時序圖

為了保證FPGA 能夠正常配置起來,這幾條配置信號需要滿足一定的時序關(guān)系。

圖3 中,t1 為配置清空期;t2 為配置初始化;t3 為配置時鐘周期。

2.硬件設(shè)計

本設(shè)計中,為了產(chǎn)生FPGA 需要用到的配置信號,同時為了滿足GPIF II 接口在SLAVE FIFO 讀模式下的時序要求,硬件電路擬采用SN74LVC74A、SN74LVC374A、SN74LVC245A三個邏輯器件與EZ-USB FX3 搭建實現(xiàn)。配置信號產(chǎn)生的硬件電路連接如圖4 所示。

圖4. 配置信號產(chǎn)生硬件電路

在對FPGA 進(jìn)行配置時,GPIF II 使用線程1 進(jìn)行配置數(shù)據(jù)的傳輸,此時FLAGB 表示當(dāng)前是否有數(shù)據(jù)從PC 端傳到FPGA 端,若有配置數(shù)據(jù)傳輸時,F(xiàn)LAGB 為高電平,若配置數(shù)據(jù)傳送完成則FLAGB 為低電平。SN74LVC74A 是一片有兩路上升沿觸發(fā)的鎖存器,其輸出端有兩種狀態(tài),分別為鎖存輸入的狀態(tài)或?qū)斎霠顟B(tài)取反。SN74LVC374A 是一片8 路上升沿觸發(fā)的鎖存器。為了實現(xiàn)GPIF II 接口的讀數(shù)據(jù)傳輸,需要將GPIF II 接口的SLRD 和SLOE 信號置為低電平才能從GPIF II 接口讀出數(shù)據(jù),同時SLOE信號需要延時SLRD 信號兩個時鐘的時間才能讀出正確的數(shù)據(jù)。本設(shè)計中,當(dāng)FLAGB 信號有效時,鎖存器SN74LVC74A 將FLAGB 狀態(tài)鎖存并取反,同時利用SN74LVC374A 得到能滿足時序要求的SLRD 和SLOE 信號。

為了簡化電路的設(shè)計,對于軟件的控制設(shè)置了輸出信號的通道,而沒有輸入信號的通道,即軟件通過GPIF II 接口的數(shù)據(jù)引腳D0、D1、D2發(fā)出數(shù)據(jù)控制PROG、CCLK、DIN 三個信號,而軟件不能讀取INIT 和DONE 信號狀態(tài)。這就需要對配置過程中的兩個狀態(tài)進(jìn)行檢測,一是PROG 由低電平變?yōu)楦唠娖揭院驠PGA 初始化完成狀態(tài),通過測試得到初始化時間t2 大約1ms 左右,可以控制軟件在PROG 信號變?yōu)楦唠娖胶笞孕醒訒r1ms 的時間,然后再輸出CCLK 和DIN信號來開始配置FPGA;二是檢測數(shù)據(jù)接收完成后配置狀態(tài)是否成功,此時可以在軟件發(fā)送完FPGA 的配置數(shù)據(jù)后,對FPGA 中事先規(guī)定好的一些寄存器或狀態(tài)位進(jìn)行操作,一旦這些寄存器或者狀態(tài)位能夠被正確的操作或者讀取,則表明FPGA 配置是成功的。

本設(shè)計中軟件除了需要下載三路配置信號外,還需要控制SN74LVC245A 的使能端,即圖4 中的OE 信號。配置過程中,需要通過GPIF II 接口的數(shù)據(jù)引腳D3 下載數(shù)據(jù)控制SN74LVC245A 的使能端有效,以保證能夠順利的進(jìn)行配置數(shù)據(jù)傳輸。當(dāng)配置數(shù)據(jù)發(fā)送完成后,需要額外的發(fā)送一組數(shù)據(jù)來控制SN74LVC245A 的使能端無效。當(dāng)SN74LVC245A 的使能端無效時,配置鏈路就會斷開,GPIF II 接口的SLAVE FIFO 讀控制信號SLRD、SLOE、SLCS 會切換到由FPGA 端來控制。

3.軟件設(shè)計

本設(shè)計中,配置控制信號PROG、配置時鐘CCLK 以及配置所用的數(shù)據(jù)DIN,相對軟件來講其實都是數(shù)據(jù)。軟件只需要將數(shù)據(jù)組織好,通過USB3.0 向GPIF II 接口的線程1 寫入數(shù)據(jù)即可。

根據(jù)電路的設(shè)計要求,配置清空期需要首先設(shè)置OE 為0,設(shè)置PROG 信號為0,一段時間后設(shè)置PROG 信號為高,此時CCLK 和DIN 信號無關(guān)緊要可以一直設(shè)置為1。配置清空期t1 的時間大約為300ns ~500us,本系統(tǒng)中 GPIF II接口時鐘為50MHz,每發(fā)送一個數(shù)據(jù)最少需要20nS 的時間,可以通過發(fā)送至少15 個數(shù)據(jù)達(dá)到延時的目的。配置初始化時期需要軟件自行延時1~100mS 來完成配置初始化。表2 簡單示例了數(shù)據(jù)的發(fā)送情況。

表2. 初始化時配置數(shù)據(jù)組合形式

當(dāng)發(fā)送配置數(shù)據(jù)時,軟件需要根據(jù)讀取的配置文件,將文件中的配置數(shù)據(jù)和配置所需的時鐘整合在一起產(chǎn)生所需的配置時序。配置時鐘信號CCLK,需要軟件循環(huán)設(shè)置一個數(shù)據(jù)為0 一個數(shù)據(jù)為1 來得到;配置數(shù)據(jù)DIN,需要在一個配置時鐘循環(huán)中保持配置數(shù)據(jù)的一個位不變,在下一個配置時鐘循環(huán)中輸出下一位。

圖5 對如何將配置數(shù)據(jù)0xA5(1010_0101)整合到所需信號的時序做了描述。

由于FPGA 的配置時鐘一般在1MHz~15MH之間,而EZ-USB FX3 中的GPIF II 總線時鐘為50M,按照圖5 中數(shù)據(jù)形式,一個時鐘循環(huán)只有一個1 和一個0 占了兩個數(shù)據(jù),產(chǎn)生出來的時鐘達(dá)到25MHz,故圖5 中數(shù)據(jù)產(chǎn)生的時序是不能滿足FPGA 配置的時序要求的。為了達(dá)到降低配置時鐘的要求,需要設(shè)置時鐘循環(huán)長度是可以變化的,例如設(shè)定一個時鐘循環(huán)為4 個0 和4 個1,則配置時鐘為6.25MHz,才可以滿足FPGA 對配置時鐘頻率的要求。

軟件進(jìn)行多次的循環(huán)讀取數(shù)據(jù)進(jìn)行轉(zhuǎn)換,直到將整個配置文件的所有數(shù)據(jù)都轉(zhuǎn)換和輸出到EZ-USB FX3 以后,再設(shè)置OE 為高電平,之后則完成了所有的數(shù)據(jù)輸出和時序。最后的數(shù)據(jù)形式如表3 所示。

當(dāng)所有配置數(shù)據(jù)傳輸完成后,根據(jù)硬件電路連接可知,此時GPIF II 接口的讀寫控制信號轉(zhuǎn)為由FPGA 進(jìn)行控制,此時可以對FPGA 中既定的寄存器或者狀態(tài)位進(jìn)行操作,從而可以判斷配置是否成功。

圖5. 發(fā)送配置數(shù)據(jù)0xA5 時數(shù)據(jù)組合時序

表3. 配置數(shù)據(jù)傳送完成后數(shù)據(jù)組合形式

4.結(jié)論

在電路調(diào)試過程中,可能出現(xiàn)配置完成后讀FPGA 中既定的寄存器內(nèi)容不正確的情況,此時需要軟件重新下載配置數(shù)據(jù)進(jìn)行配置。若嘗試多次后依然不能正確的讀取FPGA 既定寄存器中的內(nèi)容,則軟件需要提示配置出錯,此時需要檢查電路連接或配置數(shù)據(jù)是否正常。經(jīng)過調(diào)試,最終能正確的將配置數(shù)據(jù)傳送給FPGA,配置完成后FPGA 能正常開始工作。

綜上,采用這種在線配置的方式,能夠靈活的對FPGA 邏輯設(shè)計進(jìn)行升級,對于硬件升級比較頻繁的系統(tǒng)具有一定的實用價值。

[1] Rama Sai Kvishna V. 利用EZ-USB FX3TM 從設(shè)備FIFO 接口進(jìn)行設(shè)計[DB/OL]. www.cypress.com. 文檔編號:001-92219 版本**.

[2] Spartan 6 FPGA Configuration User Guide[DB/OL]. UG380(V1.0) June 24,2009. www.xilinx.com

猜你喜歡
低電平高電平時序
顧及多種弛豫模型的GNSS坐標(biāo)時序分析軟件GTSA
清明
一種基于FPGA的PWM防錯輸出控制電路
基于不同建設(shè)時序的地鐵互聯(lián)互通方案分析
一種實用的電腦接口判斷方法
TS-03C全固態(tài)PDM中波發(fā)射機(jī)開關(guān)機(jī)控制電路原理及故障分析
2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
基于FPGA 的時序信號光纖傳輸系統(tǒng)
數(shù)字電子技術(shù)的應(yīng)用
淺談物理電路與數(shù)字電路
文登市| 同江市| 沐川县| 广宁县| 兰西县| 裕民县| 黑龙江省| 文安县| 桐庐县| 正阳县| 旺苍县| 沽源县| 常熟市| 泗阳县| 克东县| 天峨县| 云阳县| 陇南市| 五指山市| 红原县| 东山县| 清徐县| 泾阳县| 平舆县| 新闻| 武胜县| 赣州市| 新竹市| 汨罗市| 平谷区| 上饶县| 个旧市| 无锡市| 富宁县| 广平县| 内乡县| 淮阳县| 淅川县| 武城县| 陈巴尔虎旗| 石台县|