基于JTAG接口实现ARM的FPGA在线配置
在驱动程序中,与操作系统的write和read调用相对应的jtag_write和jtag_read的函数如下(这两个函数实现了JTAG输入输出信号的具体操作过程):
Jam Player中调用该驱动时,在buffer中只提供TMS和TDI信号,如图5(a)所示。根据硬件设计,系统使用的是S3C24lO的GPB端口的7、8、9、10引脚,GPB数据寄存器(GPBDAT)的结构如图5(b)所示。所以将buffer[0]的内容写到GPBDAT寄存器时,需要左移7位;读取TDO信号时,仅需返回第10位数据。
4.2.4 JTAG在线配置的性能和时间
由于使用JTAG配置不支持配置信息的压缩形式,JTAG配置的时间只与目标芯片的型号有关,而与具体应用无关。我们在PC系统中已验证:一个源程序为10行的与门操作应用和一个源程序超过6 000行的IEEE802.16物理层实现的应用,在QuartusII中使用JTAG下载时,下载配置的时间相同。
根据上述嵌入式系统设计,Jam Player运行在基于S3C2410处理器的Linux环境中,时钟频率为200 MHz,一次配置EP2C70的时间约为70 s。在相同的Jam Player运行环境下,尽管不同应用的Jam文件的大小不同,其配置时间是一样的。要减少配置时间,可以有3种方法:一是提高运行Jam Player系统的CPU速率;二是修改JamPlayer源程序的代码,使其执行效率更高;三是根据自身系统设计,在满足JTAG引脚时序的前提下,减少驱动程序的延时操作。
结 语
本设计实现了一种基于ARM处理器的、在嵌入式Linux系统下通过FPGA的JTAG接口对其进行在线配置的方案。该方法设计简单,只需将JTAG的4个必需引脚连接;成本低廉,无需额外的配置芯片和设备(如AlteraEPC系列和EPCS系列);使用灵活,通过ARM对FPGA进行在线配置;系统无需重启就可动态更新FPGA应用。在我们的实验系统环境中,一次配置的时间约为70s。
参考文献:
[1].EP2C70datasheethttp://www.dzsc.com/datasheet/EP2C70_1438351.html.
[2].Devicedatasheethttp://www.dzsc.com/datasheet/Device_1397784.html.
fpga相关文章:fpga是什么
评论