基于单片机的CPLD/FPGA被动串行下载配置的实现
现将以上所提及的各个子程序的用途简介如下:
下载配置子程序的作用是将从串口接收的配置数据直接写到目标器件中,即直接写到可编程逻辑器件(CPLD/FPGA)中。
在编写该子程序时,必须注意目标器件的写入时序。必须根据目标器件生产厂家提供的时序图,用单片机语言编程将其配置时序准确地描述出来,只有这样才能正确地将配置数据写入到目标器件中。例如,我们若要正确配置ALTERA公司生产的FLEX 10k系列器件,就必须严格遵守以下时序图,如图4所示。
写E2PROM子程序的作用是将从串口接收的配置数据直接写到AT24C256串行E2PROM中保存起来,以备需要时可以用这些保存的数据重新配置器件。读E2PROM子程序的作用是从AT24C256中将配置数据读出,同时将这些配置数据写到目标器件中,以实现对目标器件的重新配置。
在编写这两个子程序时,必须注意AT24C256的数据写入和数据读出时序,只有严格遵守该时序图,才能正确地对该存储器进行读写操作。其读写时序如图5所示。
通用延时子程序可以灵活地设定延时时间间隔。当程序中需要延时的时候只要先给该子程序提供一个延时时间常数,再调用延时子程序即可。例如,通常在系统复位时为了让处理器复位后系统中其他器件能可靠复位而调用的上电延时子程序就可以采用该通用延时子程序来实现。
5结语
本系统可用于配置所有ALTERA公司生产的基于SRAM架构的CPLD器件和XILINX公司生产的基于SRAM架构的FPGA器件以及其他主流器件制造公司生产的基于SRAM架构的器件,具有很强的通用性。由于该电路使用的元器件非常少,也可以将其制作成面积很小、便于携带的通用下载配置板使用。该下载配置电路经本人实际制作、调试、使用,其工作稳定可靠,具有很好的应用前景。
参考文献
[1]ALTERAApplication Note 59:Configuring FLEX 10k DevicesAugust 1998
[2]ALTERAApplication Note 208:Configuring Stratix Stratix GX DevicesNovember 2002
[3]何立民钡テ机应用技术选编[M].北京:北京航空航天大学出版社,2000
评论