0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于高性能主从模式动态可重构的SPI IP核的设计

电子设计 来源:网络整理 作者:工程师吴畏 2018-06-14 15:26 次阅读

0 引言

随着集成电路设计的快速发展,系统芯片(System-on-a-Chip,SoC)的集成度越来越高,从而对信号之间交流的要求也变高[1-2]。由于串行外设接口(Serial Peripheral Interface,SPI)总线协议具有全双工模式、占用I/O端口少、协议灵活等优点,在实时时钟AD转换器数字信号处理器和数字信号解码器之间得到了广泛应用[3-4]。

目前,SPI IP核已经成为SoC的标准配置,相关人员也做了很多研究。例如,周雪荣等人面向AD9222设计的一款SPI模块[5],可以配置为主机模式且符合AD9222芯片的接口时序;汪永琳等人设计的SPI接口[6],实现了SPI主从机之间数据的双向传输且满足三线半全工工作方式;李大江等人基于FPGA的SPI总线设计[7],分别设计了主机和从机。上述SPI设计可以适用于不同的应用场合,但是在SoC中进行通信时,不具有主从模式下动态可重构的能力。因此,本文根据SPI总线协议,设计了一种主从模式动态可重构,支持四线全双工,允许七种时钟传输速率的SPI IP核,并对其逻辑资源消耗和功耗问题进行了优化。

1 SPI工作原理

SPI总线协议是由Motorola公司首先提出的,主要应用于单片机系统中短程通信的同步串行通信接口规范[8]。SPI总线协议规定,它以主机或从机方式工作,主从机之间的数据传输存在4种数据传输模式并由cpol(时钟极性)和cpha(时钟相位)来控制,如表1所示。当cpol=0时,sclk的空闲电平为0;当cpol=1时,sclk的空闲电平为1。当cpha=0时,在空闲状态到有效状态边沿采集数据;当cpha=1时,在有效状态到空闲状态边沿采集数据[9]。

关于高性能主从模式动态可重构的SPI IP核的设计

在SoC中SPI IP核的传统连接方式如图1所示。通信过程中,SPI通过片上总线将CPU核传输的并行数据转换为串行数据,与从机进行数据交换;并把从机传输的串行数据转换成并行数据,通过片上总线发送给CPU核[10]。对SPI从机来说,它会在被主机选中的情况下与主机进行数据的传输[11]。

关于高性能主从模式动态可重构的SPI IP核的设计

2 SPI IP核设计

2.1 模块划分和接口定义

2.1.1 模块划分

根据SPI功能的不同,将所设计的SPI IP核划分为如图2所示的3个模块:寄存器配置块(Register Configuration Block,RCB)、数据传输块(Data Transfer Block,DTB)和错误中断块(Fault Interrupt Block,FIB)。RCB由CPU核对其进行配置,如主从模式、时钟极性和时钟相位等;DTB根据配置的信息来进行主从机间的数据传输;FIB在出现模式错误(例如当SPI配置为主机时,从机选择端口被拉低)、读写冲突等问题时会向CPU核发出中断请求。

关于高性能主从模式动态可重构的SPI IP核的设计

2.1.2 端口定义

nwr和nrd分别是写使能和读使能端口;addr是地址端口;idata和odata分别是数据输入和输出端口。当地址有效时,数据输入和输出端口根据读写使能的配置来进行数据的输入和输出操作。spen、mstr、cpol和cpha 4个端口依次是SPI使能端、主从机配置端、时钟极性和时钟相位端,使得对SPI IP核进行配置更加直接和方便。

misoo、misotri和misoi 3个端口与一个三态缓冲器连接,以提供一个外部双向端口miso,外部双向端口mosi和sclk原理相同。这些双向端口在有限状态机模块的控制下被配置为不同的传输方向,以此来解决主机模式和从机模式下数据传输端口传输方向相反的问题。miso在从机模式下发送数据,在主机模式下接收数据;mosi在主机模式下发送数据,在从机模式下接收数据;sclk在主机模式下发送时钟,在从机模式下接收时钟。同时,SPI IP核通过复用一个移位寄存器就可以完成主机和从机模式下的数据传输,实现了主从模式可配置的能力并节省了芯片面积。ssn是从机选择端口,配置为从机时才使用,低电平有效。

int是中断控制端口,当数据传输完成或SPI被配置为主机而ssn(从机选择)端口为低电平等情况时,FIB模块就会产生中断请求。

2.2 电路设计

2.2.1 SPI可重构电路状态机的设计

SPI可重构电路状态机的设计,如图3所示。当复位信号有效或者SPI使能端口spen被配置为低电平无效状态时,可重构电路状态机就会处于空闲状态。此时,可向主机模式或从机模式进行转移。

关于高性能主从模式动态可重构的SPI IP核的设计

转移为主机模式时,首先需要把mstr端口配置为1。然后,有两种情况可以转移到主机模式:(1)配置从机选择端口无效位ssdis为高电平有效状态;(2)配置ssn端口为高电平无效状态。

转移为从机模式时,首先需要把mstr配置为0。然后,有3种情况可以转移到从机模式:(1)当配置cpha为高电平时,并配置ssdis位为有效状态,此种情况适用于只有一个从机下的数据传输;(2)当配置cpha为高电平时,检测到ssn端口为低电平;(3)当配置cpha为低电平时,检测到ssn端口的下降沿。

当状态机从空闲状态已经过渡到主机或者从机模式时,就会判断数据的传输是否完成,当传输未完成时,就会保持在当前状态;当传输已完成时,就会转移到空闲状态。此外,当前模式出现错误时,也会转移到空闲状态。SPI可重构电路状态机如图3所示。

由状态转移图可知,此SPI IP核可实现空闲状态、主机模式和从机模式之间的状态转换,具有在线动态可重构的特性。

2.2.2 时钟分频

主机模式下的串行时钟由7位计数器、数据选择器和D触发器组成的时钟分频模块产生,如图4所示。

关于高性能主从模式动态可重构的SPI IP核的设计

输出时钟sclko取决于CPU核对控制寄存器的配置,当对控制器寄存器相应的三位配置都为1时,sclko的值为cpol的值,不产生时钟,其他情况均对时钟有分频作用。因此,此时钟分频模块可对系统时钟产生7种分频,如表2所示。

关于高性能主从模式动态可重构的SPI IP核的设计

3 仿真与验证

3.1 仿真平台搭建

为了方便验证此SPI IP核的正确性,设计了模拟CPU核功能的发送接收模块、验证IP核(Verification IP,VIP)模块和数据比较模块等。发送接收模块产生指令和数据对SPI IP核和VIP模块进行配置。配置完成后,SPI IP核和VIP模块进行主从机之间数据的传输;传输完成后,发送接收模块分别读取SPI IP核和VIP模块传输的数据。最后,比较模块从CPU核读取所传输的数据并验证数据的正确性。仿真原理如图5所示。

关于高性能主从模式动态可重构的SPI IP核的设计

3.2 仿真及结果分析

最后,使用NC-Verilog对其进行仿真验证,主从模式下的仿真时序如图6所示。首先,通过发送接收模块对SPI IP核的控制寄存器依次写入h’10和h’50(配置SPI为主机模式,SPI接口有效)。同时,配置VIP模块为从机。然后,设置主机要发送的数据为h’aa,从机要发送的数据为h’55,在sclko(对clk时钟2分频)时钟频率下,主机的mosio(主机输出,从机输入)端口串行发送数据h’aa,misoi(主机输入,从机输出)端口串行接收数据h’55,传输完成后读取状态寄存器的值为h’80(传输完成),读取数据寄存器的值为h’55(传输成功)。然后,对控制寄存器写入h’40(配置SPI为从机,SPI接口有效)。同时,配置VIP模块为主机,ssn(从机选择端口)变为低电平有效状态。在sclki(对clk时钟4分频)时钟频率下,从机的miso(从机输出,主机输入)端口串行发送数据h’55,mosii(从机输入,主机输出)端口串行接收数据h’aa,传输完成后读取状态寄存器的值为h’80(传输完成),读取数据寄存器的值为h’aa(传输成功)。

关于高性能主从模式动态可重构的SPI IP核的设计

主机模式下不同时钟速率下的数据传输如图7所示。图中给出了对clk时钟2分频时,主机发送数据为h’aa,接收数据为h’55;对clk时钟4分频时,主机发送数据为h’55,接收数据为h’aa;对clk时钟8分频时,主机发送数据为h’aa,接收数据为h’55等情况下的数据传输情况。在不同分频模式下,数据传输能正常传输且结果正确。

关于高性能主从模式动态可重构的SPI IP核的设计

仿真结果表明:此SPI IP核符合SPI总线协议并且满足设计规范的要求。综合结果显示:在0.13 μm工艺下消耗1 062个逻辑门,在系统工作频率80 MHz下的功耗约为0.395 7 mW。

4 结论

本文根据SPI总线协议设计了一种高性能主从模式动态可重构的SPI IP核,并对该IP核的模块划分、接口定义和可重构电路状态机等进行了详细描述。结果显示,此设计符合SPI总线协议,实现了7种时钟分频,支持4种数据传输模式;在保证功能和性能情况下,逻辑资源消耗更少、功耗更低。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • soc
    soc
    +关注

    关注

    38

    文章

    3739

    浏览量

    215599
  • SPI接口
    +关注

    关注

    0

    文章

    249

    浏览量

    33923
  • IP核
    +关注

    关注

    4

    文章

    317

    浏览量

    49037
收藏 人收藏

    评论

    相关推荐

    支持过程级动态软硬件划分的RSoC设计与实现

    。实验表明该系统能够较好的支持过程级的动态软硬件划分,实现了节省资源、简化设计,提高性能等目的。【关键词】:重构片上系统;;动态软硬件划分
    发表于 05-28 13:40

    基于xilinx ISE的动态重构

    大家好有谁对FPGA的动态重构有研究吗?本人现在在搞这块寻人共同探讨。。。谢谢
    发表于 03-10 16:03

    基于PAD的接收机动态重构结构应用

    和ASIC电路高速性的解决方案。在笔者所从事的系统设计中,当模拟器件的一些性能改变但又不能及时更新调整后端的数字基带处理时,比如滤波器由于工作时间过长引起的温漂特性所带来的影响,此时就可以用可编程模拟器件替代一部分前端固定模拟器件,进而可以实时的对FPGA模块进行动态
    发表于 07-10 07:56

    如何设计8段数码管动态显示IP

    时,Builder开发工具中没有提供现成的数码管显示IP,这使设计者工作量增加。这里把数码管控制器设计为一个共阴极(或共阳极)7段数码管动态显示IP
    发表于 08-09 06:09

    怎么设计PAD在接收机动态重构结构中的应用?

    重构结构是一种可以根据具体运算情况重组自身资源,实现硬件结构自身优化、自我生成的计算技术。动态重构技术
    发表于 08-13 07:56

    扩展的高性能RISC-V 内核IP

    SiFive推出的SiFive U8系列核心IP是一种面向现代SoC设计具有扩展性、高性能的微架构。SiFive U8系列是当今商用化基于RISC-V指令集架构中性能最高的内核
    发表于 08-13 15:14

    如何降低重构系统的整体功耗?

    如何降低重构系统的整体功耗?有什么方法能使重构系统的性能和功耗需求之间达到平衡?
    发表于 04-08 07:09

    重构体系结构分为哪几种?动态重构系统有哪些应用实例?

    重构体系结构分为哪几种?典型动态重构系统结构有哪几种?动态
    发表于 04-28 06:13

    怎么实现基于FPGA的动态重构系统设计?

    本文提出的通过微处理器加FPGA结合串行菊花链实现重构的方式,实现了动态重构FPGA结构设计的一种应用。
    发表于 05-10 06:22

    满足高性能数字接收机动态性能要求的ADC和射频器件有哪些?

    满足高性能数字接收机动态性能要求的ADC和射频器件有哪些?
    发表于 05-28 06:45

    关于STM32的SPI主从通信

    今天给大家分享一篇精文章,关于STM32的SPI主从通信,网上的最多分享的大多都是WQ25L128、SD、单个字节的SPI传输以及单个字节接收发送中断的例子,这里,我给大家分享多个字节
    发表于 08-13 08:58

    STM32_ SPI主从通信

    STM32_SPI主从通信
    的头像 发表于 04-08 10:54 6871次阅读
    STM32_ <b class='flag-5'>SPI</b><b class='flag-5'>主从</b>通信

    SD卡系列之spi模式---spi通信

    SD卡操作分为SPI模式与SDIO模式,这里选择SPI模式,DSP为SPI主机,SD卡为从机,本
    发表于 12-22 19:35 14次下载
    SD卡系列之<b class='flag-5'>spi</b><b class='flag-5'>模式</b>---<b class='flag-5'>spi</b>通信

    CW32的SPI单工模式主从通信介绍

    CW32的SPI单工模式主从通信介绍
    的头像 发表于 10-24 15:50 400次阅读
    CW32的<b class='flag-5'>SPI</b>单工<b class='flag-5'>模式</b><b class='flag-5'>主从</b>通信介绍

    芯旺微KF8F3132开发板应用笔记之SPI-主从模式

    芯旺微KF8F系列单片机KF8F3132开发板应用笔记之SPI-主从模式
    发表于 10-19 16:21 0次下载