微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 基于单片机的FPGA并行配置方法

基于单片机的FPGA并行配置方法

时间:11-10 来源:互联网 点击:



图3

(3)结束配置

配置数据全部正确写入芯片内部后,器件释放CONF_DONE,由外部将其拉高。如果单片机检测到这个信号,则表明配置成功;否则,要对其重新配置。

3.2 配置软设计

单片机实现配置过程的控制程序流程图如图3所示。

汇编程程序设计如下:

nCONFIG EQU P1.7

nSTATUS EQU P1.5

RDYnBSY EQU P1.3

CONF_DONE EQU P1.4

ORG 0000H

LJMP MAIN

ORG 0030H

;对数据长度相关进行初始化,其中所要配置的数据长度放在地址为0000H和0001H中

;0000H放数据长度的低位,0001H放数据长度的高位

;从0002开始放置的是所要配置的数据

MAIN:MOV DPTR,#0000H

MOVX A,@DPTR

MOV R3,A; R3放配置数据个数的低位

MOV DPTR,#0001H

MOVX A,@DPTR

MOV R4,A; R4放配置数据个数的高位

MOV R5,#00H ;放配置数据个数的低位

MOV R6,#00H ;放配置数据个数的高位

;以下是将数据进行配置的子程序

COFIG:MOV DPTR,#0002H

CLR P1.7

ACALL DELAY4 ;延时约为15μs

JB nSTATUS,COFIG ;检测FPGA是否响应置低位

SETB nCONFIG ;FPGA响应置低位后,将nCONFIG置高位

STA_JUDGE:JB nSTATUS,COFIG_BEG;等待FPGA是否响应置高位,然后准备进行配置

LJMP STA_JUDGE

COFIG_BEG:ACALL DELAY2

LJMP SEND_DATA

READY_DATA1:JNB nSTATUS,COFIG

SEND_DATA:MOVX A,@DPTR ;读取数据

PUSH DPH

PUSH DPL

MOV DPTR,#7000H ;读入FPGA地址

JNB P1.3,$ ;判断RDYnBSY的状态

MOVX @DPTR,A ;配置数据

POP DPL

POP DPH

INC DPTR

;以下实现配置个的判断

CLR C;

MOV A,#01H

ADD A,R5

MOV R5,A

MOV A,#00H

ADDC A,R6

MOV R6,A

MOV A,R5

CJNE A,03H,RESESH_COFIG

MOV A,R6

CJNE A,04H,RESESH_COFIG

CON_REFRESH:ACALL DELAY2 ;延时5μs,JB P1.4,END1 ;判断CONF_DONE的状态,看是否配置成功

LJMP COFIG

PESESH_COFIG:LJMPREADY_DATA1

;延时子程序,延时约为5μs

DELAY2:NOP

NOP

NOP

NOP

NOP

RET

;延时子程序,延时约为15μs

DELAY4:MOV R1,#08H

DJNZ R1,$

RET

END1:END

本文讨论的基于单片机的FPGA并行配置方法具有线路结构简单、开发容易、成本低的特点。与常用的串行配置方法相比,该配置方法更具有配置时间短、准确率高、易于实现等优点。虽然该配置控制电路是为配置ALTERA公司FLEX10k系列的FPGA器件而设计的,但稍加修改也适用于其它系列的FPGA器件,故其有一定的通用性。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top