|
限定引脚的微处理器设计
|
Microprocessor With Low Pin Number
|
■Toshiba公司
|
作为微处理器的设计来说,市场需求无疑是创新的推动力。Toshiba的TMPR4925嵌入式处理器产品最初就是由本公司的RISC销售小组在对数字消费类产品市场的理解和对潜在客户的接触的基础上提出的。产品的初始概念只包括一组功能列表和销售价格。在进行功能的再设计时,大量的特性要靠设计小组来实现。产品的预定售价决定了最终封装功能的取舍,并对设计工作提出了两项主要的指标要求:即设定的最大功耗约为1W,以及芯片引脚数量为256。
为了满足上述要求,我们设计了让多用途存储控制器来操作各种类型存储器并让引脚在各功能间共用。本文主要就该设计项目的规范、设计和验证等各阶段所采用的权衡策略进行讨论。
规范
功耗方面的指标要求制约着外设时钟频率的取定。CPU核的最大工作频率为200 MHz,而其外部接口则以CPU频率的一定比例进行操作。CPU和接口之间可实现的时钟比有2:1、2.5:1和3:1三种。内部逻辑和输出缓冲的存在都会带来芯片总功耗的上升。从系统总体性能和设计易用性考虑,我们采用了内部总线频率与外部同步存储器接口时钟频率相匹配的策略。由于功耗上的制约,限制了2:1时钟比的使用,内部接口频率采用了80
MHz。
不巧的是,要实现所要求的全部功能,所需的引脚数量会远高于现有的256。因此,设计作业首先要做的是定义一种器件引脚的共用方式,以最大限度地同时使用各种功能。引脚共用方案的设计需注意几方面的问题。某些路径的时序要求对引脚要求十分严格,因此应避免将这些引脚用于除主功能以外的其它功能。为把信号传递并到达引脚所需的逻辑电平降为最小,我们还引入了专门的JTAG边界扫描逻辑设计。
地电反弹(ground and power bounce)的处理是一个最为重要的课题。为使之最小,最大限度地采用了限制边沿速率输出缓冲器(slew-rate-limited
output buffer),但这种慢速的输出缓冲器对任何指定为高速功能的引脚均不适用。高速、低速输出缓冲器混用会产生其它设计问题。我们在引脚共用和引脚位置规范问题上经历了数次的重复工作(图1)。
图2是我们对该项目所涉及的每一项关键功能指标都定义了一组详细的特性集。其它外设则采用由东芝的其它设计小组或第三方IP供应商提供的IP核。我们还尝试将那些能使芯片广泛易用的特性纳入其中。某些特性的设计用来使外部元件数量降为最少,某些特性则用来简化时序要求从而减轻板设计的难度。
我们还对每项特性与其实现成本间的存在优势进行了衡量。考察因素包括设计难度、设计风险、实施难度和验证的繁杂程度。设计风险包括新建特性工作不正常,以及即使在新特性不应用时对该新建特性施以逻辑操作也会干扰其它性能的发挥等两方面。实施成本主要指逻辑综合过程中时序约束得到满足的难易程度。验证成本包括芯片在实际硅片上制作和实际操作前所进行的特性验证,以及与其它可能相关的许多特性间的复合验证。
设计
以下对存储器控制器的讨论给出了有关特性选择和如何取得设计平衡的例子。
NAND快闪控制器、外部总线控制器和同步存储控制器外设对芯片的性能、易用性和应用范围构成主要影响。这些部件控制着各种存储器类型并支持多存储器配置和时序的选择。存储器控制器间共享外部数据总线及其控制逻辑。为避免低速存储器的负载量跑到高速总线上,用一缓冲器将总线分成一条与MPU相接的快速总线和一条低速总线(即74x245
或QuickSwitch)。所有的同步存储器都必须接到快速总线上,而所有其它的存储器可以根据总线分布情况或接到快速总线或接到低速总线上。
使用NAND快闪控制器意在获得成本极低的非易失性存储性能。此种类型的存储器采用非随机存取方式,其运算速度较大多数其它类型存储器为慢。控制器的性能也较低。产品选自东芝公司的另一款产品并对其总线接口进行了改进,去掉了不必要的特性。由于低速存储器可能不会为任何应用程序所用,所以我们把NAND快闪器件接口所用的引脚与其它功能进行了共享。为避免在系统中配备两种非易失性存储器,我们采用了从NAND闪存引导的机制。
外部总线控制器(EBUSC)控制着具有不同时序要求的各种异步存储器类型。一个实例是所有8个EBUSC通道共享控制逻辑。每个时钟周期开始时,所选通道的参量传给控制逻辑单元,而后以这些参量为基础执行该时钟。EBUSC对单个外部存储器的访问时间最短为3.75纳秒,最长为4.5微秒。
某些存储器件要求在某些地址、控制和数据信号间设置建立和保持时间(setup and hold times)。为实现这一要求并在设计中对控制寄存器的复杂性和数目加以限定,我们采用了一种全局方法在相应的信号之间进行时间的设定。使用一个称为建立/保持等待时间的单域(A
single field)来设定信号转换时间。所有的建立/保持时间都采用相同时间会额外增加时钟,但不会使设计受到影响,因为这一特性基本上只有低速器件才用到。由于建立/保持等待时间特性不适合突发性或页模式访问(burst
or page-mode accesses),所以我们对EBUSC的特性集采取了一种额外的拆衷方案,以简化控制逻辑设计。
一位潜在的客户建议我们增设PCMCIA接口,我们便对顶层规范(top-level specification)进行了扩展以将其纳入其中。EBUSC所具有的灵活适应性使这种添加变得很容易且无需改变主状态机(the
main state machine)。我们增设了部分逻辑单元以产生PCMCIA接口所需的专用控制信号。芯片对EBUSC的通道6和通道7的选定信号从不与引脚相连接。若用这些通道来支持PCMCIA,那么其它的6个通道可以支持其它存储装置或设备。
SDRAM控制器广泛支持SDR SDRAMs (包括512Mb SDRAMs)、基于SDRAM的DIMMs (包括注册DIMMs)和SyncFlash存储器。我们之所以选择支持这类存储器是因为我们看到其应用前景很好。我们的控制器从上个产品版本开始取消了对两类存储器的支持。尽管快闪DIMM模组(采用异步NOR快闪存储器)的接口与SDRAM的相同,但由于它要求在控制器中设置一个不相称(笨拙)的独立逻辑单元,二者的差异仍十分明显。
SyncFlash器件要快得多,它的支持逻辑单元能很好地与控制器配合。因此我们认为SyncFlash可能会取代快闪DIMMs。我们还去掉了对异步掩膜ROM(SMROM)器件的支持能力。SyncFlash具有可擦写、速度快且可支持的突发时长为2
(a burst size of two),因此是最优的。其突发时长可支持续增和续减访问。为降低系统内存总成本,我们还增添了可选择由SyncFlash存储器引导的功能。
SDRAM控制器可支持四通道的混合SDRAM和SyncFlash存储器。我们通过对所有器件和通道适用单一组时序参量(a single
set of timing parameters),在设计灵活性和设计尺寸之间取得了平衡。我们认为嵌入式应用系统所要求的对存储器的控制能力应比开放系统更强。此外,当前流行的存储器件大都是为比我们所要求的80
MHz中等速率更高的时钟应用而设计的。针对每一通道的控制寄存器对存储器的类型、构造和个别其它控制参量进行指定。
由于采用SDRAM有可能会实现最快的存储性能,所以对于SDRAM控制器在特性选择方面特别慎重。我们通过简化时钟启动逻辑电路使其对SDRAM的访问等待时间较以前的产品版本缩短了1个时钟周期。去掉对SMROM和Flash
DIMM存储类型的支持能力就可以实现这种简化设计。增加对SyncFlash器件的支持从而实现在执行打开页面的访问后保持页面处于打开状态。
由于对正常的访问不产生缺失损失(miss penalty),所以该特性在SyncFlash器件上表现良好。该特性也可以在SDRAMs上实现,但由于这种器件会产生缺失损失,因此所能达到的性能较SyncFlash差。此外,该特性只适用于32位的数据位宽而不适用于16位数据。这些约束条件的存在使启动打开页面时钟的逻辑电路更为简捷,在所有的访问开始时便可以消去1个时钟周期。对于系统设计师而言,实现对SDRAM访问的时序设计可能是最大的难点之一。为减轻工作难度,对SDRAM控制器设计了三种特性。
第一,地址信号和RAS、CAS及WE的建立时间设为2个时钟周期而非通常的1个时钟。控制器采用突发时长为2的SDRAM器件;把对SDRAM量较大的突发式访问分解成多个两字脉冲(two-word
burst)。这样除了SDRAM对一个集的第一次访问外,其它全都很容易地实现了长的建立时间。在建立时间上为一个集的第一次访问而设置一个额外的时钟,将使访问过程增加1个时钟。为使用户有所选择,在时序寄存器中设置1个位来控制逻辑单元是否为一组访问增加额外的建立时间。
第二,在进行写访问时,所有数据信号的建立时间也可以设为2个时钟周期。由于SDRAM的突发时长为2,所以,在突发式访问中,一个写操作必须对SDRAM禁用(disabled)DQM输入。而在另一写操作被屏蔽时,则对突发式访问进行重复。
第三,MPU设有2个数据读入通道以使数据由外部数据总线传入内部总线。对于总线数据承载量较小的小型系统,MPU可以直接以其内部时钟对输入数据进行取样。另一个读入通道由时钟回馈引脚提供时钟进行采样,以缓和对SDRAM数据的时序要求。而后由内部时钟对这种额外的管道寄存器的输出进行采样。使用管道通道需要为SDRAM读入周期增加一个额外的时钟。
验证
此类芯片的验证(预制作)和实证(后制作)是一件非常繁重的工作。我们以基于TMPR4925的系统为原型,建立了一种仿真环境,包括了需要检验的与所有控制器和接口相连接的器件。我们对外设采取不同水平的检验。使用在其它项目中进行过实证检验的外设无需再验证。在这种情形下,我们只对MPU内部的所有互连和几个简单的外设操作进行了验证。
对于设计用于该芯片的外设,我们进行了较为充分的验证。系统架构师、外设设计师和测试人员等全部参与对每一外设所进行的最后测试。测试项目包括单个外设的测试以及为检验众多不同模式的外设间的互操作性而进行的系统整体测试。在系统测试中,不同模式间的组合测试量很大,不可能全都测试一遍,因此我们依据自己的判断筛选出最有用的项目进行测试。
除了进行直接测试外,我们还开发了一套可随机选取多种测试模式和参量进行测试的测试装置,并在数台工作站上进行了数百小时的随机化测试试验。
任何测试模型都不可能用来测试所有特性。在某些情况下,为检验外部接口的操作和时间,我们开发了自己的模型或监测装置。我们把大部分外部测试逻辑电路组入一个称作测试FPGA的模块,逻辑电路采用可综合的RTL电路来设计。我们还设计了一个评估板以测试首批芯片样品,包括经过模型仿真后的实际器件。在仿真环境中测试FPGA所具有的各种测试逻辑功能在我们的测试板上的实际FPGA中都得到了实现。
源自仿真环境的评估板能使我们把多数验证测试移到芯片实证评估板来进行。我们在实际系统上对众多的模式组合进行了测试并进行多次重复随机化测试。此外,先前的设计中遗留下的专用接口由一个单独的小组使用单独的测试板来检验。
|
|