Xilinx FPGA 配置之ICAP
在網絡通信中ICAP通常指Internet Content Adaptation Protocol,但在Xilinx FPGA 中ICAP(Internal Configuration Access Port) 指的是內部配置訪問端口,其主要作用是通過內部配置訪問端口(ICAP),用戶可以在FPGA邏輯代碼中直接讀寫FPGA內部配置寄存器(類似SelectMAP),從而實現特定的配置功能,例如Multiboot。FPGA實現IPROG通常有兩種方式,一種是通過ICAP配置,一種是把相關指令嵌入bit文件中。與通過bit文件實現IPROG相比,通過ICAP更靈活。
ICAP目前為止有三個版本,包括ICAP,ICAPE2以及ICAPE3。 UltraScale系列對應ICAPE3,7系列對應ICAPE2,7系列之前的對應ICAP。每個版本有少許區別。
以下以ICAPE3 為例,ICAPE3 的接口如下:
每個UltraScale系列的FPAG包括2個ICAPE3,但實際使用時只能例化并使用一個,默認頂部ICAPE3, 初級玩家采用默認的即可。
通過ICAP發送IPROG指令實現Multiboot的步驟如下:
首先寫入同步頭 32’hAA995566, 然后將需要跳轉到的bit文件的起始地址寫入WBSTAR寄存器,最后寫入IPROG(internal PROGRAM_B)指令。
這里需要注意一點,ICAP以及SelectMAP都存在位反轉(Bit Swapping),也就是說,上表中所有的數據需要進行位反轉之后才能接到ICAP的輸入接口,同理,ICAP輸出的值需要進行位反轉后才能與實際的值對應起來,位反轉的示例如下圖。
Bit Swapping 可參考以下Verilog語句
ICAPE3 例化示例如下(UG974)
// ICAPE3: Internal Configuration Access Port // UltraScale // Xilinx HDL Language Template, version 2019.1 ICAPE3 #( .DEVICE_ID(32'h03628093),//pre-programmed Device ID value,used for simulation // purposes. .ICAP_AUTO_SWITCH("DISABLE"),//Enable switch ICAP using sync word .SIM_CFG_FILE_NAME("NONE")//Raw Bitstream (RBT) file,parsed by the simulation // model ) ICAPE3_inst ( .AVAIL(AVAIL), // 1-bit output: Availability status of ICAP .O(O), // 32-bit output: Configuration data output bus .PRDONE(PRDONE),//1-bit output: Indicates completion of Partial Reconfiguration .PRERROR(PRERROR),//1-bit output: Indicates Error during Partial Reconfiguration .CLK(CLK), // 1-bit input: Clock input .CSIB(CSIB), // 1-bit input: Active-Low ICAP enable .I(I), // 32-bit input: Configuration data input bus .RDWRB(RDWRB) // 1-bit input: Read/Write Select input ); // End of ICAPE3_inst instantiation參考文檔
UG974 UltraScale Architecture Libraries Guide
UG470 7Series_Config
UG570 ultrascale-configuration
總結
以上是生活随笔為你收集整理的Xilinx FPGA 配置之ICAP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一条毛毯
- 下一篇: Java - 说一下表达式语言(EL)的