基于FPGA的TigerSHARC DSP程序快速加载方法
2017-09-04贺莹,王闯
贺 莹,王 闯
(中航工业西安航空计算技术研究所,陕西 西安 710065)
基于FPGA的TigerSHARC DSP程序快速加载方法
贺 莹,王 闯
(中航工业西安航空计算技术研究所,陕西 西安 710065)
TigerSHARC DSP加载程序的传统方式是DSP上电后通过外部总线读取外部存储器中的程序数据,该方式加载程序速度慢,不能满足高速系统的使用要求。介绍了一种快速的DSP程序加载方法,采用FPGA读取外部存储器中的程序数据,并通过TigerSHARC DSP的高速Link口对DSP加载程序。与传统方式相比,该方法可有效提高程序加载速度,缩短系统启动时间。
DSP;FPGA;TigerSHARC;Link加载
0 引言
TigerSHARC DSP由于具有较高的处理运行速度、丰富的芯片资源及高速的Link通信接口,被广泛应用于高速数字信号处理等领域。在一些应用领域如导弹系统中,通常要求系统具有较短的程序加载启动时间,以保证能够快速进入工作模式,执行作战任务。TigerSHARC DSP加载程序通常采用主引导方式,即DSP作为主动方通过外部总线从EPROM或Flash中读取二进制程序文件。由于在程序加载阶段外部总线访问数据遵循慢速设备协议,导致DSP程序加载速度较慢,无法满足高速系统的使用需求。
本文提出一种基于FPGA的TigerSHARC DSP程序加载启动方法,利用FPGA灵活的接口特性、可配置的访问速度,同时借助DSP自身的高速Link通信接口读取外部Flash中的程序数据,实现DSP的程序加载,可有效提高程序加载速度,缩短系统启动时间。虽然这种方法目前仅在TigerSHARC DSP上进行了实现及验证,但这种思想具有普适性,完全可以应用到其他厂家型号的DSP 芯片上。
1 DSP程序加载过程
TigerSHARC DSP的程序加载过程可分为以下三个步骤:
(1)TigerSHARC自动启动一个DMA,自动把256字(32位字)传送到内部存储器的地址0X00~0XFF;
(2)执行上述256字指令(称为加载核[1]),加载核启动其他DMA把后续指令和数据加载到内部或外部存储器;
(3)加载核自我覆盖。
DSP加载程序通常的方法是通过DSP的外部总线从EPROM或Flash中读取二进制程序文件。由于在程序加载阶段外部总线访问数据遵循慢速设备协议,导致DSP程序加载速度较慢,无法满足高速系统的使用需求。
2 快速加载方法
图1 DSP程序快速加载方案
本文提出的程序快速加载方法利用FPGA作为传输中介,发挥TigerSHARC DSP的高速Link接口数据传输的优势,设计了一种TigerSHARC DSP程序快速加载启动方法。图1中数据通道①为传统程序加载方法[2]的传输路径,通道②和③为快速加载方法的传输路径。快速方法由FPGA通过DSP总线②读取Flash数据,在FPGA内部进行数据缓存,同时按照Link接口传输协议向DSP的Link接口③传送数据,从而实现DSP程序加载。
3 设计与实现
DSP快速加载启动方法实现原理如图2所示,FPGA主要实现DSP加载方式配置、Flash读取控制、数据缓存控制以及Link接口发送控制等控制功能。
图2 DSP快速加载启动方法原理图
3.1 DSP加载方式配置
TigerSHARC DSP的加载方式[3]是通过BMS管脚的状态进行控制的,在FPGA中将BMS管脚状态置为‘1’,配置其为从加载模式。
由于FPGA和Flash同时连接在DSP的外部总线上,FPGA需通过DSP的外部总线读取Flash数据,而DSP默认占用总线使用权,因此需要对DSP的外部总线访问权限进行控制。在FPGA中通过对DSP的HBR管脚状态进行控制,实现总线权限的获取和释放。DSP加载完成前将HBR管脚状态置为低,DSP释放外总线权控制权给外部设备;当FPGA读取Flash数据完成后,将DSP的HBR管脚状态置为高,将外总线控制权归还DSP。
3.2 Flash读控制
Flash读控制主要是对Flash的片选信号、复位信号、输出使能等控制信号进行控制。由于程序加载过程仅涉及对Flash的读操作,因此Flash写信号置无效态‘1’;Flash复位信号由DSP复位信号产生;Flash的片选使能信号(CE)和输出使能信号(OE)由Flash数据读取状态确定,DSP复位结束后CE和OE置为有效态‘0’,Flash数据读取完成后变为无效态‘1’。
3.3 FIFO缓冲控制
在FPGA内部开辟16×8的FIFO缓冲区对Flash读模块和Link接口发送模块之间的数据流进行缓冲。由于Link接口传输协议采样时钟为双沿采样,为使FIFO输出数据流能够直接注入Link接口发送模块以实现最快传输,FIFO读写时钟采用Link接口时钟的二倍频 (250/4)MHz。FIFO读写状态控制分别如图3所示。
图3 FIFO读写控制状态图
3.4 Link接口发送控制
Link接口发送控制是对LxCLKIN、LxCLKOUT、LxDAT、LxDIR等Link接口信号时序关系的控制,在FPGA中产生满足Link接口协议的发送时序[4]即可向DSP的Link接口发送数据,实现DSP程序加载。各信号的产生方法如下:
(1)LxCLKOUT信号为Link发送数据的参考时钟,时钟频率配置为Link接口默认频率(250/8)MHz;
(2)LxCLKIN信号为DSP端Link接收端口的应答信号,高表示可以接收数据,低表示不能接收数据,FPGA中通过对该信号的监测判断DSP端Link接口是否允许发送数据;
(3)LxDAT信号为待发送的数据,共8位数据线,从FIFO缓冲区读出;
(4)LxDIR信号代表信号传输方向,FPGA中置为‘1’,设置FPGA为发送方。
4 性能比较
在实际系统中,TigerSHARC DSP使用AD公司的ADSP-TS101, Flash采用SM29LV160,FPGA采用XC2V3000。直接加载方法中,外部总线时钟频率为50 MHz,读取一个数据(1 B)需要6个时钟周期(120 ns),传输1.96 MB的文件耗时约为246 ms。而FPGA最大传输延迟仅为数纳秒, SM29LV160芯片访问时间不大于70 ns,与高速微处理器接口时不需要等待状态,因而可根据需要灵活地控制时序,最大限度地提高传输速度。经测试,本文方案传输1.96 MB大小的文件耗时为86 ms。
5 结论
本文借助FPGA灵活的可配置特性,利用TigerSHARC DSP的高速Link接口,设计并实现了一种DSP程序的快速加载方法。实际测试表明,该方法可有效提高程序加载速度,缩短系统启动时间。该方法具有很好的普适性,只要修改相应的接口协议就能应用到其他芯片的配置上去。经多个工程实践验证,该方法有效、可行。
[1] LERNER B. ADSP-TS101S TigerSHARC processor boot loader kernels operation (EE-174) [EB/OL].(2003-04-01)[2017-02-16]http://www.analog.com/media/en/technical-documentation/application-notes/EE-174.pdf.
[2] 沈发江. 基于以太网的DSP网络加载技术研究[J]. 微型机与应用, 2013, 32(7):58-60.
[3] Analog Devices, Inc. ADSP-TS101 TigerSHARC processor hardware reference[EB/OL].(2004-05-01)[2017-02-16]http://101.96.8.165/download.analog.com/manuals/tigersharc/processorManuals/ts_101_hwr_rev11.pdf.
[4] 王鹏,连帅彬,孙秋菊,等.ADSP-TS101 高速全双工Link 收发器FPGA 设计[J].信阳师范学院学报,2015,28(2):259-262.
A fast loading method of TigerSHARC DSP based on FPGA
He Ying, Wang Chuang
(Xi’an Aeronautics Computing Technique Research Institute, AVIC, Xi’an 710065, China)
The traditional way of loading TigerSHARC DSP is to read the program data from external memory by local bus after DSP is powered on, which can not meet the requirement of high speed system. This paper introduces a fast DSP program loading method, using FPGA to read the program data from external memory, and then transferring the data to TigerSHARC DSP through its high speed Link port. Compared with the traditional method, this method can effectively improve the program loading speed and shorten the system startup time.
digital signal processor (DSP); field programmable gate array (FPGA); TigerSHARC; Link port loading
TP302.1
A
10.19358/j.issn.1674- 7720.2017.16.023
贺莹,王闯.基于FPGA的TigerSHARC DSP程序快速加载方法[J].微型机与应用,2017,36(16):82-83,91.
2017-02-16)
贺莹(1986-),女,硕士,工程师,主要研究方向:计算机系统结构、高速信号处理等。