日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于FPGA技術(shù)的存儲器設(shè)計及其應(yīng)用

復(fù)雜可編程邏輯器件—FPGA技術(shù)在近幾年的電子設(shè)計中應(yīng)用越來越廣泛。FPGA具有的硬件邏輯可編程性、大容量、高速、內(nèi)嵌存儲陣列等特點使其特別適合于高速數(shù)據(jù)采集、復(fù)雜控制邏輯、精確時序邏輯等場合的應(yīng)用。而應(yīng)用FPGA中的存儲功能目前還是一個較新的技術(shù)。本文將介紹在FPGA中構(gòu)造存儲器的方法,特別是結(jié)合高速數(shù)據(jù)采集的特點重點描述雙端口RAM的構(gòu)造方法及其應(yīng)用。

  在FPGA中構(gòu)造存儲器

  許多系列的FPGA芯片內(nèi)嵌了存儲陣列,如ALTERA EPlK50芯片內(nèi)嵌了5K字節(jié)的存儲陣列。因此,在FPGA中實現(xiàn)各種存儲器,如單/雙端口RAM、單/雙端口ROM、先進(jìn)先出存儲器FIFO等非常方便,而且具有諸多優(yōu)點。其硬件可編程的特點允許開發(fā)人員靈活設(shè)定存儲器數(shù)據(jù)的寬度、存儲器的大小、讀寫控制邏輯等,尤其適用于各種特殊存儲要求的場合。FPGA/FPGA器件可工作于百兆頻率以上,其構(gòu)造的存儲器存取速度也可達(dá)百兆次/秒以上,這樣構(gòu)成的高速存儲器能夠勝任存儲數(shù)據(jù)量不太大,但速度要求很高的工作場合。

  FPGA中構(gòu)造存儲器主要有兩種方法實現(xiàn)。一是通過硬件描述語言如VHDL、AHDL、Verilog HDL等編程實現(xiàn)。二是調(diào)用MAX+PLUSⅡ自帶的庫函數(shù)實現(xiàn)。調(diào)用庫函數(shù)方法構(gòu)造存儲器較硬件描述語言輸入方式更為方便、靈活、快捷和可靠,故也更常用之。

  利用庫函數(shù)構(gòu)造雙端口RAM

  在MAX+PLUSⅡ中有幾個功能單元描述庫。prim邏輯元庫,包括基本邏輯單元電路,如與、或、非門,觸發(fā)器、輸入、輸出引腳等;mf宏功能庫,包括TTL數(shù)字邏輯單元如74系列芯片;而下文將要詳細(xì)介紹的參數(shù)化雙端口RAM模塊所在的參數(shù)化模塊庫(mega-lpm)中,包括各種參數(shù)化運算模塊(加、減、乘、除)、參數(shù)化存儲模塊(單、雙端口RAM、ROM、FIFO等)以及參數(shù)化計數(shù)器、比較器模塊等等。庫中的這些元件功能邏輯描述經(jīng)過了優(yōu)化驗證,是數(shù)字電路設(shè)計中的極好選擇。

  mega-lpm庫中共有五種參數(shù)化雙端口RAM模塊:ALTDPRAM、LPM_RAM_DP、CSDPRAM、LPM_RAM_DQ和LPM_RAM_IO。其中ALTDPRAM和LPM_RAM_DP模塊讀寫有兩套總線,讀和寫有各自的時鐘線、地址總線、數(shù)據(jù)總線和使能端,可同時進(jìn)行讀寫操作。除此之外,ALTDPRAM模塊還有一個全局清零端口。CSDPRAM模塊則有a、b兩組寫端時鐘線、地址總線、數(shù)據(jù)總線和使能端,可同時對RAM進(jìn)行寫操作,但對RAM讀、寫只能分時進(jìn)行。LPM_RAM_DQ模塊相對簡單,讀與寫共用一組地址總線,有各自的數(shù)據(jù)線和時鐘線。LPM_RAM_IO模塊只有一組地址總線和數(shù)據(jù)總線。

  mega-1pm函數(shù)庫中的雙端口RAM模塊全是參數(shù)化調(diào)用,這為設(shè)計帶來極大的方便。通過對各種參數(shù)的取舍、參數(shù)設(shè)置和組合,再結(jié)合讀寫控制邏輯就可以構(gòu)造出設(shè)計需要的存儲器模塊。雙端口RAM常見的應(yīng)用模式主要有以下兩種:

  1.存儲器映像方式。該方式可以隨意對存儲器的任何單元進(jìn)行讀寫操作。其主要應(yīng)用于多CPU的共享數(shù)據(jù)存儲、數(shù)據(jù)傳送等。該方式中,讀、寫控制線、地址總線和數(shù)據(jù)總線有兩套。根據(jù)兩端口之間數(shù)據(jù)的傳送方向為單向或雙向,又有單向數(shù)據(jù)總線和雙向數(shù)據(jù)總線之分。

  2.順序?qū)懛绞?。該方式對RAM的寫操作只能順序?qū)懭搿_@種情況適用于對象特性與時間緊密相關(guān)或傳送數(shù)據(jù)與順序密切相關(guān)的場合,如文件傳送、時序過程、波形分析等。根據(jù)寫控制邏輯的不同,可對RAM進(jìn)行循環(huán)寫入或一次寫入方式。該方式下的讀操作可以是存儲器映像讀或順序讀,前一種有較大的靈活性,而后一種則類似于FIFO形式。

  在讀、寫使用獨立的地址總線和數(shù)據(jù)總線時,可以同時對RAM不同單元進(jìn)行讀寫操作。根據(jù)不同控制邏輯的要求,對讀寫時鐘、時鐘使能端口可以適時設(shè)置,以滿足控制需要。

  下面以LPM_RAM_DP模塊為例介紹庫函數(shù)法構(gòu)造雙端口RAM的步驟。

  首先在MAX+PLUSⅡ中建立一個圖形編輯文件。雙擊文件任意空白處彈出庫函數(shù)選擇窗口。然后從mega-lpm庫中選擇LPM_RAM_DP模塊。

  在LPM_RAM_DP模塊中共有9個可配置參數(shù):

  LPM_FILE——指定存儲器的初始化數(shù)據(jù)文件;

  LPM_INDATA——選擇輸入數(shù)據(jù)采用寄存方式還是非寄存方式;

  LPM_NUMWORDS——設(shè)置存儲器的深度(大?。?;

  LPM_OUTDATA——選擇輸出數(shù)據(jù)采用寄存方式還是非寄存方式;

  LPM_RDADDRESS_CONTROL——決定讀地址控制信號是寄存方式還是非寄存方式;

  LPM_WIDTH——設(shè)置存儲數(shù)據(jù)寬度;

  LPM_WIDTHAD——設(shè)置地址總線寬度;

  LPM_WRADDRESS_CONTROL——選擇寫地址控制信號是寄存方式還是非寄存方式;

  USE_EAB——決定是否使用嵌入式陣列塊。

  雙擊雙端口RAM參數(shù)列表可彈出引腳/參數(shù)設(shè)置窗口。在引腳/參數(shù)設(shè)置窗口可以具體對雙端口RAM進(jìn)行引腳、參數(shù)設(shè)置。可以根據(jù)具體的對存儲器的功能要求,決定各種口線的使用與否。例如不想使用rdclken(讀時鐘使能)信號,則可以將其Status設(shè)置為Unused即可。同時還可以通過Inversion項設(shè)定該信號的初始狀態(tài)(初始值)。在窗口的Parameters參數(shù)設(shè)置處,選擇不同的參數(shù)項后,通過ParameterValue項可以改變或設(shè)置其相應(yīng)的狀態(tài)或數(shù)值。如想設(shè)置存儲數(shù)據(jù)為8位寬度,則選擇LPM_WIDTH項,然后將Parameter Value設(shè)置為8。

  例如要設(shè)計一個11位寬數(shù)據(jù),512個存儲單元,使用讀寫同步時鐘、不需要讀寫使能端及時鐘使能端的雙端口RAM。則可以打開引腳/參數(shù)設(shè)置窗口,設(shè)置LPM_NUMWORDS為512,LPM_WIDTH為11,LPM_WIDTHAD為9,LPM_INDATA、LPM_OUTDATA、LPM_RDADDRESS_CONTROL和LPM_WRADDRESS_CONTROL為寄存方式,使用嵌入式陣列;rdaddress、rdclock、data、wraddress、wrclock、q為Used,rden、rdclken、wren、wrclken為Unused。
[!--empirenews.page--]其它存儲器的構(gòu)造方法

  不同的存儲器根據(jù)各自特點,應(yīng)用場合也不盡相同。ROM存儲器主要用來存儲“常量”,如系統(tǒng)參數(shù)、波形發(fā)生器的信源等。先進(jìn)先出FIFO存儲器可用于信號的實時不間斷采集,存儲、緩沖兩個異步時鐘之間的數(shù)據(jù)傳輸?shù)取?/p>

  ROM、FIFO等存儲器的調(diào)用庫函數(shù)構(gòu)造方法與雙端口RAM的構(gòu)造方法類似,在mega-lpm庫中調(diào)用相應(yīng)的模塊單元即可。其中ROM存儲器在庫中是LPM_ROM模塊,F(xiàn)IFO存儲器在庫中有CSFIFO、DCFIFO、LPM_FIFO、LPM__FIFO_DC、SCFIFO、SFIFO共六種。需要說明的是由于ROM在實際系統(tǒng)運行時的不可寫入性,在ROM構(gòu)造過程中要對ROM存儲器進(jìn)行數(shù)據(jù)初始化。這一操作是通過設(shè)置PLM_FILE項完成的。在引腳/參數(shù)設(shè)置窗口的Parameters參數(shù)設(shè)置處選擇該項,再通過ParameterValue項確定相應(yīng)的數(shù)據(jù)初始化文件(*.mif)即可。下面是VHDL格式的ROM數(shù)據(jù)初始化文件(文件可用任何文本編輯器實現(xiàn)):

  

  

  雙端口RAM在高速數(shù)據(jù)采集中的應(yīng)用

  利用傳統(tǒng)方法設(shè)計的高速數(shù)據(jù)采集系統(tǒng)由于集成度低、電路復(fù)雜,高速運行電路干擾大,電路可靠性低,難以滿足高速數(shù)據(jù)采集工作的要求。應(yīng)用FPGA可以把數(shù)據(jù)采集電路中的數(shù)據(jù)緩存、控制時序邏輯、地址譯碼、總線接口等電路全部集成進(jìn)一片芯片中,高集成性增強(qiáng)了系統(tǒng)的穩(wěn)定性,為高速數(shù)據(jù)采集提供了理想的解決方案。下面以一個高速數(shù)據(jù)采集系統(tǒng)為例介紹雙端口RAM的應(yīng)用。

  該系統(tǒng)要求實現(xiàn)對頻率為5MHz的信號進(jìn)行采樣,系統(tǒng)的計算處理需要對信號進(jìn)行波形分析,信號采樣時間為25μs。根據(jù)設(shè)計要求,為保證采樣波形不失真,A/D采樣頻率用80MHz,采樣精度為8位數(shù)據(jù)寬度。計算得出存儲容量需要2K字節(jié)。

  根據(jù)設(shè)計要求,雙端口RAM的LPM_WIDTH參數(shù)設(shè)置為8,LPM_WIDTHAD參數(shù)設(shè)置為11(211=2048),使用讀寫使能端及讀寫時鐘。ADCLK、WRCLK和地址發(fā)生器的計數(shù)頻率為80MHz。

  A/D轉(zhuǎn)換值對雙端口RAM的寫時序為順序?qū)懛绞剑客瓿梢淮蜛/D轉(zhuǎn)換,存儲一次數(shù)據(jù),地址加1指向下一單元,因此寫地址發(fā)生器(RAM_CONTROL)采用遞增計數(shù)器實現(xiàn),計數(shù)頻率與ADCLK、WRCLK一致以保證數(shù)據(jù)寫入時序的正確性。寫操作時序由地址和時鐘發(fā)生器、A/D轉(zhuǎn)換時鐘和雙端口RAM的寫時鐘產(chǎn)生。停止采樣時AD_STOP有效,寫地址發(fā)生器停止計數(shù),同時停止對RAM的寫操作。將地址發(fā)生器的計數(shù)值接至DSP總線可以獲取采樣的首尾指針。地址發(fā)生器單元一般用(VHDL)語言編程實現(xiàn),然后生成符號文件RAM_CONTROL在上層文件調(diào)用。其部分VHDL語言程序如下:

  

  對雙端口RAM的讀操作采用存儲器映像方式,其讀出端口接DSP的外擴(kuò)RAM總線,DSP可隨機(jī)讀取雙端口RAM的任一單元數(shù)據(jù),以方便波形分析。 由于LPM_RAM_DP模塊的讀端數(shù)據(jù)總線q不具有三態(tài)特性,因此調(diào)用三態(tài)緩沖器74244,通過其將輸出數(shù)據(jù)連接到DSP數(shù)據(jù)總線上。

  在高速數(shù)據(jù)采集電路中,數(shù)據(jù)緩存也可以用FIFO或單端口RAM實現(xiàn)。用FIFO進(jìn)行數(shù)據(jù)緩存,由于其已經(jīng)把地址發(fā)生部分集成在模塊單元內(nèi),因此省去了一部分程序編寫,但是DSP卻不能任意地訪問FIFO的存儲單元,只能是順序?qū)懭耄x出數(shù)據(jù),這樣設(shè)計,系統(tǒng)的靈活性就大大降低。如果DSP的分析計算需要特定單元的數(shù)據(jù),則系統(tǒng)的效率和速度會因為無效數(shù)據(jù)的讀取而降低。使用單端口RAM進(jìn)行數(shù)據(jù)緩存同樣存在一些問題。由RAM側(cè)看,DSP和A/D轉(zhuǎn)換器是掛在一條總線上的,當(dāng)從RAM向DSP傳輸數(shù)據(jù)的時候,A/D轉(zhuǎn)換器就不能有數(shù)據(jù)傳到該總線上,否則會產(chǎn)生總線沖突,引起芯片損壞。解決這個問題就需要增加電路。應(yīng)用雙端口RAM就不存在這個問題,而且使系統(tǒng)結(jié)構(gòu)劃分更明確,符合模塊化設(shè)計思想。

  結(jié)語

  綜上所述,利用FPGA芯片的高速工作特性,以及其內(nèi)部集成嵌入式陣列和大規(guī)模邏輯陣列的特點,設(shè)計存儲器,三態(tài)緩存器、地址發(fā)生器、以及復(fù)雜的時序邏輯電路等,應(yīng)用于高速數(shù)據(jù)采集電路中可以使電路大大簡化,性能提高。同時由于FPGA可實現(xiàn)在系統(tǒng)編程(ISP),使系統(tǒng)具有可在線更新、升級容易等特點,是一種較為理想的系統(tǒng)及電路實現(xiàn)方法。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉