通過(guò)SELECTMAP32接口配置和回讀XILINX公司生產(chǎn)的V5系列SRAM型FPGA,被配置的FPGA以下簡(jiǎn)稱DUT,產(chǎn)生配置時(shí)序的FPGA簡(jiǎn)稱配置FPGA。
上圖描述了FPGA主動(dòng)配置和從配置多種模式下M[2:0]及時(shí)鐘CCLK的狀態(tài)。
首先硬件上應(yīng)將M[2:0]接成110,即Slave SelectMAP模式,該模式下總線寬度分8,16,32bit三種,本文按照32bit模式配置和回讀。
1.配置
配置的過(guò)程就是將mcs文件中的配置字序列通過(guò)SelectMAP接口寫(xiě)入FPGA,配置字的寫(xiě)時(shí)序如下圖:
如上圖所示,SelectMAP接口包含PROGRAM_B、 INIT_B、CCLK、CS_B、DATA[7:0](8bit模式)、RDWR_B、BUSY以及DONE。其中DATA接口為雙向,PROGRAM_B、 INIT_B、CCLK、CS_B、RDWR_B為DUT的輸入,由配置FPGA產(chǎn)生,CCLK頻率為25MHz。BUSY和DONE為DUT的輸出,配置FPGA根據(jù)BUSY和DONE信號(hào)判斷DUT是否配置完成。
mcs中配置字序列以及具體含義如下:
FFFFFFFF Dummy Word
000000BB BusWidthWord
11220044 8/16/32BusWidth
FFFFFFFF Dummy Word
FFFFFFFF Dummy Word
AA995566 Sync Word
以上為總線寬度檢測(cè)和同步字序列。在SlaveSelectMAP模式下,默認(rèn)配置數(shù)據(jù)總線寬度為8bit,DATA[7:0]首先檢測(cè)總線寬度序列,如果DATA[7:0]檢測(cè)到0xBB后是0x11,則總線寬度為8bit,如果0xBB后是0x22,則總線寬度為16bit,如果0xBB后是0x44,則總線寬度為32bit,在總線寬度序列檢測(cè)完畢后,接收同步字序列AA995566。
在發(fā)送完同步字后,按照以下順序發(fā)送狀態(tài)寄存器等寫(xiě)指令,對(duì)FAR、CMD等狀態(tài)寄存器進(jìn)行寫(xiě)操作,使FPGA處于待接收配置字狀態(tài)。
20000000 Type 1NOOP
30020001 Type 1 write1 words to WBSTAR
00000000 Warm BootStart Address
30008001 Type 1 write1 words to CMD
00000000 NULL
20000000 Type 1NOOP
30008001 Type 1 write1 words to CMD
00000007 RCRC
20000000 Type 1NOOP
20000000 Type 1NOOP
30022001 Type 1 write1 words to TIMER
00000000 TIMERvalue
30026001
00000000
30012001 Type 1 write1 words to COR0
02003F35 done@4 m@0l@0 gts@3 gwe@5
3001C001 Type 1 write1 words to COR1
00000000 COR1value
30018001 Type 1 write1 words to ID
03300093 ID code
30008001 Type 1 write1 words to CMD
00000009 SWITCH
20000000 Type 1NOOP
3000C001 Type 1 write1 words to MASK
00400000 MASKvalue
3000A001 Type 1 write1 words to CTL0
00400000 CTL0value
3000C001 Type 1 write1 words to MASKR
00000000 MASKvalue
30030001 Type 1 write1 words to CTL1
00000000 CTL1value
20000000 Type 1NOOP
20000000 Type 1NOOP
20000000 Type 1NOOP
20000000 Type 1NOOP
20000000 Type 1NOOP
20000000 Type 1NOOP
20000000 Type 1NOOP
20000000 Type 1NOOP
30002001 Type 1 write1 words to FAR
00000000 FARvalue
30008001 Type 1 write1 words to CMD
00000001 WCFG
20000000 Type 1NOOP
30004000 Type 1 write0 words to FDRI
50177910 Type 2 write1538320 words to FDRI
這些指令的含義如下:
FPGA配置bit流包含兩種類型的配置字指令,第一種類型為讀寫(xiě)操作指令,格式如下
?
R為保留位,沒(méi)有實(shí)際意義。其中Opcode的含義如下
?
第二種類型的配置字指令必須跟隨在類型一之后,用于長(zhǎng)字節(jié)的寫(xiě)操作
?
一些狀態(tài)寄存器的地址如下所示
評(píng)論