Leon3的接口配置设计
该配置逻辑模块完成以下几方面的功能:启动FPGA1配置时序;向FPGA1内部传入配置数据;监测FPGA1是否正常配置。使用嵌入式CPU软核配置FPGA1的流程如下:
①启动FPGA1的配置时序。CPU地址线选中FPGA2内部编程寄存器,数据线输出FPGA1配置控制信号CS、WRITE和PROGRAM,将CS和WRITE置低,PROGRAM置高。
②监测FPGA的配置状态。CPU地址线选中FPGA2内部输入寄存器,接收FPGA1的输出信号INIT,若其值为高,那么CPU开始发出FPGA1的配置数据,否则持续检查INIT的值,直到其值为1。
③向FPGA1内传送配置数据。CPU地址线选中FPGA2内部配置寄存器,数据线Data[15:8]输出FPGA1的配置数据,Data[0]产生配置时钟CCLK,在CCLK的上升沿FPGA1接收配置数据。配置数据传送分两步,首先Data[0]置0,然后Data[0]置1。CCLK产生一个上升沿,在此过程中Data[15:8]数据保持不变。重复此过程,CPU输出FPGA1全部配置数据。
④检查FPGA1是否配置成功。FPGA1的配置数据被传送至结束时,CPU地址线选中FPGA2内部输入寄存器,接收FPGA1的输出信号DONE。若其值为高时,说明FPGA1配置成功,否则需要重新配置FPGA1。
SelectMap接口配置方式下FPGA的时序如图3所示。
3 仿真及分析
FPGA2采用Xilinx公司的Virtex-5 XC5VFX70T,SelectMap接口控制IP核采用VHDL语言实现,嵌入式CPU软核采用的是欧空局开发的Lcon3软核。在XilinxISE 10.1平台下完成对Lcon3 CPU软核处理器、外围控制器及自定义SelectMap接口控制IP核集成的设计、综合,利用Modelsim SE6.0完成仿真。
SelectMap配置仿真波形如图4所示。由于FPGA1(Virtex-5 XC5VSX95T)的配置数据较大,仿真出完整的配置过程是不现实的,图中用5个字节的配置数据来代替FPGA的完整配置过程。为了把配置寄存器数据Data和并行配置的8位数据相对照,分离出了Data的高8位Data[15:8]。从图中可以看出,在一次完整的配置过程中,CS和WRITE为低,PROGRAM为高,当监测到INIT为高时发出配置数据,在配置时钟CCLK的上升沿接收8位配置数据,DONE信号为高电平指示配置完成。该仿真结果和SelectMap配置方式的FPGA时序一致,证明了本设计的正确性及可行性。
结语
通过使用嵌入式Lcon3 CPU软核和FPGA及开发板上的存储器件,实现了对Xilinx公司的FPGA进行SelectMap配置的一种有效的方案。该方法除了可以完成FPGA芯片的配置外,更重要的是可以灵活地在线升级系统、修改和调试FPGA程序。如果存储空间够大,可以存储不同功能的FPGA程序代码,这样就可根据实际情况来加载不同代码,甚至通过通信接口也可以方便地实现远程下载代码和更新系统,使整个系统可在线配置,增强了系统的适用性和灵活性。
评论