1.3 数字系统的设计

EDA技术研究的对象是电子设计的全过程,由上到下依次包括了系统级、电路级和物理级三个层次。数字系统设计有多种方法,如模块设计法、自顶向下设计和自底向上设计法等。

1.3.1 数字系统的设计模型

数字系统指的是交互式的、以离散形式表示的,具有存储、传输、信息处理能力的逻辑子系统的集合。

用于描述数字系统的模型有多种,各种模型描述数字系统的侧重点不同。下面介绍一种普遍采用的模型,这种模型根据数字系统的定义将整个系统划分为两个模块或两个子系统:数据处理子系统和控制子系统,如图1-1所示。

图1-1 数字系统的设计模型

一般,我们以数字系统实现的功能或算法为依据来设计数据处理子系统。数据处理子系统主要由存储器、运算器、数据选择器等功能电路组成,完成数据的采集、存储、运算和传输。数据处理子系统与外界进行数据交换,在控制子系统(或称控制器)发出的控制信号作用下,数据处理子系统将进行数据的存储和运算等操作。数据处理子系统将接收由控制器发出的控制信号,同时将自己的操作进程或操作结果作为条件信号传送给控制器。

控制子系统是执行数字系统算法的核心,具有记忆功能,因此它属于时序系统。控制子系统由组合逻辑电路和触发器组成,与数据处理子系统共用时钟。

将数字系统划分成数据处理子系统和控制子系统,设计者面对的电路规模减小,可以对二者分别进行设计;数字系统中控制子系统的逻辑关系比较复杂,将其独立划分出来后,逻辑分工清楚,可以突出设计重点和分散设计难点。

因此,合理的数字系统模型能够很大程度的帮助设计者有层次地理解和处理问题,进而获得清晰、完整、正确的电路图。

1.3.2 数字系统的设计方法

数字系统设计的方法有很多,如模块设计法、自顶向下设计法和自底向上设计法等。

10年前,电子设计的基本思路还是选择标准的集成电路“自底向上”(Bottom-Up)地构造出一个新的系统。这种设计方法首先确定可用的元器件,然后根据这些器件进行逻辑设计,完成各模块后进行连接,最后形成系统。自底向上的设计方法如同一砖一瓦建造楼房,不仅效率低、成本高而且容易出错。

而基于EDA技术的设计方法这是自顶向下(Top-Down)进行设计的。所谓自顶向下设计,就是将数字系统的整体逐步分解为各个子系统和模块,若子系统规模交大,则还需将子系统进一步分解为更小的子系统和模块,层层分解,直到整个系统中各子系统关系合理,并便于逻辑级的设计和实现为止,如图1-2所示。

图1-2 自顶向下设计结构分解

这种方法从系统入手,在顶层进行功能方框图的划分和结构设计,在方框图一级进行仿真、纠错,并用硬件描述语言对高层的系统进行描述,在系统一级进行验证,然后用综合优化工具生成具体的门电路网表,其对应的物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这既有利于早期发现结构设计上的错误,避免设计工时的浪费,同时也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。自顶向下设计方法的优点可以归纳为以下几点:

(1)作为一种模块化设计方法,自顶向下的设计方法对设计的描述从上到下、从粗略到详细,符合常规的逻辑思维习惯。对数字系统的设计采用硬件描述语言,使得设计可以在各种集成电路工艺或可编程器件之间移植。

(2)自顶向下的设计方法使得高层设计完全独立于目标器件的结构,在设计的初级阶段,设计人员可以摆脱芯片结构的束缚,将精力集中在可以规避传统设计方法中的再设计风险的环节,缩短了产品的开发周期。

(3)自顶向下的设计方法便于对设计任务进行合理分配,通过科学的系统工程管理方法,由多个设计者同时进行设计,通过分工协作完成任务。

当然,针对具体的设计要求,数字系统的设计方法会有所不同。无论采用何种方法,都要始终坚持逐层分解功能和分层次进行设计这两条不变的原则。