multiboot之ICAP

本文深入解析了FPGA中ICAP模块的使用,包括ICAP的实例化、指令实现、比特位交换、跳转与fallback约束等关键步骤。通过详细示例,展示了如何利用ICAP实现两个bit文件的切换,适用于多镜像更新场景。

目录
0.前言
1.ICAP的例化
2.ICAP指令实现
3.比特位交换
4.跳转与fallback约束
5.生成mcs镜像
6.测试demo

0.前言

multiboot作为更新程序的一种方法,在FPGA的实现方法是将两个bit文件合成为一个mcs镜像。
但是,flash默认只读取第一个从0开始的bit。要跳转到第二个bit文件时,可以用icap控制。
在这里插入图片描述

1.ICAP的例化

在这里插入图片描述

(1)使用原语:在vivado的Language template选项中可以找到标准语法,其中包括IP的调用,icap原语例化如下:

//icap核的调用
 ICAPE2 #(
      .DEVICE_ID(32'h362D093),     // Specifies the pre-programmed Device ID value to be used for simulation
                                  // purposes.
      .ICAP_WIDTH("X32"),         // Specifies the input and output data width.
      .SIM_CFG_FILE_NAME("NONE")  // Specifies the Raw Bitstream (RBT) file to be parsed by the simulation
                                  // model.
   )
   ICAPE2_inst (
      .O(O),         // 32-bit output: Configuration data output bus
      .CLK(sys_clk),     // 1-bit input: Clock Input
      .CSIB(CE),   // 1-bit input: Active-Low ICAP Enable
      .I(I),         // 32-bit input: Configuration data input bus
      .RDWRB(WRITE)  // 1-bit input: Re
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值