新闻中心

EEPW首页>嵌入式系统>设计应用> 基于单片机软核的SOPC系统设计与实现

基于单片机软核的SOPC系统设计与实现

作者: 时间:2011-03-22 来源:网络 收藏

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)。

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的仿真一直是该技术中耗时最长的。在用实现系统集成时,由于多个IP核集成后系统仿真时间延长,占用了系统宝贵的开发时间,而USB IP核仿真时占用时间最长,因此开发两个模型:一个是USB HOST端的HDL行为模型,这个模型模拟了一个真实HOST的行为过程,如上电检测、速度识别、标准设备请求等过程,并且可以检测USB设备应答数据是否正确。另一个是8051 IP核的行为模型,用于仿真8051核的行为。把这两个模型与USB IP连接,在Modelsim软件包中进行仿真。实验证明效果很好,与直接用IP核集成方式仿真相比,时间减少了80%以上。
2.2.2 MC8051 IP核数据传输端口的选取

在考虑如何选取MC8051 IP核的数据传输端口时,有两种方案可供选择:一种是利用四组8位并行I/O端口作为主设备(MASTER)数据传送信号端口,它们的编程方式、时序、功能与8051的四个并行口p0、p1、p2、p3相似;另一种方案是利用该核特有的用于与RAM存储器传送数据的端口作为主设备端口;同时把RAM存储器接在WISHBONE总线的从设备端口,以使从设备与8051 IC核进行数据传输。后一种方案与前一种方案相比,优点是当设备已经被选中处于就绪状态时,只需要一条MOVX指令就可以完成对从设备的仿问(读、写操作)。而第一种方案至少需要先通过并行I/O端口输出地址、再输出数据或读入数据,至少需要两条以上传送指令,增加了数据传送时间。通过对代码的分析和仿真可以知道,使用第二种方案大大提高了运行速度(约为前一种的三倍),同时方便了系统的开发。

2.2.3 系统软件的运行方式

由于8051 IP核的指令执行从ROM中的0地址开始,因此需要把ASM5
1汇编程序先编译生成HEX文件,再把这个文件与硬件一起综合、映射、下载,这样该HEX文件就可以作为初始文件保留在ROM中,用来实现软硬件协同仿真。

2.2.4 仿真库的选取

有些软件包不含所有的FPGA器件的单元库(Logic Cell Library),如ActiveHDL6.1。因此仿真时常报库单元不存在错。设计中采用的办法是用Modelsim仿真,并且提前编译好的仿真用的单元库。这样就很好地完成了逻辑门级仿真和时序级(布局布线后)仿真。

3 系统新增重要部分的设计及创新之处

由于水文测报的特殊性,常常需要传送大容量的文件,如图片、实时数据采集包等,同时有些数据需要备份、上传。原PCB板有UART、I2C等通信功能块,本文的集成除了开发上述功能模块IP核外,还增加了USB IP核的设计。在实际测试中,USB接口的使用大大提高了系统的数据传输速度,而且更方便、更灵活,大大提高了系统功能。


评论


相关推荐

技术专区

关闭