24小时联系电话:18217114652、13661815404
中文
公司新闻
数字系统设计
数字系统设计
创建新数字系统的设计流程是业内众所周知的流程。但是,初学者工程师可能会发现设计复杂的数字系统很困难,尤其是在涉及系统方法和面向团队的组织时,简单的临时技术无效。本文将讨论系统的数字系统设计,同时展示数字系统的基本概念,以简化对技术感兴趣的人的过程。
模拟与数字系统
首先,让我们讨论模拟信号和数字信号之间的区别,以便我们了解数字系统的优势,证明其在当今技术中的广泛使用是合理的。
模拟信号
模拟信号的幅度值连续分布在电压或电流范围内。这意味着信号电平可以采用任何值。此外,时间分布也是连续的,因此在任何给定时间点都有信息。因此,模拟信号可以以非常直接的方式提供信息:例如,热电偶的电压值可以与温度直接相关,无需进一步编码。然而,模拟信号难以处理和计算。
图 1:模拟信号
数字信号
另一方面,数字信号的幅度离散地分布在有限的值范围内。在现代系统中,此幅度仅限于两个级别,对应于逻辑 0 和 1。此外,时间是离散的,这意味着信息只能以最小时间间隔的整数倍变化,称为时钟。这允许通过每个时钟仅进行一次测量来访问信号中包含的所有信息。
图 2:数字信号
数字信号的优势
从某种意义上说,数字信号也是模拟信号。不同之处在于信息的存储方式。因为数字信号只有两个电平,我们可以建立一个信息阈值:如果幅度高于阈值,则认为是 1,如果低于阈值,则解释为 0。这允许应用布尔逻辑,这比处理模拟信息所需的微积分要容易得多。因此,使用数字信号可以简化系统的硬件和计算过程。
此外,由于精确的幅度水平不再重要(仅与阈值进行比较),因此信号几乎不受硬件退化的影响,例如外部噪声、温度、老化等。
因此,数字信号更容易设计,可以使用相同的硬件以不同的方式进行编程,更经济、灵活、处理速度更快、更容易设计,并且可以缩小到非常小的集成电路,填充单个芯片数以百万计的逻辑门。
信号兼容性
数字系统最重要的参数之一是要使用的信号的逻辑电平标准。这很重要,因为系统中的每个组件都应该相互兼容,以确保正常运行。业界主要有五种标准:5 V TTL、5 V CMOS、3.3 V LVTTL、2.5 V CMOS和1.8 V CMOS。
每个标准定义了定义信号逻辑值的电压幅度。有两种规格:输入逻辑电平(VIL、VIH)和输出逻辑电平(VOL、VOH)。在数字组件中,输入电压低于 VIL 时视为零,高于 VIH 时视为一。在输出中也会发生同样的情况,其中低于 VOL 的电压被认为是零,高于 VOH 的被认为是 1。通常,VOH > VIH 和 VOL < VIL,以确保下一个组件正确解释一个组件的输出电压。
为了理解兼容性,让我们考虑下面的情况,其中 2.5V CMOS 电路与 5V TTL 电路级联。2.5V CMOS电路的最小输出1为VOH = 2.3 V,高于5V TTL电路的最小输入1。逻辑零也是如此,CMOS 输出低于 VOL = 0.2 V,TTL 输入低于 VIL = 0.8 V。因此,组件在此配置中是兼容的。
图 3:几种标准的电压等级
数字设计范式
数字系统远没有模拟系统那么复杂。然而,这并不意味着设计在现实生活中很容易。对于小型系统,工程师和业余爱好者即使在没有系统组织的情况下使用“动态”设计方法也可以获得良好的结果。然而,对于大型系统,尤其是涉及专业团队的大型系统,忽略良好实践、分层设计技术以及系统规划、文档和沟通变得不切实际。
特设数字设计
Ad hoc设计通常是电路设计的初学者方法。它基本上是“动态设计”范式,其中问题在本地解决并在发现时隔离,而不考虑整个设备。尽管这种技术可以在简单的电路中工作,但它无法管理复杂的系统,因为针对孤立问题设计的解决方案通常无法系统地产生最佳行为。此外,这种范式很难应用于基于团队的项目,因为模块之间的通信和兼容性是不切实际的。
分层设计
分层设计包括首先观察整个项目,然后将其划分为子模块。然后单独设计每个子模块,并将其视为“黑匣子”。现在,每个问题都可以单独解决,但是为了兼容性和效率,模块之间的接口应该按照标准设计。
在基于团队的设计中,每个模块可以由不同的人或小组设计。在这个阶段,通信是避免兼容性问题的基础。此外,每个模块的 I/O 应遵循先前建立的标准,这些标准可能因项目而异。
图 4:分层设计框图
Gajski-Kuhn 图
Gajski-Kuhn Chart 或 Y-Chart 表示数字系统的硬件设计水平和观点。它由五个层次(由圆圈表示)和三个视角(由箭头表示)组成。每个圆圈描述一个抽象级别,每个箭头描述一种查看电路的方式。抽象级别沿箭头方向增加。
图 5:Gajski-Kuhn 图
在级别上下文中,电路设计可以采用两种方法:自顶向下方法和自底向上方法。自上而下的设计从较高的抽象级别(系统)到较低的级别(开关)。自下而上的方法则相反。
自上而下:这种方法从更高的抽象层次,系统圈开始。基本上,它从系统块的定义开始,根据行为、结构和/或几何形状对其进行定义和描述。然后,从下一个抽象层将模块划分为子系统,这些子系统是创建主模块所必需的。该过程一直持续到设计到达较低级别的块。这种方法提供了更全面的设计视图,更容易保持模块之间的一致性,并更容易专注于设计目标,这在主要块中进行了描述。
图 6:自上而下的方法
自下而上:另一方面,这种方法从设计的基本单元开始,即第一抽象层次的子模块,即开关。然后从较低到较高的抽象级别执行设计,最终到达主系统块。这种方法更适用于可用于构建第一个块的技术有限的情况,并且应首先设计系统的第一个块以避免达到可用技术无法满足的规格。
图 7:自下而上的方法
混合方法:可能是业界最常用的方法。较低级别由可用的半导体技术定义,因此它们是使用自底向上的方法设计的。但同时,更高层次的抽象也是采用自顶向下的方法设计的。最后,两个设计流程相遇,完成项目。
尽管存在三种不同的视角(行为、结构和几何),但设计流程可以在此过程中在视角之间切换。例如,自顶向下的设计可以从系统级的行为视角开始,到达寄存器传输级时跳转到结构视角。
数字系统设计步骤
问题定义
问题必须用一句话或几句话来定义,让团队中的每个人都清楚项目的目标。例如:
“设计一个接受三个输入并提供两个输出的逻辑端口:输出 1 在输入 1 和输入 2 之间执行 AND 运算,输出 2 在输入 1 和输入 3 之间执行 OR 运算。”
功能规格
使用逻辑语句创建描述系统行为的函数算法。在我们的简单示例中:
OUT1 = IN1 和 IN2
OUT2 = IN1 或 IN3
框图
使用块符号来描述信号流,因此每个块是整个系统的不同模块,应单独设计。方块图还指定了每个方块之间的关系。
图 8:示例数字系统的框图
结构设计
现在应该使用可用的技术来设计和表示每个块。例如,微电子电路可用于设计将直接在硅上制造的块,并且在实现可编程门阵列 (PGA) 时可以使用硬件描述语言。为了简化电路表示,中等规模集成 (MSI) 块,例如多路复用器和编码器。
模拟和测试
最后,可以对每个模块和整个系统进行仿真以验证设计。为此,市场上有多种电子设计自动化 (EDA) 程序。模拟后,可以制造和测试系统以进行实际验证。