论文部分内容阅读
随着电子设计技术日新月异的发展,近年来,系统级芯片(System-on-a-Chip,So C)设计技术已经在集成电路发展的各个领域里得到广泛应用。工程师都希望自己的设计可以和更多的电子设备进行通信,因此,如今很多芯片都支持传统串行外设接口(Serial Peripheral Interface,SPI)、通用串行总线(Universal Serial Bus,USB)等等其他电子设备接口。其中,SPI协议因其电路结构简单、通信可靠等诸多优点,在低速外部设备中得到广泛应用。本文通过研究Motorola公司的SPI协议以及ARM公司的高级可扩展接口(Advanced e Xtensible Interface,AXI)协议,设计了一种支持AXI总线传输的SPI控制器模块,该设计实现了支持多请求功能和支持乱序访问功能。论文重点介绍了该SPI控制器模块的设计原理和验证方法。首先,论文依据SPI协议基本原理给出了该SPI控制器模块的整体架构设计,并根据AXI协议端口特点对SPI控制器模块接口信号进行扩展,增加与AXI总线通信的接口,使得SPI控制器可以与AXI总线之间进行通信,能够更广泛地应用于不同的So C系统中。该SPI控制器模块由控制寄存器、扩展寄存器、数据寄存器、状态寄存器、SPI控制模块、读写模块、标识(Identification,ID)控制模块和移位寄存器等子模块构成。该SPI控制器模块支持读请求、读请求应答、写请求、写请求应答四种传输模式。其次,在完成SPI控制器模块寄存器传输级(Register Transfer Level,RTL)设计基础上,验证了若干待测功能点。基于验证方法学手册(Verification Methodology Manual,VMM)验证方法,利用System Verilog语言为该SPI控制器模块设计搭建层次化的随机验证环境,对该论文设计的SPI控制器模块进行充分验证。再次,利用Synopsys公司的Verilog模拟器编译(Verilog Compile Simulator,VCS)仿真工具对设计进行代码覆盖率统计、分析代码覆盖率并针对代码覆盖率报告结果适当添加限制条件提高代码覆盖率。对SPI控制器代码添加功能覆盖率组统计功能覆盖率。最后,对SPI控制器模块进行RTL代码综合,评估设计面积、时序、功耗。验证结果表明:本文设计的SPI控制器完全兼容SPI协议,在功能上达到了预期目标,可以灵活地应用到基于AXI总线协议的典型So C系统中,可与多种具有SPI接口的电子设备进行通信。此外,采用基于VMM方法学搭建参数可配置的随机验证环境有效提高了设计的验证效率。