随着微电子工艺技术和IC设计技术的不断提高,整个系统都可集成在一个芯片上,而且系统芯片的复杂性越来越高。为了提高效率,复用以前的设计模块已经成为系统世馘 ( SOC )设计的必上之路。SOC的实现基本上有两种方法,一种是用ASIC芯片实现,另一种是FPGA或PLD芯片实现。后一种实现也称为SOPC实现。SOPC技术是美国ALTEra公司于2000年最早提出的,即用大规模可编程器件实现SOC的功能。它为SOC的实现提供了一种简单易行而又成本低廉的手段,极大地促进了SOC的发展。本文设计就是采用SOPC技术,在一块FPGA芯片上,实现一个水文测报通信系统。该系统是专门为国家防汛指挥系统项目而开发的实时多任务的前置通信控制机,用于实现水文数据的传输、处理和存储。
国家防汛指挥系统工程启动之后,对水文测报网络中的通信控制机性能提出了更加苛刻的要求:更多、更快速的通信端口;更大的存储容量;更高的可靠性;更强的实时性;更强的可操作性;更便捷的应用程序开发
平台。为了实现这些要求,以前曾采有传统的 单片机 系统完成这项工作,但这些方法存 几大缺陷:(1)系统占用面积比较大;(2)管脚的数量比较多,因而电路板问题引导发故障较多;(3)电路板信号传送之间存在干扰,系统运行速度难以达到要求。针对这些问题,本文采用SOC设计方式,进行软硬件协同设计,把整个可复用的内核如8051 IP 核、USB IP核、UART IP核等集成在一块FPGA芯片上,用WISHBONE总线构成一个完整的片上通信系统。实验结果证明:该系统所占用的面积缩小为原来的四分之一,管脚数量减少了三分之一,系统运行的速度也提高了。USB IP核的速度可以达到60MHz,完全满足设计要求。
1 系统实现方案
1.1 系统结构说明
本设计采用ALTERA公司的开发平台,即在一块ALTERA公司的Cyclone系列FPGA芯片上构建SOPC系统。芯片内部IP核的结构示意图如图1所示。
图中,系统核心8051 IP核采用的是第三方的图件,遵守GPL协议的公开源代码,指令体系与标准的8051兼容,全同步设计,并且通过修改包含了测试器接口;源代码由VHDL语言写成,拥有良好的注释及可扩展性。其它IP核如UART IP核、I2C IP核、USB IP核等都是自行设计的;图中总线采用的是WISHBONE片上总线。
1.2 系统功能的实现
系统的主要功能是数据传输。从图1所示的结构图可见,内部数据传输采用的是总线结构,所有的设备都是通过总线进行数据传送的,因此设计的核心是总线数据传输。本文设计采用的是SILICORE公司的WISHBONE片上总线标准。片上总线(On-Chip Bus,OCB)是实现SOC中IP核连接最常见的技术手段,它以总线方式实现IP核之间的数据通信。与板上总线不同,片上总线不用驱动底板上的信号和连接器,使用更简单,速度更快。WISHBONE是一种主/从结构的总线,所有的IP核挂接在WISHBONE总线上,其规范是一种片上系统IP核互连体系结构。本系统选取8051 IP核为主,其它IP核为从,主/从IP核通过握手信号使数据在WISHBONE总线上进行交换。
下面详细说明WISHBONE总线功能的实现。WISHBONE主设备核(8051 IP)与WISHBONE从设备核(USB IP核、UART IP核、I2C IC核等)端口信号连接图如图2所示;主设备核读取从设备核数据的时序示决图如图3所示。写操作时序与之类似。
WISHBONE连线示意图中只画出一个主设备核和一个从设备核,实现情况可挂接多个主设备和从设备。本文采用了一主多从的结构,即一个主设备核(8051 IP核)控制总线,与多个从设备核(UART IP核、USB IP核等)进行数据传输。WISHBONE总线连接线可分为:同步信号线CLK-I;设备地址线ADR;主IP核到从IP核的数据输出线DAT_O,从IP核到主IP核的数据输入线DAT_I;控制线SEL、STB、CYC、ACK;附加线TAGN(用户可以自行定义,本文定义了定信号线WE)。
www.55dianzi.com
WISHBONE的数据传输由主设备控制,采用握手信号STB-O和ACK-I控制传输过程,如图4所示。
以本文设计为例,一个WSIHBONE总线读周期的详细过程可分解如下:
(1)运行8051汇编程序,8051 IP 核(主IP核)使CYC-O为高,表示8051 IP核占用总线;同时送出SEL-O信号选取从设备核(SEL-O信号线电平定义从设备核地址;本文中UART IP核地址为0001、I2C IP核地址为0010、USB IP核地址为0101;假设SEL-O送出的信号线电平为0101,即USB IP核被选中),同时发出STB-O握手信号通知从设备核送出数据。
(2)USB IP核收到选中信号和STB激励信号后,把数据放在数据线上,并送出ACK信号表明设备准备好。
(3)8051 IP核收到ACK信号,从数据线上读取数据。
(4)数据读出后,8051 IP核把STB信号置低,通知从IP核数据已读出。
(5)USB IP核收到STB低电平信号,把ACK置低,一个数据传送周期结束。
写周期与以上过程类似,不同之处在于8051核收到ACK高电平信号后才把数据放在数据线上,由从IP核来读取。
2 系统设计方法与关键技术
2.1 系统设计方法
系统设计采用的核心工具软件:设计输入编程器及仿真工具——ActiveHDL6.1,逻辑综合工具——Synplify Pro 7.6结构综合工具——QuartusII v4.1,仿真工具——Modelsim 6.0 SE。Active DHL+Synplify+Quartus I工具链提供了从源代码输入到FPGA实现整个流程的核心开发平台。
SOC 的设计、仿真和验证确实是一个纷繁复杂的过程。在实际运行中,采用IP核分别设计然后再整合在一起的方法来进行:先进发单个IP核,仿真、下载到FPGA板进行测试,所有的IP核均满足设计要求后,再挂接到WISHBONE总线上进行仿真与验斑点。由于整体仿真成功的几率太小,而且每次仿真占用的时间太长,因此设计中采用循序渐时的方法。实际上,每个IP核都有自身的特殊性,分别开发也是必然的。例如开发USB IP核时,就要单独开发主机端(PC机)驱动程序及8051汇编接口。
2.2 关键技术
2.2.1 系统集成时仿真时间过长的解决
SOC的仿真一直是该技术实现中耗时最长的。在用SOPC实现系统集成时,由于多个IP核集成后系统仿真时间延长,占用了系统宝贵的开发时间,而USB IP核仿真时占用时间最长,因此开发两个模型:一个是USB HOST端的HDL行为模型,这个模型模拟了一个真实HOST的行为过程,如上电检测、速度识别、标准设备请求等过程,并且可以检测USB设备应答数据是否正确。另一个是8051 IP核的行为模型,用于仿真8051核的行为。把这两个模型与USB IP连接,在Modelsim软件包中进行仿真。实验证明效果很好,与直接用IP核集成方式仿真相比,时间减少了80%以上。
www.55dianzi.com
2.2.2 MC8051 IP 核数据传输端口的选取
在考虑如何选取MC8051 IP核的数据传输端口时,有两种方案可供选择:一种是利用四组8位并行I/O端口作为主设备(MASTER)数据传送信号端口,它们的编程方式、时序、功能与8051 单片机 的四个并行口p0、p1、p2、p3相似;另一种方案是利用该核特有的用于与RAM存储器传送数据的端口作为主设备端口;同时把RAM存储器接在WISHBONE总线的从设备端口,以使从设备与8051 IC核进行数据传输。后一种方案与前一种方案相比,优点是当设备已经被选中处于就绪状态时,只需要一条MOVX指令就可以完成对从设备的仿问(读、写操作)。而第一种方案至少需要先通过并行I/O端口输出地址、再输出数据或读入数据,至少需要两条以上传送指令,增加了数据传送时间。通过对代码的分析和仿真可以知道,使用第二种方案大大提高了运行速度(约为前一种的三倍),同时方便了系统的开发。
本文关键字:单片机 综合-其它,单片机-工控设备 - 综合-其它
上一篇:在SoPC上实现的波形发生器