当前位置:首页 > 通信技术 > 通信技术
[导读]摘要:给出了一个可用于SoC设计的SPI接口IP核的RTL设计与功能仿真。采用AMBA 2.0总线标准来实现SPI接口在外部设备和内部系统之间进行通信,在数据传输部分,摒弃传统的需要一个专门的移位传输寄存器实现串/并转换的

摘要:给出了一个可用于SoC设计的SPI接口IP核的RTL设计与功能仿真。采用AMBA 2.0总线标准来实现SPI接口在外部设备和内部系统之间进行通信,在数据传输部分,摒弃传统的需要一个专门的移位传输寄存器实现串/并转换的设计方法,采用复用寄存器的方法,把移位传输寄存器和发送寄存器结合在一起,提高了传输速度,也节约了硬件资源。采用SoC验证平台进行SoC环境下对IP的验证,在100 MHz时钟频率下的仿真和验证结果表明,SPI接口实现了数据传输,且满足时序设计要求。

0 引言

SPI(Serial Peripheral Interface)是一种同步串行总线接口,很多器件如E2PROM、FLASH、实时时钟、A/D转换器等都用到了SPI接口,它也是SoC中的一个常用外围功能模块。AMBA总线是由ARM公司开发的一种高性能、开放性SoC系统总线,它主要包括AHB,ASB和APB三种总线类型。AHB总线主要用于连接高性能、高速度的系统模块,如CPU,DSP,SRAM等;APB总线主要用于连接低速外围模块,如UART,I2C等,接口简单,效率高,功耗低;ASB总线通过连接系统高速部件来实现高速通信,一般较少用到。

本文设计一个可作为IP核用于SoC设计的SPI接口,采用AMBA2.0总线标准来实现SPI接口在外部设备和内部系统之间进行通信,SPI接口作为低速外围模块挂载在APB总线上。

1 SPI接口的定义

1.1 接口信号

SPI的接口信号为同步串行时钟SCLK、主机输入/从机输出MISO、主机输出/从机输入MOSI、从机选择

(低电平有效),由于只用到四根线工作,与其他接口相比具有结构简单、速度快的优点。SPI有主/从两种工作模式,SPI总线的串行时钟SCLK用来同步数据传输,在主模式下由主机产生,从机选择信号

用来决定外部设备是否被选作SPI的从设备。主从设备连接方式如图1所示。

1.2 内部寄存器

SPI的内部寄存器如表1所示。

1.3 传输时序

在本设计中,SPI的传输时序由控制寄存器CTRL来决定。CTRL[9]定义为RX_NEGE,置1表示数据在时钟下降沿接收,置0为上升沿接收;CTRL[10]定义为TX_NEGE,置1表示数据在下降沿发送,置0为上升沿发送;CTRL[11]定义为LSB,置1表示数据从最低位开始传输,置0从最高位开始传输。CTRL[6:0]定义为CHAR_LEN,为数据传输长度,最长可为128 b。以其中一种传输时序为例说明,如图2所示。

2 SPI接口的RTL设计

本设计是针对SoC系统的,目标是实现适用于SoC设计并且符合SPI通信协议的IP核,实现SoC通过此SPI接口和外设通信。所以,本设计分成SPI主机模块spi_master的设计和SPI从机模块spi_slave的设计,采用Verilog HDL进行RTL设计。

2.1 spi_master模块设计

spi_master的功能主要包括:

(1)实现主机通过APB总线初始化spi_master的寄存器;

(2)实现spi_master和spi_slave之间的数据交换。

因此,spi_master模块主要就是实现分频和串并转换,主要包含时钟产生子模块spi_clgen和数据传输子模块spi_shift,其设计结构如图3所示。

2.1.1 时钟产生子模块设计

该子模块主要作用是产生SPI主/从设备通信所需的同步串行时钟sclk。在主模式下,sclk由系统提供的时钟信号pclk分频产生,产生的串行时钟的时钟频率由式(1)计算得来:

传输开始前,cnt载人DIVIDER值,满足传输条件下cnt减1计数,减为0时,输出时钟clk_out翻转,并且在clk_out的上升沿和下降沿分别产生pos_edge和neg_edge信号。

2.1.2 数据传输子模块设计

该子模块的主要功能是完成数据的串/并转换。在本设计中,该子模块负责把内部APB总线并行传输进来的数据转化成串行数据传输给SPI从设备,并且把外部SPI从设备串行传输进来的数据转化成并行数据传入到APB总线上。

传统的串/并转换设计方法需要一个专门的移位传输寄存器,本设计采用了复用寄存器的方法,把移位传输寄存器和发送寄存器结合在一起。当传输停止且总线锁存使能时,数据从APB总线并行传输到spi_shift移位传输寄存器即发送寄存器TxX,然后在传输时钟使能情况下串行输出到MOSI;而在主机接收使能的情况下,由从机MISO串行输人数据至spi_shift移位传输寄存器。传输结构如图4所示,从图4可以看出,数据传输位宽最大可达128 b/s。

2.1.3 RTL代码设计

spi_master模块代码设计划分如下:

(1)寄存器选择使能信号的地址译码电路;

(2)读寄存器部分,将并行数据输出到APB总线上;

(3)控制寄存器ctrl、时钟分频寄存器divider、从机选择寄存器ss初始化部分;

(4)例化时钟分频子模块和数据传输子模块。

为了提高代码的复用性,特别设计了一个宏定义模块,主要定义了传输最大位数SPI_MAX_CHAR,分频寄存器位数SPI_DIVIDER_LEN,从机选择数目SPI_SS_NB等相关数据。

2.2 spi_slave模块设计

这部分设计作为SPI的从设备与主机进行数据交换,与spi_shift模块时钟同步。通信开始后,从机数据最高位开始串行输入到MISO,主机发出的数据从最低位串行输出到MOSI。

3 SPI接口的功能仿真

本设计采用Verilog HDL编写Testbench,使用ModelSim软件进行功能仿真,并用Debussy软件联合调试并观察波形。为了实现主从设备通信的仿真,编写了一个p_master模块并例化到测试代码里面来模拟主机SoC对spi_master的操作,主要包括一个数据写task、一个数据读task、一个数据比较task。分别测试了1 b,8 b,16 b,32 b,64 b,128 b的数据。仿真全部通过,局部仿真波形如图5所示。

以第一次传输为例进行分析,传输时调用写任务,分别向寄存器DIVIDER、TX_0、CTRL写入32’h01、32’h5a、32’h308,设定spi_sla ve.data为32’ha5967e5a。由波形看出,数据在ss[0]有效传输,传输完成后MIS0=8’b10100101(即32’ha5),MOSI=8’b01011010(即32’h5a),满足了上升沿发送下降沿接收及高位先开始的数据传输时序。在100 MHz的主时钟频率下,得到串行时钟频率25 MHz,为4分频,符合式(1)的计算。

4 SPI接口的SoC平台验证

验证用SoC平台具有良好的可重用性和通用性,可以方便的挂接带有AHB/APB总线接口的IP核,并通过内部寄存器对其进行配置和验证,避免了对不同IP设计需要不同的Testbench平台,提高了IP验证的效率。本设计用到的SoC验证平台如图6所示,验证环境为Linux操作系统,仿真工具为VCS。

在SoC验证平台中,SPI接口作为外设连接在APB总线的Slave4端口上,地址空间为0xA400_0000~0XA4FF_FFFF。用C测试程序向Tx0写32’h67,spi_slave.data=32’h0,局部仿真波形如图7所示,MOSI=8’b01100111(即32’h67),MISO=8’b0,结果表明符合要求。

5 结语

本文实现了基于AMBA 2.0总线的、可作为IP核用于SoC设计的SPI接口的设计,并且经过全面的仿真验证,可以看出本设计满足性能要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

· Ceva-Waves™ Links™ IP系列提供完全集成的多协议连接解决方案,包括Wi-Fi、蓝牙、UWB、Thread、Zigbee和Matter,为下一代连接协议丰富的MCU和SoC简化开发工作并加快上市时间

关键字: 人工智能 MCU SoC

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

2024 年 4 月 9 日,德国纽伦堡(国际嵌入式展)——AMD(超威,纳斯达克股票代码:AMD)今日宣布扩展 AMD Versal™ 自适应片上系统( SoC )产品组合,推出全新第二代 Versal AI Edge...

关键字: AI SoC ADAS

加利福尼亚州桑尼维尔,2024年3月29日–新思科技(Synopsys, Inc.,纳斯达克股票代码:SNPS)近日宣布完成对Intrinsic ID的收购,后者是用于系统级芯片(SoC)设计中物理不可克隆功能(PUF)...

关键字: 硅片 半导体 SoC

全球知名半导体制造商罗姆(总部位于日本京都市)与领先的车规芯片企业芯驰科技面向智能座舱联合开发出参考设计“REF66004”。该参考设计主要覆盖芯驰科技的智能座舱SoC*1“X9M”和“X9E”产品,其中配备了罗姆的PM...

关键字: 智能座舱 SoC LED驱动器

TrustFLEX 器件搭配可信平台设计套件,将简化从概念到生产的信任根启用过程,适用于广泛的应用领域

关键字: 控制器 闪存器件 SoC

Arm Neoverse S3 是 Arm 专门面向基础设施的第三代系统 IP,应用范围涵盖高性能计算 (HPC)、机器学习 (ML)、边缘和显示处理单元,是新一代基础设施系统级芯片 (SoC) 的理想技术根基。Neov...

关键字: 机器学习 SoC 系统 IP

近日,研究机构Canalys公布了2023年第四季度智能手机SoC出货量及销售收入排名。其中,依靠华为Mate60系列、Mate X5以及nova 12系列的优秀表现,华为海思在该季度出货680万颗,同比暴增5121%。...

关键字: 华为海思 SoC

Isaac 机器人平台现可为开发者提供全新的机器人训练仿真器、Jetson Thor 机器人计算机、生成式 AI 基础模型和由 CUDA 加速的感知和操作库

关键字: 机器人 生成式 AI SoC
关闭
关闭