xilinx A7芯片介绍
1,Power&Ground
? ? ? VCCAUX是為輔助電路供電的引腳,1.8V;VCCAUX_IO_G#是為輔助I/O電路供電的引腳,1.8v或者2.0v(只有HP bank有此引腳);VCCINT是給內核邏輯供電的引腳,0.9v或者1.0v;VCCO_#是給輸出驅動供電的引腳,以bank為準;VCCBRAM是給block ram供電的引腳,1.0v;VCCADX_0是給xadc供電的引腳。
2,CLB可配置邏輯模塊
? ? ? CLB(configurable logic block)是xilinx fpga的基本模塊。其結構如下圖所示,通過switch matrix矩陣開關連接,x是橫坐標,y是縱坐標。一個CLB模塊由兩個slice模塊構成。slice分為SLICEL和SLICEM,只有后者才可以配置為分布式內存distributed memory或者移位寄存器SRL(shifted register)。一個slice又由4個lut6、8個flipflop以及算術進位鏈(arithmatic carry logic)、選通開關multiplexer構成,當然還包含一些控制信號sr、clk、ce等。xilinx芯片資源統計時有一項是logic cells,它等于lut*1.6,具體可參考https://forums.xilinx.com/t5/Virtex-Family-FPGAs/logic-cell-vs-CLB/td-p/743699。
? ? 另外,xilinx 7系列器件中既有同步復位觸發器FDRE,也有異步清零觸發器FDCE,但它們兩都是高電平有效,因此寫代碼時最好使用高電平復位,避免加入多余的反相器;并且xilinx官方文檔還推薦使用同步復位,因為7系列器件的異步復位會占用更多資源。
3,Block RAM
? ? ? xilinx A7系列的Block RAM為36Kb(RAMB36E1),也可以分配為兩個18Kb(RAMB18E1),可以配置為單口ram、雙口ram等,寫模式可分為write first、read first和no change模式,讀模式可選擇輸出寄存。另外,采用built in技術,用戶可快速構造大型的fifo,無需自己寫比較、狀態信號等的邏輯,支持標準和fwft模式。
4,DSP
? ? ? xilinx A7系列單個乘法器DSP48E1支持25*18的乘法運算,并提供48位分辨率輸出。
5,SelectIO
? ? ? xilinx A7系列的IO管腳分為高性能HP(high perfomance)和高范圍HR(high range)兩種,按bank分布在fpga兩側。HP口支持高速內存接口以及芯片間的接口,電壓<=1.8v。HR口支持的電壓范圍廣,<=3.3v。selectIO的結構如下圖所示,HR沒有ODELAYE2模塊。IOB模塊用于控制輸入、輸出、三態以及IO buffer、中端等;delay模塊用于控制進出fpga的延時;logic用于控制ddr和sdr功能;serdes則用于串并轉換引腳。7系列一個bank包含50個IO口,其中24對可用作差分對(以IO_LXXY_#命名,L表示差分對,Y的取值為P/N),top和bottom兩個io口不能(以IO_XX_#命名)。如果芯片包含HP BANK,那么每一個HP BANK還包含VRP和VRN引腳,用于DCI(digital controlled impedance),調節該bank io阻抗。
? ? ? A7系列 xilinx中io可支持各種電平,TTL、CMOS、HSTL、LVDS、SSTL、TMDS等,具體各種電平的范圍以及應用可查看ug471和ds181。比較關注的點有:a,電平(例如lvds,a7系列由于只有HR BANK,所以用于lvds傳輸的bank需要2.5v供電,但可以接收1.8v lvds輸入信號;)。b,速度,a7系列 -2速度等級支持的ddr lvds可達1.25Gb/s。c,終端電阻,如果a7系列HR BANK沒有2.5V供電,那么使用lvds時必須關閉內部終端。
6,GTP
? ? ? xilin A7系列中GTP按quad劃分,具體數量依據型號不同而不同。1quad包含4對收發通道,每個通道最高支持6.6Gb/s。一對收發通道的具體結構如下圖所示。
7,Clock
8,Configuration
? ? ? ? 7系列fpga配置模式有jtag only模式,串行模式(master/slave,用外部燒寫器配置),master spi模式(x1,x2,x3,配置flash),master bpi模式(nor flash,并行),selectmap模式(master/slave,用外部燒寫器,并行)。具體模式由M[2:0]配置引腳決定,如下圖所示。
? ? ? ? 7系列配置文件常用的有bit文件,bin文件,mcs文件,前兩個文件為二進制文件,后一個是ASCLL碼文件。bit文件帶有頭信息和數據信息,用于JTAG在線調試;bin文件只包含數據信息,可以燒寫進flash;mcs文件包含地址、數據、校驗信息。具體如下圖所示。另外,7系列位流文件一般結構為bus width auto detect+sync+data。bus width auto detect字段用于并行模式配置探測位寬,串行配置可以忽略,sync字段用于同步。
? ? ? ??項目中一般采用master spi模式,配置文件存儲在spi flash里。大體到的上電流程:上電,program_b一直為低,清除配置信息,此外將program_b拉低也可以進入復位序列;此階段init_b為輸入引腳,一直拉低該引腳可以延遲配置,表示fpga在配置復位階段,此外復位結束后,此引腳變為OD輸出,當fpga檢測到額配置錯誤時,此信號也會拉低。當兩者都為高時,采樣M[2:0]引腳,得到配置模式;然后在cclk的驅動下,開始配置序列。配置完成后,done引腳拉高。具體配置流程如下圖所示。
? ? ? ? multiboot,flash存儲程序的區域分為golden區和update區,golden區域用于存儲固定不變的程序,該程序保證fpga能正常工作;update區用于存儲升級程序,在線升級時更新此處程序。升級過程失敗時,fpga跳轉到golden區加載程序,以保證fpga在能正常啟動。具體流程如下圖所示。上電后,fpga從地址0讀取golden鏡像區的頭,執行IPROG(internel program)后,跳轉到WBSTAR(warm start address)所指示的地址,執行加載update鏡像;如果加載過程出錯(加載完后,bit文件尾部有一個Check CRC指令,并伴隨一個CRC校驗碼,設備會比較該碼與自己計算的CRC碼,與不同則出錯),則執行fallback,拉低init_b和done引腳,清除配置內存,跳轉到golden區,重啟配置流程;在fallback流程中,會忽略掉wbstar和iprog,直接加載程序。特別的,7系列可添加兩個barrier images(timer),檢測不到同步字時(update頭部被擦除或者破壞)或者加載出錯(update中間被破壞),產生超時fallbak。
? ? ? ? 對于A7芯片,采用spi flash模式啟動,其multiboot流程如下:
1,準備一個update工程,該工程為需要升級的工程,在xdc約束文件中添加以下約束,然后生成bit文件,該文件大小如果滅有添加壓縮選項,則可以查詢ug470,如果添加了,則直接查看生成后的文件大小。注意timer一定要在bit文件添加,否則timer1不起作用。?? ? ?
? ? ? ?a,set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]
? ? ? ?b,set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
? ? ? ?c,set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design]
? ? ? ?d,set_property BITSTREAM.CONFIG.TIMER_CFG 0x001312d0 [current_design]
? ? ? ?e,set_property BITSTREAM.CONFIG.CONFIGRATE 6 [current_design],默認加載配置時鐘為3Mhz
? ? ? ?f,如果使用的flash>=256Mb,還需要添加set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]
2,從網上下載xapp1247,然后得到multiboot_adress_table.tcl,使用vivado tcl shell工具執行它,輸入相關參數,最后生成Timer1.bin和Timer2.bin。并得到golden.bit,timer1.bin,update.bit,timer2.bin的地址空間。
3,準備一個golden工程,該工程為升級失敗后,執行fallback的程序,該程序應該具有升級功能,在xdc約束文件中添加以下約束,注意地址寄存器的值為timer1.bin的存儲地址。
? ? ? ? a,set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]
? ? ? ? b,set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x0007fc00 [current_design]
? ? ? ? c,set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
? ? ? ? d,set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design]
? ? ? ? e,set_property BITSTREAM.CONFIG.CONFIGRATE 6 [current_design]
? ? ? ? f,set_property BISTREAM.CONFIG.TIMER_CFG 0x001312d0 [current_design]
? ? ? ? g,如果使用的flash>=256Mb,還需要添加set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]
4,使用tcl指令或者tools->generate memory configuration file生成mcs文件。
總結
以上是生活随笔為你收集整理的xilinx A7芯片介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于软件试用发行
- 下一篇: ZigBee组网学习笔记(三 )--协议