| **银杏科技有限公司旗下技术文档发布平台** |||| |技术支持电话|**0379-69926675-801**||| |技术支持邮件|Gingko@vip.163.com||| |技术论坛|http://www.eeschool.org||| ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | V1.0 | 2020-04-03 | gingko | 初次建立 | ===== PS模式配置FPGA ===== ==== 一、实验目的与意义 ==== - 了解什么是Altera FPGA的PS配置模式。 - 学习PS模式的配置过程。 - 掌握PS配置模式的操作流程。 ==== 二、实验设备及平台 ==== - iCore4T 双核心板。 - USB-Blaster(或相同功能)的仿真器。 - Micro USB线缆。 - 装有Quartus II 开发软件的平台。 ==== 三、实验原理 ==== === 1.PS配置模式原理 === * PS(Passive serial),被动串行加载方式。FPGA作为从器件,配置过程由外部计算机或控制器控制,将数据从配置芯片EPCS写入FPGA中,配置数据在时钟的上升沿锁存,实现对FPGA的编程,这个过程叫PS配置。采用PS配置模式可以实现对FPGA进行在线编程。 * 首先看一下Altera的PS模式硬件原理图,如下: {{ :icore4t:icore4t_fpga_26_1.png?direct |}} * 图中的MSEL0、MSEL1、MSEL2三个信号的组合电平决定了FPGA的配置模式,MSEL1引脚接高电平表示PS配置模式,接低电平表示AS配置模式。上图中MSEL1引脚接高电平,为PS模式。再来看iCore4t的FPGA配置信号原理图,iCore4t核心板上将此引脚通过0欧电阻连接到2.5V引脚,使FPGA处于PS配置模式。 {{ :icore4t:icore4t_fpga_26_2.png?direct |}} === 2.PS模式的配置过程 === * 在iCore4t双核心板上,数据时通过STM32配置进FPGA的,因此,除了模式控制以外的配置信号引脚是连接到STM32上的,包括下图中的配置信号: {{ :icore4t:icore4t_fpga_26_3.png?direct |}} * 各信号代表意义如下: |CONF_DONE |上拉输出信号,升级完成状态位。升级完成后该位置1,表示升级完成。| |PS_DATA0/PS_DCLK |数据和时钟信号,在PS_DCLK的上升沿,FPGA采集PS_DATA0的信号。| |nCONFIG |升级开始信号| |nSTATUS |反应FPGA配置过程状态的信号| * 明白了这几个信号的含义,再来看一下PS配置模式的时序图: {{ :icore4t:icore4t_fpga_26_4.png?direct |}} * 从时序图中也可以看到,整个配置过程大致如下: * 1)nCONFIG被拉低后,一个上升沿表示要开始配置FPGA; * 2)上升沿结束后,FPGA的nSTATUS由低电平被FPGA释放,由外部电阻上拉为高电平,告诉主控,FPGA已经接收到起始信号,开始接收数据; * 3)DCLK和DATA开始传输信号; * 4)当传输完成后,FPGA将CONFIG_DONE释放,并有外部电阻上拉,表示配置结束; * 5)FPGA内部完成初始化,进入USER mode,开始执行用户逻辑。 === 3.生成配置文件 === * 由于FPGA结构特性导致FPGA内的配置数据掉电后丢失,PS模式则是将数据存储在外部存储器中,待板子上电后,将数据按照PS时序要求配置进FPGA。iCore4t双核心版采用ARM作为主控,将配置数据从SD卡中配置进FPGA。 * PS模式对配置文件的格式有一定要求。几种常用的配置文件格式,如sof、pof、rbf和jic等均可通过Quartus II 软件生成。 sof格式的文件可用于PS模式和JTAG模式下的文件烧写。rbf文件里面包括一些控制码等,可用于芯片配置。因此,可以通过Quartus II软件将sof格式文件转换成rbf文件,存储到SD卡或者U盘中,通过STM32将二进制的rbf文件配置到FPGA中。 * sof格式文件转rbf格式文件流程如下: 1、打开Quartus II 13.1,点击file,在下拉菜单中选择Convert Programming Files,如下图所示。 {{ :icore4t:icore4t_fpga_26_5.png?direct |}} 2、在弹出窗口中,找到Programming file type,点击右侧下拉菜单,可以看到多种文件格式,如.pof格式、.rbf格式、.jic格式等,如下图所示。需要转换成什么格式,点击对应格式即可。 {{ :icore4t:icore4t_fpga_26_6.png?direct |}} 3、选择好要转换文件的目标格式后,按照下图中所示步骤操作。(注意,步骤6的.sof文件这里是作为举例用,实际操作中选择需要转换的文件。) {{ :icore4t:icore4t_fpga_26_7.png?direct |}} 4、点击下图1处的Generate选项,弹出2处红框图示内容,表示转换完成。 {{ :icore4t:icore4t_fpga_26_8.png?direct |}} ==== 四、操作步骤: ==== * 1、将例程中FPGA升级文件夹下的.rbf文件拷贝进SD卡system文件夹下; * 2、打开PuTTy串口终端软件,选择Serial,修改COM口端号(设备管理器里查看),修改波特率和代码中一致,点击Open。 {{ :icore4t:icore4t_fpga_26_9.png?direct |}} * 3、连接仿真器和iCore4t双核心板,并通过Micro USB线给板子供电; * 4、烧写ARM程序到iCore4t双核心板。 * 5、下载完成后重新上电 ==== 五、实验现象: ==== * 下载成功后,可以观察到ARM.LED亮起,FPGA.LED闪烁。重新上电后ARM.LED亮起,FPGA.LED闪烁。说明PS模式下,ARM配置FPGA成功。串口终端软件显示如下: {{ :icore4t:icore4t_fpga_26_10.png?direct |}}