新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Verilog HDL的SDX总线与Wishbone总线接口转化的设计与实现

基于Verilog HDL的SDX总线与Wishbone总线接口转化的设计与实现

作者:时间:2017-06-05来源:网络收藏

随着微电子设计技术与工艺的迅速发展,数字集成电路逐步发展到专用集成电路(ASIC),其中超大规模、高速、低功耗的新型的出现,降低了产品的成本,提高了系统的可靠性。同时,各种电子产品的复杂度和现代化程度的要求也逐步提高,文中针对机载信息采集系统的可靠性、数据管理的高效性以及硬件成本的需求。设计实现了与的接口转化,完成了数据采集功能模块与协议之间的数据传输。

该设计主要采用硬件描述语言Verilog HDL在可编程逻辑器件上实现,由于数据采集功能模块繁多,而可以与任何类型的ROM或RAM相连,因此需在与数据采集模块中嵌入,使得整体设计简单、灵活,且数据能够高效、快速的传输。

  1 SDX总线协议

1.1 SDX总线结构

SDX总线属于非平衡配置的点对点和多点链路,站点类型分为主站和从站,其数据传输方式为非平衡配置的指令/响应方式。与国际标准化组织ISO制定的开放系统互联模型OSI/RM相比,参考模型只分为3层:物理层、数据链路层和应用层,如图1所示。

图1 SDX参考模型与OSI/RM的对应关系

本文引用地址:http://www.eepw.com.cn/article/201706/349077.htm

  1.2 字格式及其各位场的含义

SDX总线采用面向消息的传输控制规程作为通信协议,选用曼彻斯特Ⅱ双相电平编码,总线最大传输速率20 Mbit·s-1,字长为20位。总线传输速率20 Mbit·s-1时,每字占1μs.规定每次传输一个消息的过程应包括指令字、数据字和状态字几个部分。每种字的字长为20位,有效信息位为16位,每个字的前3位为单字的同步字头,而最后一位是奇偶校验位。同步字头的作用是标识每个字的开始,起字同步作用。奇偶校验采用奇校验,在发送端对16位有效位补齐,而在接收端进行奇校,用于检验字传输中有无错误。需要指明的是:无论是何种字类型,各场的数据总是高位(MSB)传输在先。

(1)指令字结构。
指令字只能由主站发送,它的内容指明主站要与哪个从站对话,规定了该次数据传输的地址方向和服务类型。其格式如图2所示。

图2 数据传输的地址方向和服务类型格式

方向和服务类型
1~3位:同步字头(SYN),前1.5位为101,后1.5位为000时标识指令字或状态字。
4~13位:10 bit远程模块地址(RA[9:0]),全0时为广播地址,其余为各远程模块地址。
14位:读写控制位R.该位为1时,表明主站要从被寻址的从站中读取数据;为0时,表明主站要从被寻址的从站中写入数据。
15~18位:当RA[9:0]为非全0时,EP[3:0]有效。需要强调的是:当RA[9:0]为非全0,端点地址为全0时,该地址为从站的系统管理访问地址。
19位:状态字指示位S,当该位为0时,表明有效字为指令字;当该位为1时,表明有效字为状态字。
20位:奇偶校验位(P),该字的奇偶校验位,奇校验有效。

(2)数据字结构。

数据字既可以由主站传送到从站,也可以由从站传送到主站。数据字的格式如图3所示。

图3 数据字格式

1~3位:前1.5位为101,后1.5位为111时标识数据字。
4~19位:16 bit长数据(DATA[15:0]),高位(MSB)传输在先。
20位:奇偶校验位(P),该字的奇偶校验位,奇校验有效。

(3)状态字结构。

状态字只能由从站发出,是对主站发出的有效命令的应证性信号,是通信中进行差错控制和流量控制的重要手段。状态字格式如图4所示。

图4 状态字格式
1~3位:同步字头(SYN),前1.5位为101,后1.5位为000时标识指令字或状态字。

4~13位:10 bit从站的地址(RA[9:0])。
14~18位:状态代码,表示响应模块的通信状态。
19位:状态字识别位(S),当有效字为状态字时,该位为1.
20位:奇偶校验位(P),该字的奇偶校验位,奇校验有效。

表1 状态代码描述

注释1,只有满足下列判据才认为传输中不存在错误:(1)字有效,这是指都以有效的同步字头开始,并且除去同步字头之外其余的都是有效的双相码,有效信息是16位,奇偶校验位一位,且奇校验。(2)消息有效,这是指在一次传输中,如果存在一个数据块,那么在指令字与数据字之间,在数据字与数据字之间,消息是连续的,不存在任何断裂的情况。(3)指令有效,这是指在指令字和数据字各场中不存在非法数据,同时发出的数据块长度应与设置长度相等。如果以上3个判据中有任何一个得不到满足,则消息错误位置位。

注释2,由于广播消息格式要求禁止从站发回状态字,为了解上一个广播指令是否已被从站有效接收,可使用专门的命令类型让某个从站发回状态字,如此位置成1,而且忙位置成0,即说明上一个指令的确是广播指令,已被该从站有效接收。

  2 Wishbone总线协议

Wishbone总线是一种内部总线协议。它可以将片内的各部分以及IP核等连接在一起,用来标准化各个独立部分的接口,以更加方便地架构SOC(Syctem-on-Chip)系统。其特点是结构简单、灵活,只需要少量的逻辑门即可实现,同时完全免费、公开。

Wishbone总线规范中,使用Master/Slave结构实现灵活的系统设计,MaSTer/Slave有4种互连方式,分别为点对点、数据流、共享总线和交叉互连。且Master和Slave之间使用握手协议,当准备好数据传输时,Master使STB_O有效,且一直保持到Slave的响应信号ACK_O,ERR_O,或RTY_O之一有效。Master在每个时钟的上升沿对响应信号采样,若该信号有效,则置低STB_O,如图5所示。

图5 握手时序

2.1 Wishbone总线基本传输周期

Wishbone总线支持完整的普通数据传输协议,包括单个读写周期、块读写周期等。数据总线宽度为8~64位,地址总线宽度最高可达64位。Wishbone数据总线和地址总线分离,在传输上,保持一个地址、一个数据的传输结构。以下为Wishbone总线单次读、写时序图。图6为单次读周期时序,图7为单次写周期时序。

图6 单次读周期时序

图7 单次写周期时序

3 系统设计与实现

系统所有控制逻辑均在Altera的CycloneⅢ系列(EP3C40F)上实现。FPGA的信号线只有系统时钟、串行输入数据,由于SDX总线中传输数据为曼彻斯特码型,因此需将曼彻斯特码解码为BCD码同时将串行输入数据转化为并行数据,将转化后标准的16位并行BCD码输入SDX模块对SDX协议响应,将需要数据读、写的消息响应同时产生数据读、写以及地址信号并发起Wishbone总线操作,实现在Wishbone总线上高效的数据传输。Wishbone总线主要使用点对点的互联方式,将Wishbone总线中Master模块中的输出信号直接连接到Slave模块,其优点是多个数据可以并行处理,从而提高系统的整体数据处理能力。系统的整体设计框图如图8所示。

图8 系统的整体设计框图

  4 仿真结果分析

为验证设计系统的性能,使用Modelsim6.2仿真软件对系统功能进行了仿真测试。

图9为Wishbone总线写操作,且为单字写传输,在时钟上升沿,Master将DAT_O、ADR_O信号放到数据、地址总线上,将CYC_O、STB_O、WE_O置高表示写传输开始,在下一个时钟沿到达之前,Slave检测到Master发起的操作,将ACK_O、ERR_O、RTY_O之一置高并传输到Master中,若Master检测到ACK_I为高时,在下一个时钟的上升沿将CYC_O、STB_O置低表示操作完成,若ERR_I为高,则表示该操作错误,取消此操作,进行下一步操作,若RTY_I表示Slave总线忙,则重试。

图9 Wishbone写操作仿真图

图10为Wishbone总线读操作,且为单字读传输,在时钟上升沿,Master将ADR_O信号放到地址总线上,WE_O保持为低,同时将CYC_O、STB_O置高表示读传输开始,在下一时钟沿到达之前,Slave检测到Master发起的操作,将ACK_O、ERR_O、RTY_O之一置高并传输到Master中,同时将适当的数据传输到Master的DAT_I中,若Master检测到ACK_I为高时,在下一个时钟的上升沿将CYC_O、STB_O置低表示该次读操作完成,若ERR_I为高,则表示该操作错误,则取消此操作,进行下一操作,若RTY_I表示Slave总线忙,则重试。

图10 Wishbone读操作时序图

  5 结束语

讨论了基于FPGA的SDX总线与Wishbone总线的接口转换,并介绍了不同总线的接口标准与时序,通过在Modelsim下的仿真,Quartus中综合,可下载到FPGA中进行调试,实现了系统的整体性能,从而保证了系统快速、高效的传输。



评论


相关推荐

技术专区

关闭