快速掌握SoC系统架构的设计与验证

SoC设计与EDA工具

当前SoC的设计正朝着速度快、容量大、体积小、质量轻、功耗低的方向发展。推动该潮流迅猛发展的决定性因素就是使用了现代化的EDA设计工具。EDA是Electronics Design Autonmation(电子设计自动化)的缩写。Soc的设计趋势正从RTL向电子系统级(ESL)转移。

验证的分类及相关工具

SoC设计中验证包含一下几个方面:

  • 验证原始描述的正确性
  • 验证设计中的逻辑功能是否符合设计规范的要求
  • 验证设计结果的时序是否符合原始设计规范的性能指标
  • 验证结果是否包含违反设计规则的错误
  • 验证方法的分类

1. 动态验证

动态验证也叫仿真,是指从电路的描述提取模型,然后将外部激励信号或数据施加于此模型,通过观察该模型在外部的激励信号作用下的实时响应来判断该电路系统是否实现了预期的功能。仿真目前最常用时间驱动的方法,也在发展周期驱动的方法。

2. 静态验证

静态验证是指采用分析电路的某些特性是否满足设计要求的方法,来验证电路的正确与否。形式验证是近几年兴起的一种验证方法,它需要有一个正确的模型作为参考,把待验证的电路与正确的模型进行比较,并给出不同版本的电路是否在功能上等效的结论,它利用理论证明的方法来验证设计结果的正确性。

比较动态验证和静态验证,各有优势和不足。动态仿真主要是模拟电路的功能行为,必须给出适当的激励信号,然而很难选择激励达到覆盖电路所有功能的目的,同时动态仿真很耗费时间。静态验证是针对模拟电路所有的工作环境,检查电路是否满足正常的性能指标,此类验证只限于数字逻辑电路,其准确性低于动态仿真。

动态仿真工具

  • 电路级仿真:SPICE、NanoSim
  • 逻辑仿真工具:VCS NCVerilog Modelsim

静态仿真工具

  • 形式验证:Formality ECO
  • 静态时序分析工具:Primetime

SoC系统架构设计

一个完整的SoC设计应该包括系统架构设计和硬件设计。系统架构设计包括处理器的选择、存储器的选择、外设的选择和软件架构的设计等等。系统架构设计最主要是指将高层次产品需求精化为对硬件和软件的详细技术需求,做一个整体的规划的过程。系统架构设计的一个关键任务是将设计划分为一系列硬件模块和软件任务,以及定义各部分之间的接口规范。例如,是多处理器还是单处理器?选用什么类型的处理器?选择什么类型的总线标准?总线的架构是什么样子的?系统需要哪些存储器?因此,系统架构设计是SoC中至关重要的一步。


一、SoC中常用的处理器

复杂系统执行多种多样的复杂任务。任务常因为市场需求而改变。处理器的软件可编程性使得它可以实现更加快速的功能开发和提供更加敏捷的可适性,已成为SoC最为重要的组件,其性能直接决定了系统性能的优劣。

目前,在SoC中使用的处理器主要分为三类:通用处理器CPU、数字信号处理器DSP和可配置处理器。通用处理器主要负责控制、操作系统平台和一般的信号处理等任务。目前SoC设计中使用较多的通用处理器有ARM、MIPS、PowerPC等。

二、SoC中常用的总线

总线提供了系统中各个设备之间一种互联的访问共享硬件机制。在数字系统中,总线承担数据传输的任务如处理器和存储器之间的数据传输。总线的传输能力由总线的宽度和工作频率决定。总线的设计通常要考虑四个因素:总线宽度、时钟频率、仲裁机制和传输类型。

总线连接的设备根据功能不同分为总线主设备和从设备。总线主设备可以发起一个传输任务,而从设备则对主设备发起的事务做出回应。有些设备既可以是总线的主设备,也可以是总线的从设备,如DMA控制器等。当总线上存在多个主设备时。这些主设备有可能在一段时间内同时需要竞争使用总线。这时需要一种仲裁机制来决定总线的使用。仲裁机制的差异会影响总线的利用效率和任一总线设备所见到的迟滞。使用较多的仲裁机制有轮询机制和按照优先级顺序机制。在轮询机制中,仲裁逻辑循环检查各个主设备的使用请求,从而决定哪一个主设备使用总线,每个总线的主设备拥有相同的优先级,但重要的请求可能需要等待交大的延时后才能获得总线的控制权。在按照优先级顺序的仲裁机制中,各个主设备分配不同的优先级。在这种设计中,优先级高的主设备可以在较少延时下获得总线的使用权。在仲裁机制中,有必要启用某些保护机制,确保总线传输的正常运行。例如,在传输数据过程中采用锁定的机制,只有当前传输结束后才能重新启动仲裁机制,确保该次传输的正常结束。这在多个主设备竞争访问同一个资源时可以确保数据传输的正确性。

总线在传输数据时,可以采用不同的传输类型以适应不同的数据传输要求。在大多数总线中可以实现固定大小的数据块传输和可变大小的数据块传输。更加复杂和先进的总线行为还包括分离处理、原子处理等。当从设备完成数据的处理后,从设备通知主设备可以继续上次没有完成的数据传输。

SoC设计的一个重要特点是基于IP核的复用。

AMBA总线


AMBA总线是ARM公司开发的片上总线标准,AMBA总线标准包括AHB总线、ASB总线、APB总线和AXI总线。AHB总线和ASB总线连接高性能系统模块,ASB是旧版本的系统总线,使用三态总线,目前已经被新版本的AHB总线所代替。APB总线连接低速的外围设备。


AHB总线连接的系统模块有处理器、DMA控制器、片上存储器、外部存储器接口、LCD控制器等。这些设备往往工作在较高时钟频率下,对系统的性能有较大影响。AHB总线支持仲裁、突发传输、分离传输、流水操作、多主设备等复杂事务。

APB总线连接的外围设备有UART接口、键盘、USB接口、键盘接口、时钟模块等。APB没有复杂事务实现,非流水线操作,可以达到减少功耗和易于使用的目的。

AXI总线是一种多通道传输总线,将地址、读数据、写数据、握手信号在不同的通道中发送,不同访问之间的顺序可以打乱,用BUSID来表示各个访问的归属。Master在没有得到返回数据的情况下可以发出多个读写操作。读回的数据顺序可以被打乱,同时还支持非对齐数据访问。由于各个传输之间仅依靠传输ID来相互识别,没有时序上的依赖关系,所以可以被插入寄存器来打算限制频率的关键路径。那么从理论上来讲,AXI总线就没有频率上限了。AXI总线还定义了在进出低功耗节电模式前后的握手协议。规定如何通知进入低功耗模式,何时关断时钟、何时开启时钟、如何退出低功耗模式。这使得所有IP在进行功耗控制的设计时,有据可依,容易集成在统一的系统中。

作者:QZSL
来源:IP与SoC设计

最新文章