a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP的FPGA配置方法研究與實現

基于DSP的FPGA配置方法研究與實現

作者: 時間:2012-03-30 來源:網絡 收藏

摘要:在數字電路中,+的系統結構應用日益廣泛。為了減小此種結構的體積和降低成本,對采用了被動并行的方式。上電后,首先完成自身程序的加載,之后充當的主處理器,從FLASH芯片中讀取FPGA程序,按照時序完成FPGA的程序加載。在硬件設計上,創新性地采用了,FPGA,FLASH共用數據總線的方式,當DSP從FLASH芯片中讀取FPGA程序時,FPGA可以直接抓取出現在總線上數據來完成加載。實踐證明,此種配置方法結構簡潔,工作穩定,在一定程度上了小型化和低成本。
關鍵詞:FPGA;DSP;配置;被動并行;小型化

0 引言
在信號處理領域中,FPGA+DSP的結構設計已經是系統發展的一個重要方向。隨著該系統設計的廣泛應用,功能變得更加豐富,成本日趨低廉。而在某些小型化應用的場合中,對系統體積的要求越來越高,因此如何在硬件層次上縮小系統體積,已經是必須要考慮的重點。除了選用高集成度的芯片、布局更加緊湊的電路結構之外,優化系統的功能方式則能在更高層次上減小系統體積。
對于FPGA+DSP的基本架構,DSP電路模塊的主要構成為DSP芯片和存儲其程序的FLASH芯片,已經為最小結構,無法精簡。FPGA電路模塊常用的構成方式為FPGA芯片和相應的配置芯片。而FPGA有多種配置方式,不同的配置方式,所需芯片會有差異,因此采用芯片數量少的配置方式可以在一定程度上節省電路板的面積。
不同廠家、不同系列的FPGA芯片,配置方式都存在有差異。對于Xilinx公司的Virtex-Ⅱ系列FPGA來說,主要有主動串行、主動并行、被動串行、被動并行和邊界掃描5種配置方式。其中,邊界掃描方式只能燒寫斷電即丟失的.bit文件,不能在系統中單獨使用;主動串行和主動并行的配置方式需要額外的配置芯片,不利于精簡系統;被動并行和被動串行的配置方式都是依靠FPGA外部連接的微處理器來進行配置的,而FPGA+DSP結構中的DSP正好可以充當配置電路中的微處理器,這樣就可以省去配置芯片和JTAG電路等相關模塊,能在一定程度上縮小系統體積。本文選擇了被動的并行配置方式,原因在于更高的配置速率,此種配置方法在工程實踐中有著重要意義。

1 配置方法
1.1 配置文件格式
配置FPGA即是要把開發工具已經綜合好的程序文件按一定的時序寫入FPGA芯片中。而Xilinx的開發環境可以根據用戶的選擇產生多種文件格式,以不同的后綴名區分。不同的文件格式包含了不同的信息,有不同的用途。最常用的格式有.mcs格式、.bit格式和.bin格式,其中,.mcs文件是給FPGA的配置芯片燒寫程序時使用的,而.bit和.bin文件都是直接給FPGA燒寫程序時使用的。所不同的是,.bin只包含了最原始的配置數據,而.bit文件除包含有最原始的配置數據外,還在開頭添加有頭部冗余信息,里面包含了當前ISE工程的名字、器件型號、編譯時間等。這部分信息是不應該燒寫到FPGA芯片中去的,因此,本文選擇使用.bin文件來對FPGA進行配置。一般的,此配置文件數據都是以Xilinx指定的16進制同步字符FF FF FF FF AA 99 55 66開頭,并在重復4次16進制同步字符20 00 00 00后結束。
由于被動并行的配置方式省去了配置芯片,因此,FPGA程序需要和DSP程序共同存入FLASH芯片中。本文選擇使用AD公司的DSP,其燒寫FLASH用的程序文件格式為.ldr,每行是由16進制的0xXXXXXXXX數據組成。所以,應該對FPGA所用的.bin文件進行格式轉換。利用Matlab工具,可以這一功能。要注意的是,.bin文件其實是ASCII碼形式,要轉換成ASCII碼的二進制碼才能使用。.bin文件是由若干個2位的16進制數據構成的,對每個數據a(i)首先分別提取高低位,可通過Matlab的函數floor(a(i)/16)和mod(a(i),16)來分別實現。然后對提取后的數據d進行格式碼轉換,相應的matlab程序如下:
if(d10)
d=d+48;
else
d=d+55;
end
1.2 配置管腳
與FPGA配置相關的管腳可以分為2類:專用管腳和可復用管腳。專用管腳的作用是固定的,而可復用管腳在配置階段作為配置管腳,配置結束后可以配置為通用的IO管腳,也可以繼續作為配置管腳。配置管腳主要有:異步復位PROG_B,初始化INIT_B,配置時鐘CCLK,數據輸入D0-D7,加載成功指示DONE,寫信號RDWR_B,片選信號CS_B,模式選擇M0~M2,忙指示BUSY(并行加載且鐘速率大于50 MHz時才使用)等。需要注意的是,通常的微處理器數據格式是little endian格式,D0位為最低有效位,而Xilinx的FPGA采用了big endian格式,在接收程序數據時,D0位是最高有效位。而.bin文件仍采用littIe endian格式,其最高有效位是D7位,所以需要對數據進行位順序轉換。在本文中,為了簡化操作,直接在硬件連接上進行了數據位的順序轉換,即DSP的D7位和FPGA的D0位相連,DSP的D6位和FPGA的D1位相連,以此類推。
1.3 配置流程
FPGA的上電配置過程大致可以分為4個階段:上電、初始化、數據加載和啟動。具體完成的操作如下:
(1)上電。內核供電VCCint大于2.5 V,管腳供電電壓VCCO大于1.0V,上電即可完成。
(2)初始化。上電完成后,外部輸入低電平PROG_B信號,復位配置寄存器,同時,FPGA拉低INIT_B信號,來指示其正在進行內部配置寄存器的清除。當PROG_B為高時,INIT_B仍要保持一段時間直至配置寄存器完全清除。PROG_B信號至少需要300ns,無最大值限制。本文中的PROG _B信號由DSP提供。
(3)數據加載。在INIT_B信號的上升沿,FPGA會采樣它的配置模式管腳M0~M2來選擇不同的配置方式,本文的被動并行模式,需要M0~M2值為:011。然后在INIT_B信號為高時,開始進行配置數據加載。在同步字符加載完成后,真正的配置邏輯數據開始被加載。在數據加載完畢并且做了2次正確的CRC檢驗之后,開始進入FPGA啟動階段,否則,FPGA輸出INIT_B為低,并重新來進行配置。
(4)啟動。CRC校驗正確,則FPGA拉高指示信號DONE,然后再需要4個CCLK來激活所有的IO管腳,使能并初始化內部RAM、觸發器等,最終完成FPGA的啟動過程。
在生成FPGA的.bin文件時,可以設置加載FPGA時使用的時鐘CCLK頻率,但是,這個頻率只對主動加載方式有效,被動方式時,CCLK時鐘由外部供給,與此參數無關。


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉