基于CPCI總線的FPGA加載設(shè)計(jì)
PCI9656 的局部總線有M、C、J 三種接口模式,為了簡(jiǎn)化數(shù)據(jù)傳輸控制邏輯,設(shè)計(jì)中采用了C 模式,該接口模式為適合大多數(shù)處理器的通用模式。在數(shù)據(jù)傳輸中,PCI9656 傳輸數(shù)據(jù)有兩種模式:突發(fā)模式和直接內(nèi)存存?。―MA,Direct Memory Access)模式。其中突發(fā)模式一般用于傳遞少量不連續(xù)數(shù)據(jù)的場(chǎng)合,DMA模式則用于傳遞大量連續(xù)數(shù)據(jù)的場(chǎng)合。
在設(shè)計(jì)中,所有的參數(shù)上傳、下載都是通過(guò)突發(fā)模式傳輸?shù)?,而三片V5 芯片的加載,連續(xù)處理數(shù)據(jù)的上傳則是通過(guò)DMA 模式完成的。
3 FPGA 加載概述
FPGA 的加載有多種模式,主要有主串模式(Master Serial),從串模式(Slave Serial),邊界掃描模式(Boundary Scan),SPI 模式和SelectMap 模式等。設(shè)計(jì)中采用了Slave Serial 模式,該模式由外部處理器或控制器提供時(shí)鐘,總共用到了CCLK,PROG_B,DONE,INIT_B,DIN 5 個(gè)管腳,其中CCLK 管腳為加載提供時(shí)鐘,當(dāng)PROG_B 信號(hào)置低300ns后檢查INIT_B信號(hào)為高電平即可通過(guò)DIN管腳送入數(shù)據(jù)進(jìn)行加載,當(dāng)數(shù)據(jù)加載完成后檢查DONE管腳為高電平表示配置完成。Slave Serial 模式的時(shí)序圖如圖2 所示。
FPGA 的配置文件有多種不同的格式,例如BIT,BRT,BIN,MCS,EXO,TEK,HEX 等。由于ISE 軟件調(diào)用Bit Gen 程序直接生成的文件格式為BIT,故系統(tǒng)如能直接用BIT 文件作為配置文件將省去文件轉(zhuǎn)換的麻煩,通過(guò)分析發(fā)現(xiàn)BIT 文件與BIN(直接二進(jìn)制配置文件)文件相比僅僅多了文件頭,又由于FPGA 配置過(guò)程中會(huì)進(jìn)行同步、器件ID 檢查等操作,因此多出的文件頭部分會(huì)自動(dòng)忽略,故而通過(guò)Slave Serial 方式直接下載BIT 文件配置FPGA 是可行的。
4 硬件模塊設(shè)計(jì)
Spartan-3E中的程序設(shè)計(jì)包含PCI9656配置模塊,負(fù)責(zé)對(duì)PCI9656 芯片進(jìn)行初始化;PCI9656 接口模塊,負(fù)責(zé)與PCI9656 進(jìn)行數(shù)據(jù)交互;參數(shù)模塊,負(fù)責(zé)將接收的參數(shù)重新分配給三個(gè)芯片或者將一些狀態(tài)信息上傳到工控機(jī);FPGA 配置模塊負(fù)責(zé)將接收到的FPGA 的BIT 文件流通過(guò)FIFO 將不連續(xù)數(shù)據(jù)緩沖為連續(xù)數(shù)據(jù),并觸發(fā)配置邏輯,對(duì)FPGA 進(jìn)行配置。
系統(tǒng)的模塊劃分如圖3所示。
4.1 PCI9656 配置模塊
PCI9656 一般都有對(duì)應(yīng)的EEPROM,用于上電時(shí)初始化芯片工作的相關(guān)參數(shù)。根據(jù)實(shí)際需求,由于需要初始化的參數(shù)較少,PCB 設(shè)計(jì)中沒(méi)有放置EEPROM,需要Spartan-3 E 通過(guò)本地總線對(duì)其進(jìn)行初始化。對(duì)于PCI9656,初始化其PCI Subsystem ID、PCI Subsystem、Vendor ID 后,在工控機(jī)就可以進(jìn)行其他配置,配置這兩個(gè)參數(shù)只需要通過(guò)本地總線往地址0X2C寫(xiě)入相應(yīng)數(shù)據(jù)即可。
評(píng)論