数字电视条件接收卡SoC SM1658的硬件结构及实现方法(上)
设计特色
1. 简洁的高效率本地总线
在SoC设计中,内部及外部总线的选择是一个非常重要的因素,一个高效、简洁的总线可以让芯片的运行效率和可扩充性提高。
在ARM结构体系的SoC芯片设计中,ARM公司一般推荐采用标准的AMBA总线来进行设计。同时,ARM7TDMI核本身还带有一个简单的内部总线。在决定采用的总线规范前,我们对SM1658的体系结构和应用特点进行了下面的分析。
AMBA总线的优点之一就是可以支持多个主设备的调用、裁决和数据的流水处理。在SM1658中,只有一个主设备ARM7TDMI,其他模块电路都处于从设备状态,由CPU统一进行调度,而且所有的外部从设备都与主设备采用相同的时钟,可以在单个时钟内立即响应CPU的访问。因此,在这个方面采用ARM7本地的总线更有优势。
如果使用AMBA总线,设计团队可以使用大量的第三方IP模块,这些IP模块都符合AMBA总线的规范要求,并且经过了严格的验证。在SM1658的芯片设计中,我们为了最大程度的降低芯片的成本,同时客观上也由于重要的模块电路都没有合适的IP可以使用,所以我们自己设计了所有的电路模块。那么,想通过使用IP来节省的开发时间就没有可行性了。
此外,如果使用AMBA总线,就必须在原有的ARM7TDMI的三级流水线上增加一级流水线,并将ARM7TDMI的双时钟边沿的总线结构转变为单时钟边沿的总线结构,这样可以简化芯片后期的设计工作量。但是,这样对于某些跳转指令就多损失了一个时钟周期,降低了CPU的工作效率。此外,使用AMBA总线,CPU和每个模块都需要增加AMBA总线的接口逻辑,增加了芯片的规模和成本。
图2:SM1658基本结构。
最后,我们从芯片的最大使用效率和简化逻辑控制的方面出发,决定采用ARM7TDMI自身的本地总线。使用ARM7的本地总线有几个优势:ARM7的本地总线状态相对简单,不需要进行相对复杂的AMBA总线协议验证;对模块的接口功能要求低,接口电路非常简单;减少了流水线长度,在一个最高时钟由IP硬核固定了的SoC芯片中,流水减少就意味着芯片的代码执行效率的提高。同时,对于ARM7总线上的双边沿时钟问题进行严格的约束和验证,确保了芯片后期设计的正确性。
2. 带有软件冗余的内部SRAM
ARM7TDMI是一款没有内部高速缓存的CPU核,对于慢速的SRAM、FLASH存储器的只能空闲等待。即使采用了高速的外部SRAM,由于数据接口宽度和芯片与芯片之间的数据传输的延迟,也不能有效地用到高速CPU的全部性能;同时,大容量的高速SRAM价格昂贵,将会大大增加CAM系统的成本。从系统结构和成本方面考虑,我们决定在SM1658中嵌入一个256KB容量的SRAM,此SRAM容量可以满足相当部分CAM系统的应用需求。同时,我们的芯片也支持各种外部高速和低速SRAM,对于一些SRAM需求非常大的系统也可以满足要求。
SM1658内部实现的SRAM具有非常高的性能,可以以单时钟周期完成ARM的各种指令的操作,也就是当CPU在内部SRAM中进行取指或存取数据时不需要任何等待。我们在芯片生产出来后用对芯片内部的SRAM进行了CPU性能的基准测试,即使在非常高的频率下面,芯片也能获得与ARM7TDMI的IP核的理论计算值相同的水准,后面有测试的数据表格。
内嵌SRAM的最大问题是,对于芯片的成品率会产生影响。我们在电路功能设计、底层软件设计和应用系统上采取了一些有效的预防措施,大大减少系统对于有缺陷的SRAM的依赖性。这样,芯片的成品率可以大幅度提高。这样也就从系统角度降低了芯片的整体成本。
3. 可动态调整的时钟电路
在SM1658芯片的时钟设计中,我们还集成了一个可软件配置的时钟管理电路,称之为动态时钟电路。我们通过软件对芯片的时钟处理模块进行编程,既可以让芯片的工作时钟频率随着需要不断变化,降低芯片在轻任务负载下的功耗,又可以适应多种外部时钟源的输入,增加CAM系统在产品开发中的适应能力。
4. 高度灵活的智能卡接口
在SM1658的功能中,还包括一个高度灵活的智能卡接口。它是为了保证CA公司可以通过智能卡对用户收看节目进行授权和管理。
一般来讲,国际上大多数智能卡接口都是按照ISO7816标准来实现互连互通的。在很多的SoC芯片设计中,大家都采用了一个外部的智能卡接口芯片,例如TDA8004就是一个比较常用的智能卡接口芯片。但是采用一个外接的芯片,其系统的可靠性会降低而成本会比较高,我们希望设计一个成本和性能最优的系统,通过电路设计完全省略掉此外部接口芯片。
首先,我们在此接口模块的设计中,按照ISO7816的标准,将全部的状态和控制方式都完成。比如,针对A类、B类智能卡卡的不同电源电气指标要求的设计;针对T0通讯协议与其他通讯协议不同的错误处理的设计;还有针对某些私有的智能卡的特殊协议要求等。这些都可以通过在芯片的驱动软件上进行配置,配合少量的简单外部器件来完成。其次,针对智能卡接口要求的ESD要求和不同使用环境中的差别,我们设计了不同的外部电路来配合芯片的内部控制。同时,我们对芯片的各个接口管脚的逻辑特性进行了不同条件下的独立配置,可以最大程度地减小对外部电路的要求。
图3:智能卡模块系统软件功能框图。
在标准的使用情况下,SM1658芯片可以不需要任何外部有源器件就完成智能卡接口的功能,而且抗ESD的能力可以保证大于4,000V。
- 有条件接收系统综述(09-03)
- 数字电视条件接收卡SoC SM1658的硬件结构及实现方法(下)(09-07)
- 山东泰信长城无卡CAS V1.0 解决方案(11-04)
- 数字电视安全现状解析(01-02)
- 苹果iPod HiFi外置音响的内部音频处理系统分析(02-02)
- 深入分析:为iPod视频增加非凡视觉效果(01-25)