《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > FPGA中设计FSM实现TigerSHARC DSP link口加载
FPGA中设计FSM实现TigerSHARC DSP link口加载
来源:电子技术应用2010年第9期
夏际金, 方志红
中国电子科技集团 第38研究所, 安徽 合肥230031
摘要: 介绍了一种在FPGA中实现的有限状态机FSM,可以通过link口对TigerSHARC信号处理器进行程序加载。通过信号处理器系统的处理器之间的link互联结构,FSM可实现对整个信号处理系统的加载功能。在FPGA中设计加载状态机及信号处理系统与其他系统的接口,使信号处理系统更加简单、高效。
中图分类号: TP302
文献标识码: A
文章编号: 0258-7998(2010)09-0142-03
Realization of booting TigerSHARC DSP through link port by designing FSM in FPGA
XIA Ji Jin, FANG Zhi Hong
No.38th Research Institute, China Electronic Technology Group Corporation, Hefei 230031, China
Abstract: An FSM in FPGA for booting TigerSHARC processor through link port is implemented in this paper. The FSM can boot the whole signal processing system through link port between TigerSHARC processors. The signal processing system is simpler and higher efficiency by designing booting FSM and interface between signal processing system and other systems in FPGA.
Key words : FPGA; finite state machine(FSM); TigerSHARC; link boot

    TigerSHARC系列处理器是ADI公司推出的高性能数字信号处理器,包含ADSP TS101、ADSP TS201、ADSP TS202、ADSP TS203。TigerSHARC系列处理器的link 口为处理器提供了快速、独立的通信机制。link口的特点是点对点通信、协议比较简单、数据率较高,因而可以通过link口实现多片处理器构成处理器系统。
    TS101的link口和TS20X系列处理器的link口有所不同。TS101的link口采用8位双向数据线和三根控制线构成,采用TS101 link协议可实现双工通信;而TS20X系列处理器的link口采用LVDS技术(4 bit收、4 bit发),实现全双工通信。
    尽管TS101的link口和TS20X的link口在物理和协议方面都不一样,但在应用上都可以实现数据的通信以及处理器的加载功能。
1 信号处理系统结构
    典型的采用TigerSHARC处理器的信号处理板连接方式为:板(簇)内采用CLUSTER总线实现处理器连接,板间采用link口实现处理器连接。
    采用FPGA实现与TigerSHARC处理器link口的连接可提高信号处理系统与其他系统连接的灵活性。FPGA通过link口与信号处理系统连接,简化了信号处理板卡的设计;同时由于FPGA灵活性及丰富的接口资源,可以很方便实现与其他系统的连接。
    采用FPGA加载信号处理系统,只需修改与FPGA连接的Flash中的程序就可以实现配置信号处理器系统中各处理器的程序。在加载完后,FPGA还可以作为信号处理系统的接口板,使系统设计更加简单、高效。
    本文介绍一种基于FPGA通过link口加载由TS101构成的信号处理系统的方法。
    FPGA加载板和TigerSHARC信号处理系统连接关系如图1所示。

    加载板采用EP2S60芯片作为处理器,外接128 MB Flash和36 MB SRAM。Flash用于存储处理器的加载程序,SRAM作为缓存。FPGA的4个link分别与TigerSHARC信号处理板上4个DSP的link0相连,信号处理板上4个DSP的link2分别与下一个信号处理器的4个DSP的link0相连。采用这种方法连接多块信号处理板构成一个信号处理系统。
    TigerSHARC处理器每个link口都可以作为加载的端口,只需在Kernel程序中将LINK号改成对应的link口。
2 加载文件结构
    TigerSHARC处理器link口加载文件结构如图2所示。加载文件由加载核、若干Zero init或Non-zero init加载数据块及Final init数据块构成。加载核没有数据块头信息,Zero init 和Non-zero init数据块头都有1个标签字和1个目的地址,Final init数据块只有1个标签字。标签字各数据位的意义如图3所示。由于link口的连接特点,link加载核不支持多处理器加载,因而link加载方式中不使用ID。标签字的TYPE和COUNT指示了该块数据的类型和长度。TigerSHARC加载文件以32 bit word为单位构成(本文的word即指32 bit word)。

3 加载状态机的设计与实现
    由于Flash的读写周期较长,设计中采用系统时钟16分频作为FPGA中Flash控制器的时钟。直接从Flash中读取数据无法保证DSP加载核(BOOT Loader Kernel)对程序数据的数据率要求,因而在设计中先将Flash中的数据转存到与FPGA相连的SRAM中。SRAM读出数据为32 bit,读写SRAM的数据率可以大大超过link口的吞吐率。FPGA中开辟2块RAM作为乒、乓RAM缓存从SRAM中读取数据,以保证FPGA发送link的数据保持在就绪状态,DSP加载核在任何时候取数,FPGA link都能提供有效数据。
    FPGA发送到link模块的信号为TxWrite、TxData、TxBP。加载状态机根据TxBP信号来判断link口缓冲当前状态是忙还是空闲,只要为空闲状态就往link缓冲中写数据,从而保证了DSP加载核总能获取有效数据。
3.1 加载状态机的设计
    FPGA中加载有限状态机状态转换示意图如图4所示。

    状态说明:
    S0:BootLoader Kernel State;S1:数据块类型判断;S2:Non-zer init State;S3:Zero init State;S4:Final init State;S5:结束。
    当需要加载时复位加载状态机,在复位时设置计数器值。复位后,状态机就进入了S0状态。
    S0状态为发送DSP Boot Loader Kernel给需要加载的DSP,长度为256 words。在该状态下,link口需要发送DSP Boot Loader Kernel给需要加载的DSP,数据发送完后(数据块计数器count_packet为0),状态转入S1。
    S1状态为上一数据块结束,下一数据块将要开始发送的一个中间过渡状态。在该状态下判断下一数据块的类型,并计算下一数据块的长度。根据标签字Tag Word的TYPE值转换到S2、S3、S4中的某个状态。
    当S1状态下TYPE为1时,状态机转入S2。DSP收到这块数据后,进入Non-zero init模式。S2状态只需发送该数据块,不需要对数据进行Non-zero init处理。该模式下,link口需要发送的数据为该数据块标签字的COUNT值加上数据块头的长度即2 words。该数据块发送完后(数据块计数器count_packet为0),状态转入S1。
    当S1状态下TYPE为2时,状态机转入S3。DSP收到这块数据后,进入Zero init State模式。该模式下加载程序数据块只有数据块头,即标签字和目的地址2 words,后面即为下一个数据块头。此时,状态机只需发送这个数据块头,不需要进行Zero init处理。该数据块发送完后(数据块计数器count_packet为0),状态转入S1。
    当S1状态下TYPE为0时,状态机转入S4。相应地,DSP进入到Final init模式,完成加载核的自我覆盖。此时状态机要发送的有效数据长度为257 words,即1 word Final init标签字和256 words加载核自我覆盖程序。当发送完Final init加载数据,有效的加载程序已经发送完。需要注意的是,加载核在取link口数据是启动DMA传输的,而link口至内/外部存储器的DMA是以4字组方式传输,因而当程序不是4字对齐时,发送的加载程序长度须以4字补齐。加载状态机会根据加载文件自动完成4字补齐,发送的长度为将程序4字补齐后的长度,以满足link口DMA的时序要求。
    当S4状态下数据块计数器count_packet为0时,状态机转入S5,加载1个DSP结束。
    当状态机转入S5时,FPGA 的加载状态机已实现了通过link口对DSP的加载过程。为了实现信号处理系统中所有板卡的加载,第一块信号处理板要完成对第二块信号处理板卡的加载。link板卡的级联关系见图1,FPGA加载完第一块板的DSP后,等待DSP运行起来,而后通过link口发送第二块板的加载程序给第一块板。第一块板收到第二块板的加载程序后,可以实现对第二块板的加载。采用同样的方法就可以实现级联的每块板卡的每个DSP的加载功能。
3.2  Signal Tap采集加载过程
    采用Signal Tap采集加载开始、中间状态转换和加载结束的结果分别如图5~7所示。图中各信号的意义如下:
    boot_dsp0_en、boot_dsp1_en:分别是加载第一块信号处理板DSP0、DSP1的使能信号。
    txdata、txwrite_ba_int、txbp:分别是link模块控制端输入数据、写控制信号、缓冲满信号count_packet的数据块计数器。
    TAG_COUNT、TAG_TYPE:分别是标签字的COUNT和TYPE值。
    STATE_FSM:状态机的当前状态。
    rst_state:状态机复位控制信号。
    l0_lxdata、l0_lxclkout、l0_lxclkin:分别是FPGA的link0端口接口数据、时钟/应答输出、时钟/应答输入。
    图中采样时钟为link模块输入时钟,1个周期link口发送1 B数据。由于状态机采用的是边发送link数据边解译加载数据的方法,因而状态机状态转换过程要滞后发送数据4个周期(1 word),通过在发送DSP Boot Loader Kernel这个状态计数值多4个字而在Final Init过程计数值少4个字来实现对齐。
 图5为加载开始,STATE_FSM状态为0,此时FPGA发送DSP Boot Loader Kernel给TigerSHARC DSP。加载开始时计数值为0x403 bytes,共发送0x404 bytes数据。如前所述,在发送DSP Boot Loader Kernel时比其实际长度0x400 bytes多4 bytes。

   图6为加载中间加载过程,STATE_FSM状态依次为3、1、3、1、2。当STATE_FSM为第一个1时,TAG_TYPE为2、TAG_COUNT为3,标志下一个状态为Zero init State。此状态下FPGA需要发送2 words, 因而count_packet为0x6(count_packet为0占了2个周期)。当STATE_FSM为第二个1时,TAG_TYPE为1、TAG_COUNT为4,标志下一个状态为Non-zero init State,此状态下FPGA需要发送4 words数据和2 words数据块头,因而从此时count_packet为0x16(count_packet为0占了2个周期)。

    如图7所示,当STATE_FSM为4且计数值为0时,STATE_FSM转为5、boot_dsp0_en从1变为0,此时加载DSP0结束。DSP0加载结束后FPGA产生一个状态复位信号rst_state使状态机复位,而后boot_dsp1_en从0变为1,开始加载DSP1。采用同样的方法就可以实现加载DSP2、DSP3。

 本文介绍了一种采用FPGA加载TigerSHARC DSP的方法。在FPGA中设计的FSM可根据加载文件的结构自动实现加载功能,通过TigerSHARC DSP link互联关系可实现对整个信号处理系统的加载。此外,还介绍了加载状态机的设计方法,并采用Signal Tap采集加载状态机几个典型的加载过程,验证了加载状态机的设计。
参考文献
[1]  Analog Devices Inc. ADSP-TS101S TigerSHARC proces  sor boot loader kernels operation (EE-174) [EB/OL].http://www.analog.com, 2003.
[2]  刘书明,苏涛,罗军辉. TigerSHARC DSP 应用系统设计 [M]. 北京:电子工业出版社,2004:147-170.
[3]  刘书明,罗勇江. ADSP TS20XS系列DSP原理与应用设计[M]. 北京:电子工业出版社, 2007:168-192.
[4]  Analog Devices Inc. TigerSHARC embedded processor  ADSP TS101S data-sheet, Rev. A [EB/OL]. http://www.analog.com, 2003.
[5]  Analog Devices Inc. TigerSHARC embedded processor  ADSP TS201S data-sheet, Rev. C [EB/OL]. http://www.analog.com, 2006.
[6]  Analog Devices Inc. ADSP-TS101 TigerSHARC processor  hardware reference, Rev1.0 [EB/OL]. http://www.analog.  com, 2003.
[7]  Analog Devices Inc. ADSP-TS201 TigerSHARC processor   hardware reference, Rev1.1 [EB/OL]. http://www.analog.  com, 2004.

此内容为AET网站原创,未经授权禁止转载。