基于单片机的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器件,故其有一定的通用性。
Altera FPGA 单片机 LTE 电路 电阻 振荡器 相关文章:
- 验证FPGA设计:模拟,仿真,还是碰运气?(08-04)
- 学习FPGA绝佳网站推荐!!!(05-23)
- 智能命令行设计及其在 SOPC 系统中的应用(08-14)
- 我的FPGA学习历程(05-23)
- 在FPGA中实现源同步LVDS接收正确字对齐(05-01)
- Altera FPGA下载配置(11-11)