【中科亿海微EQ6HL45开发平台测评体验】+08.ICAP测试(zmj)
[复制链接]
【中科亿海微EQ6HL45开发平台测评体验】+08.ICAP测试(zmj)
中科亿海微的FPGA重配置功能十分强大。那么重配置功能可以应对哪些场景?如何实现呢?
在实际工程应用场景中可能要实现几个不同功能的码流,如果采用几片FPGA+Flash的方式势必会增加成本并且会使得系统变得更加复杂,而IP核ICAP正是解决这一问题的方式之一。具体是将不同的码流下载到不同的地址,利用ICAP向配置模块发送IPROG命令切换到不同的码流地址,执行其相应的功能。FPGA的重配置操作可由FPGA外部的处理器、微控制器、计算机和按键等“智能”终端触发。
在应用设计中,只需在每个应用程序中例化一个IP核ICAP来实现相关命令序列即可实现Multi-Boot特性。
1. ICAP概述
实现多个功能的程序依据不同的地址分配统一固化到QSPI-FLASH中,当外部指令启动重配置功能时,依据设定的地址检索并加载对应的程序。
//------ICAP手册
ICAP_User_Guide.pdf
(511.49 KB, 下载次数: 2)
1.1 IP核ICAP端口说明
IP核ICAP直接调用即可,无额外的参数设置。
ICAP模块端口说明:
//------ICAP例化代码
icap_0 u_icap_0(
.CLK (clk ),//时钟信号
.CE (icap_ce ),//模块选择信号
.WRITE (icap_wr_rd ),//读写信号
.I (icap_din ),//要输入的时钟数据
.O (icap_dout ),//要输出的时钟数据
.BUSY (icap_busy ),//忙信号
.ICAP_ENA (1'b1 ) //模块使能信号
);
//------指定multi_addr和gold_addr
localparam multi_addr = 32'h100000 ,
gold_addr = 32'h500000 ;
1.2 IP核ICAP接口协议
IP核ICAP接口协议如图所示:(工程代码中使用的是3byte寻址模式,0x5566)
1.3 关于multi_addr和gold_addr的说明
在IP核ICAP中,multi_addr和gold_addr这两个地址的功能十分重要,它们是FPGA重配置功能的关键参数。
将原始码流和重配置码流统一下载烧录到QSPI-FLASH中。原始码流的地址和重配置码流的地址是如何分配以及与时序中的Multi-Boot地址和Golden-Boot地址之间是什么关系呢?下面详细说明。
//------Multi-Boot地址和Golden-Boot地址说明:
a.在原始工程中例化IP核ICAP,代码中指定multi-addr为0x100_000和golden-addr为0x500_000。
b.烧录时原始码流地址为0x000000,重配置码流地址为0x500000。
c.原始码流里面包含icap功能,上电后会首先运行此码流,在下载界面中它的地址可以由用户来指定。
d.当执行ICAP功能后,首先检索multi-addr地址。如果该地址拥有有效的码流则会执行重配置码流的功能,此时不会再去寻找Golden地址;如果该地址无有效码流则会跳转并检索golden-addr地址。对于不同开发者来讲,理论上可以在下载界面中加载多个码流利用icap进行跳转。
//------从码流运行角度讲
a.在此次功能测试中,烧录时的重配置码流地址与代码中golden-addr一致。
b.当ICAP功能启动后会先跳转到multi-addr,此时找不到码流会等待一段时间跳出,之后会跳转到Golden-addr继续寻找码流,最后启动执行重配置码流。
//------从代码功能角度分析
a.原始工程实现了LED流水灯功能,按键KEY1为复位,按键KEY4为重配置启动按钮。
b.当按下按键KEY4后,重配置工程实现了LED呼吸灯,并且扩展接口点亮了彩条灯。
2. 工程文件
2.1 功能设计
FPGA工程包括原始工程(包含IP核ICAP)和重配置工程。
详细工程参考附件。
//------原始工程led_prj_v1
led_prj_v1.zip
(1.6 MB, 下载次数: 1)
//------重配置工程rtc_prj
rtc_prj.zip
(8.69 MB, 下载次数: 1)
2.2 工程框架
原始工程的工程框架如图所示:
3. 测试
IP核ICAP的重配置功能需要固化到QSPI-FLASH中,烧录时Flash选项需要勾选启动“Mulboot”,添加好原始工程码流和重配置工程码流后,点击start开始烧录。
烧录完成后重启开发板,通过KEY4可以启动ICAP完成FPGA的重配置功能。
//------烧录配置
//------功能视频
//------功能视频说明:
a.原始工程实现了LED流水灯功能,按键KEY1为复位,按键KEY4为重配置启动按钮。
b.当按下按键KEY4后,重配置工程实现了LED呼吸灯,并且扩展接口点亮了彩条灯。
06_ICAP
//------end
|