1、 第二章 数字系统的基本算法第二章 数字系统的基本算法第二章 数字系统的基本算法第二章 数字系统的基本算法与逻辑电路实现与逻辑电路实现与逻辑电路实现与逻辑电路实现 本章主要介绍数字本章主要介绍数字本章主要介绍数字本章主要介绍数字系统的基本算法设计及系统的基本算法设计及系统的基本算法设计及系统的基本算法设计及对应的逻辑电路的实现对应的逻辑电路的实现对应的逻辑电路的实现对应的逻辑电路的实现方法。方法。方法。方法。2.1 2.1 算法设计概述算法设计概述算法设计概述算法设计概述2.1.12.1.1 算法设计中主要考虑的因素算法设计中主要考虑的因素算法设计中主要考虑的因素算法设计中主要考虑的因素1.1
2、.逻辑指标逻辑指标逻辑指标逻辑指标 这是数字系统最重要、最关键的指标,表达系统应完成的功能。这这是数字系统最重要、最关键的指标,表达系统应完成的功能。这这是数字系统最重要、最关键的指标,表达系统应完成的功能。这这是数字系统最重要、最关键的指标,表达系统应完成的功能。这是本章讨论的核心内容。是本章讨论的核心内容。是本章讨论的核心内容。是本章讨论的核心内容。2.2.非逻辑指标非逻辑指标非逻辑指标非逻辑指标 指逻辑功能以外其他非逻辑约束因素。如电源电压、工作速度、系指逻辑功能以外其他非逻辑约束因素。如电源电压、工作速度、系指逻辑功能以外其他非逻辑约束因素。如电源电压、工作速度、系指逻辑功能以外其他非
3、逻辑约束因素。如电源电压、工作速度、系统功耗、成本价格等。统功耗、成本价格等。统功耗、成本价格等。统功耗、成本价格等。注意注意注意注意:以上两种指标往往是相互制约的,必须同时考以上两种指标往往是相互制约的,必须同时考 虑,相互 协调虑,相互 协调,寻找最佳的方案。也就是说,合理地 寻找最佳的方案。也就是说,合理地 定义逻辑指标和非逻辑指标,直接关系到待设计系统定义逻辑指标和非逻辑指标,直接关系到待设计系统 的性能价格比问题。的性能价格比问题。2.1.2 2.1.2 硬件结构对算法设计的影响硬件结构对算法设计的影响硬件结构对算法设计的影响硬件结构对算法设计的影响1.采用器件的结构、规模、性质不同
4、时,将用不采用器件的结构、规模、性质不同时,将用不采用器件的结构、规模、性质不同时,将用不采用器件的结构、规模、性质不同时,将用不同的算法设计对策同的算法设计对策同的算法设计对策同的算法设计对策 若使用常规的若使用常规的若使用常规的若使用常规的 SSISSI、MSIMSI、LSILSI 等通用集成等通用集成等通用集成等通用集成电路设计时,往往要考虑硬件结构尽可能简单电路设计时,往往要考虑硬件结构尽可能简单电路设计时,往往要考虑硬件结构尽可能简单电路设计时,往往要考虑硬件结构尽可能简单,芯片用量少;若采用,芯片用量少;若采用,芯片用量少;若采用,芯片用量少;若采用 ASICASIC 或单片机系统
5、时,或单片机系统时,或单片机系统时,或单片机系统时,因为器件相当丰富,所以,算法设计也不尽相因为器件相当丰富,所以,算法设计也不尽相因为器件相当丰富,所以,算法设计也不尽相因为器件相当丰富,所以,算法设计也不尽相同。同。同。同。2.2.数字系统算法设计与软件算法设计的区别数字系统算法设计与软件算法设计的区别数字系统算法设计与软件算法设计的区别数字系统算法设计与软件算法设计的区别 系统算法的最终目标是用硬件来实现,它的系统算法的最终目标是用硬件来实现,它的系统算法的最终目标是用硬件来实现,它的系统算法的最终目标是用硬件来实现,它的算法与硬件结构有良好的对应性,可实现性或算法与硬件结构有良好的对应
6、性,可实现性或算法与硬件结构有良好的对应性,可实现性或算法与硬件结构有良好的对应性,可实现性或可操作性很强;软件算法则完全由计算机来实可操作性很强;软件算法则完全由计算机来实可操作性很强;软件算法则完全由计算机来实可操作性很强;软件算法则完全由计算机来实现。现。现。现。2.2 2.2 几种常用的算法设计几种常用的算法设计几种常用的算法设计几种常用的算法设计1.1.跟踪法跟踪法跟踪法跟踪法 按照确定的系统功能,由控制要求逐步细化,逐步具按照确定的系统功能,由控制要求逐步细化,逐步具按照确定的系统功能,由控制要求逐步细化,逐步具按照确定的系统功能,由控制要求逐步细化,逐步具体化,从而导出的系统算法
7、称为跟踪法。体化,从而导出的系统算法称为跟踪法。体化,从而导出的系统算法称为跟踪法。体化,从而导出的系统算法称为跟踪法。例:例:试设计一个简单的试设计一个简单的试设计一个简单的试设计一个简单的 n n 位串行数字门位串行数字门位串行数字门位串行数字门锁系统,该锁 在输入锁系统,该锁 在输入锁系统,该锁 在输入锁系统,该锁 在输入 n n 位与规定的密码位与规定的密码位与规定的密码位与规定的密码相符时,使绿灯亮,用钥匙才能打开;相符时,使绿灯亮,用钥匙才能打开;相符时,使绿灯亮,用钥匙才能打开;相符时,使绿灯亮,用钥匙才能打开;否则报警,红灯亮。否则报警,红灯亮。否则报警,红灯亮。否则报警,红灯
8、亮。跟踪法分析:跟踪法分析:跟踪法分析:跟踪法分析:(1 1)根据设计要求,构思出数字门锁示意图)根据设计要求,构思出数字门锁示意图)根据设计要求,构思出数字门锁示意图)根据设计要求,构思出数字门锁示意图(2 2)由构思示意图可得数字锁简单流程图)由构思示意图可得数字锁简单流程图)由构思示意图可得数字锁简单流程图)由构思示意图可得数字锁简单流程图图图图图 2.2.12.2.1 2.2 2.2 几种常用的算法设计(续)几种常用的算法设计(续)几种常用的算法设计(续)几种常用的算法设计(续)(3 3)跟踪细化跟踪细化跟踪细化跟踪细化 需要考虑以下问题:需要考虑以下问题:需要考虑以下问题:需要考虑以
9、下问题:如何确定二进制代码的输入如何确定二进制代码的输入如何确定二进制代码的输入如何确定二进制代码的输入 确定使用的规程问题确定使用的规程问题确定使用的规程问题确定使用的规程问题 输入密码与正确代码的比较输入密码与正确代码的比较输入密码与正确代码的比较输入密码与正确代码的比较 问题问题问题问题 (4 4)输入错误和操作错误的报警)输入错误和操作错误的报警)输入错误和操作错误的报警)输入错误和操作错误的报警 显示问题显示问题显示问题显示问题(5 5)计数器位数,清零的确定等)计数器位数,清零的确定等)计数器位数,清零的确定等)计数器位数,清零的确定等(6 6)喇叭报警的声音问题)喇叭报警的声音问
10、题)喇叭报警的声音问题)喇叭报警的声音问题 图图图图 2.2.22.2.2123 跟踪法细化的跟踪法细化的跟踪法细化的跟踪法细化的 算法流程:算法流程:算法流程:算法流程:图图 2.2.3 串行数字算法流程锁详细 2.2 几种常用的算法设计(续)几种常用的算法设计(续)2.归纳法归纳法 先将比较抽象、概略的系统功能设计具体化,然先将比较抽象、概略的系统功能设计具体化,然后再经过一般规律性的归纳,由此设计的系统算法后再经过一般规律性的归纳,由此设计的系统算法称之为归纳法称之为归纳法3.划分法划分法 把一个运算法复杂的系统按一定规则划分成为一把一个运算法复杂的系统按一定规则划分成为一系列简单的运算
11、,而这些简单运算由基本的算术运系列简单的运算,而这些简单运算由基本的算术运算和基本的逻辑运算来完成的设计方法称为划分法算和基本的逻辑运算来完成的设计方法称为划分法。例:例:试设计实现 试设计实现 Z=(a+b)/(c-d)的算法流程图的算法流程图?2.2 几种常用的算法设计(续)几种常用的算法设计(续)分析:分析:分析:分析:它可以它可以它可以它可以划分成为加、减划分成为加、减划分成为加、减划分成为加、减、除三个基本运、除三个基本运、除三个基本运、除三个基本运算。它的流程算。它的流程算。它的流程算。它的流程图如右图所示。图如右图所示。图如右图所示。图如右图所示。图图图图 2.22.2.4.4
12、例:出算式试导实现z=(a-b)*(c+d)的算法流程图又是例又是例题啊题啊!又是例又是例题啊题啊!2.2 2.2 几种常用的算法设计(续)几种常用的算法设计(续)几种常用的算法设计(续)几种常用的算法设计(续)4.解析法解析法 当遇到难以分解的计算过程时,采用数学分析对其当遇到难以分解的计算过程时,采用数学分析对其进行数值近似,转换成多项式或某种迭代过程,然后进行数值近似,转换成多项式或某种迭代过程,然后画出其算法流程图的方法称之为解析法画出其算法流程图的方法称之为解析法又是例又是例题啊题啊!又是例又是例题啊题啊!例:例:设计 设计 y=/x y=/x 的算法流程图的电路的算法流程图的电路分
13、析:问题的核心是求分析:问题的核心是求 x 的平方根,一种常用的方法是牛顿的平方根,一种常用的方法是牛顿逐次逼近法。方法的核心是给出一个逐次逼近法。方法的核心是给出一个/x 的估算值的估算值 y0,用子运,用子运算算 y1=(y0+x/y0)/2,求得,求得 y1,同理求得,同理求得 y2,y3 逐次递进逐次递进 2.2 几种常用的算法设计(续)几种常用的算法设计(续)设设 x=3,令,令 y0=1,其计算过程为,其计算过程为:序号 序号 y W=x/y V=y+W U=V/2 0 1 3 4 2 1 2 1.5 3.5 1.75 2 1.75 1.714 3.464 1.7321 3 1.7
14、321 1.73200 3.4641 1.73205 通过解析,将平方根的运算转化成通过解析,将平方根的运算转化成W=x/y,=y+W,U=V/2 三种三种基本运算,由此可设计出算法的流基本运算,由此可设计出算法的流程图:程图:2.2 几种常用的算法设计(续)几种常用的算法设计(续)开始开始w=x/yREAD x,y=y0u=(y+w)/2u-y=允许的误差允许的误差结束结束Noy=u开始开始w=x/yREAD x,y=y0u=(y+w)/2u-y=允许的误差允许的误差结束结束Yes图图 2.2.5 2.2 几种常用的算法设计(续)几种常用的算法设计(续)5.5.综合法综合法综合法综合法 在实
15、际应用中,大部分数字系统的算法比较复杂,总是在实际应用中,大部分数字系统的算法比较复杂,总是要要综合、全面地考虑,逐步分解综合、全面地考虑,逐步分解逻辑关系,最后获得完整的算逻辑关系,最后获得完整的算法流程图。所以,把跟踪法、法流程图。所以,把跟踪法、归纳法、划分法、解析法等几归纳法、划分法、解析法等几种设计算法组合起来应用的方种设计算法组合起来应用的方法称为综合法法称为综合法说明:说明:因为系统的逻辑功能种类繁多因为系统的逻辑功能种类繁多,采用的方法和手段也多种多样,至今尚没有找到可以设计采用的方法和手段也多种多样,至今尚没有找到可以设计出各种算法的通用的规则、方法、步骤。出各种算法的通用的
16、规则、方法、步骤。例:一个倒数器系,求数试设计变换统A 的倒数 1/A 的近似值Z。又是例又是例题啊题啊!又是例又是例题啊题啊!A 的数值为:的数值为:要求变换结果满足:要求变换结果满足:根据牛顿定律,其变换式可按:根据牛顿定律,其变换式可按:可令可令 Z 的初值为的初值为 1,只要满足:,只要满足:可得:可得:倒数变换器示意图倒数变换器示意图倒数变换器简单算法流程图倒数变换器简单算法流程图倒数变换器算法流程图倒数变换器算法流程图 例:一个人体子秤控制装置的算法流程。人体子秤试设计电该电控制装置能有序、正确的管理以下功能的。应实现1、行人体体重的量,并能以进测3 位十制数字示体重的千进显克数。2、行人体身高的量,并能以进测3 位十制数字示高度的厘进显米数。3、有体重和身高的信息,并根据被象的具体情况,自实测测对算并示被象的肥胖程度。动计显测对电子秤测量系统原理框图电子秤测量系统原理框图 电子秤控制装置逻辑框图电子秤控制装置逻辑框图 人体电子秤控制装置算法流程图人体电子秤控制装置算法流程图 2.3.1 2.3.1 顺序(或串行)算法结构顺序(或串行)算法结构顺序(或串行)算法结构顺序(或
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1