图 4 PS配置多片FPGA的硬件连接
3.配置操作过程
CPU按下列步骤操作I/O口线,即可完成对FPGA的配置:
1. nCONFIG=\、DCLK=\,保持2μS以上。
2. 检测nSTATUS,如果为\,表明FPGA已响应配置要求,可开始进行配置。否则报错。正常情况下,nCONFIG=\后1μS内nSTATUS将为\。 3. nCONFIG=\,并等待5μS。
4. Data0上放置数据(LSB first),DCLK=\,延时。 5. DCLK=\,并检测nSTATUS,若为\,则报错并重新开始。 6. 准备下一位数据,并重复执行步骤4、5,直到所有数据送出为止。 7. 此时Conf_done应变成\,表明FPGA的配置已完成。如果所有数据送出后,Conf_done不为\,必须重新配置(从步骤1开始)。
8. 配置完成后,再送出10个周期的DCLK,以使FPGA完成初始化。
注意事项:
1. DCLK时钟频率的上限对不同器件是不一样的,具体限制见下表:
型号 ACEX1K、FLEX10KE、APEX20K FLEX10K APEXII、APEX20KE、APEX20KC Mercury 最高频率 33MHz 16MHz 57MHz 50MHz 2. 步骤7中FPGA完成初始化所需要的10个周期的DCLK是针对ACEX 1K和FLEX 10KE的。如果是APEX 20K,则需要40个周期。
3. 在配置过程中,如果检测到nSTATUS为\,表明FPGA配置有错误,则应回到步骤1重新开始。
图 5 操作流程框图
4.实现在线升级
采用本模块的最大优点是可以实现单板FPGA的在线升级。要实现在线升级,单板设计必须考虑以下几个问题:
1. CPU的启动必须不依赖于FPGA,即CPU子系统应在FPGA被配置前可独立运行并访问所需资源。CPU对FPGA进行配置所需的资源很少,一般来说,仅RAM和BootROM的访问而已。
2. FPGA配置前(或配置过程中)必须保证控制的设备处于非工作态或不影响其他设备工作的稳定态。
3. 为了实现FPGA的在线升级,存放FPGA配置数据的存储器器必须是CPU可重写的,且此存储器应是非易失性的,以保证单板断电后,FPGA数据不需从后台重新获得。 具体过程
结合图6的实例,对FPGA在线升级作一具体描述。
图6 FPGA在线升级
1. 使用编译和连接工具,将FPGA的第一个版本与MPC860的工作程序连接在一起,分别占用地址为0x70000-0x7FFFF和0x00000-0x6FFFF的存储空间。 2. 单板启动时,MPC860自动将0x70000-0x7FFFF的数据下载到FPGA中,完成FPGA配置。
3. 当FPGA需升级时,将新的RBF配置文件放在后台计算机中。
4. MPC860把BOOTROM的0x70000-0x7FFFF空间当作普通数据存储区,通过后台将新的RBF配置文件放在0x70000-0x7FFFF中。
5. MPC860调用BOOTROM中的FPGA配置子程序,对FPGA从新下载数据,完成FPGA升级。
以MPC860和Altera EP1K30为例,电原理图如下:
图7 电原理图
三. 软件操作
编程文件格式的转换
MAX+plusII或QuartusII生成的SOF或POF文件不能直接用于CPU配置FPGA中,需要进行数据转换才能得到软件可用的配置数据。在MaxplusII中的具体步骤如下:
1. 进入数据转换对话框
相关推荐: