利用CPLD实现FPGA的快速加载
(4)加载模块。当检测到CPU的标志时CPLD开始发送数据对FPGA进行加载,加载完成后对自身的发送完成标志取反,关闭输出使能。要注意不同芯片厂家的加载高低位顺序不同。FPGA是靠dclk的上升沿来采样数据的,所以在dclk的下降沿将数据从CPLD送出,这样在FPGA端采样时dclk的上升沿正好对着数据的中间,能获得最大的时序窗口,如图10所示。本文引用地址:https://www.eepw.com.cn/article/189703.htm
实现程序如图11所示。
(5)加载结束后,FPGA将conf_done信号拉高,CPLD通知FPGA加载已经完成。
3 功能、性能测试
为了验证方案的有效性,选用Altera的FPGA(EP4SGX530),CPLD(EPM570F256CS),MPC8548搭建了一个加载系统,测试结果如图12所示,横轴表示时间,有固定周期的信号为dclk。由图可知加载成功,加载时钟频率约为17 MHz。总体加载时间可由conf_done信号指示,如图所示横轴表示时间,从图上可以看出,加载一个10 MB大小的FPGA配置文件大约需要10 s。
4 结论
CPU直接对FPGA进行加载的传统方式,加载一个10 MB的FPGA配置文件大概需要100 s,利用CPLD对FPGA进行加载,只需要约10 s(Local Bus的访问周期约为200 ns,相对于CPLD对FPGA的加载时间可以忽略不计,两者可以并行进行),加载速度提高了10倍左右。在有两个甚至多个FPGA需要加载的系统,其优势更为明显。该方法对只要有CPU,CPLD和FPGA的系统即可移植,并且可以支持Altera,XILINX和LATTICE三大厂家的逻辑器件。
评论