当前课程知识点:IC设计与方法 >  2、数字集成电路设计方法 >  b)组合逻辑电路 >  Video

返回《IC设计与方法》慕课在线视频课程列表

Video在线视频

Video

下一节:2-3时序逻辑电路的设计方法 (一)

返回《IC设计与方法》慕课在线视频列表

Video课程教案、知识点、字幕

各位同学

大家好

下面我们来讲数字电路的设计方法

数字电路这个知识

在我们大学本科的数字电路或者数字逻辑

或者叫逻辑电路等等

这些课程里面都讲过

在我们所学的知识里面

通常我们把数字电路分为

组合逻辑电路和时序逻辑路

我们首先来回顾一下

组合逻辑电路和时序逻辑电路的区别

要区分组合逻辑电路和时序逻辑电路

我们通常从两个层次的角度来进行区分

首先

我们要从功能的角度来区分它们

第一个层次是从功能角度去看

组合逻辑电路的

输出只和电路的当前输入有关系

时序逻辑电路的输出

不但跟电路的当前输入有关系

还跟电路的内部状态有关系

第二个层次是从电路的内部结构来考虑

组合逻辑电路的内部只有简单的逻辑单元

时序逻辑电路的内部呢

不但有简单的逻辑单元

还会有一些存储器

寄存器这样的存储单元

(时序逻辑)电路的内部是有反馈的

我们首先回顾一下

组合逻辑电路的设计方法

刚才已经提到了组合逻辑电路

它的输出只和电路的当前输入有关系

而跟电路的内部状态是没有关系的

我们可以把组合逻辑路画成一张简单的图

在幻灯片右边这张图里边我们可以看到

电路内部只是有一些简单的逻辑单元

电路的信号流向都是从左到右的

一个单向的流向过程

电路里面是没有反馈的

对于这样的一个电路

我们可以用左边这张图来表示出来

电路是一个单向流向过程

我们可以把电路的输入跟输出

用一个逻辑函数表示出来

就像下面这样

函数y等于f(x)这样一个函数

通常对于组合逻辑电路的内容

我们在表示它的时候有几种不同的形式

最简单的,我们可以把输出跟输入

用一个逻辑函数表示出来

我们举三个例子

例如我们可以写出y等于A与上B或上C

这样用ABC这样的一个简单的

一个逻辑方程来表示出来

对于复杂的电路

我们可以把两个信号通过加减乘除

这样一些复杂的高层次的

数据运算给它算出来

我们也可以用

比较复杂的逻辑函数给它表示出来

对于有些电路需求

很难用逻辑函数给它表示出来

这时候

我们可以用真值表把电路的输入跟输出

之间的所有可能的情况全部列举出来

就像左下角这样的真值表

我们把输出跟输入一共有8种甚至更多的

可能性全部用一张表格给它标出来

就可以描述出输出跟输入之间的关系

除了这两种方法之外

有些输出跟输入之间

很难用一个逻辑方式给它表示出来

这时候

我们可以用类似C语言的

流程图的方式给它表示出来

例如我们要求ABC的最大值

我们可以先求出A和B的最大值

我们把它保存在MAX里边

然后再求出MAX跟C之间的一个最大值

就像右边这样一个流程图

我们关注一下

在这张流程图里边

从输入到输出是一个单向的流向

没有一个往回的反馈过程

这就是组合逻辑电路的一个特点.

除了关注电路的逻辑功能之外

我们还要关注电路的时序特性

在这张图里面

我们描述了一个最简单的

与门的时序电路的特性

我们可以看到输出信号

C跟输入信号AB之间有一个延时

有一个明显的延时

这是任何物理器件都具备的一个特点

任何一个物理器件都有一个延时

在这个电路里面

它的延时是Tpd

不管输出信号C从低变到高还是从高变到低

都有这么一个延时

对于实际的物理器件

它的延时特性是非常复杂的

对于这样一个简单的与门而言

输出信号C从低到高变化的时候

和从高到低变化的时候

这两个延时会存在一个微小的差异

在我们这张图里边

用两个不同的数据参数

描述出了这个电路差异

对于我们的输入信号在变化的时候

例如A和B同时发生变化的时候

由于器件的物理特性的不同

或者说由于信号传输时间上的

差异会导致信号在实际发生变化的时候

会有微小的差异

这就会导致出输出信号C

在变化的时候会有一个毛刺

这是组合逻辑电路的一个特点

我们刚才已经学会了

怎么去描述组合逻辑电路功能

对于这样一个组合逻辑电路

我们怎么对他进行设计呢

通常我们分为4个步骤来完成这样的

电路的设计

第一步

我们先确定电路有哪些输入信号和输出信号

第二步

根据这些输入信号输出信号

我们描述出电路的

内部功能,完成电路的功能的描述

第三步

根据我们刚才描述的这样的功能

我们已经用逻辑函数

用真值表或者说用卡诺图

或者说用这个流程图描述出了电路的功能

我们要对它进行优化

用各种逻辑定理

用卡诺图优化的方法去完成优化

用一个最简单的表达式把这个东西描述出来

优化的目的是将来在实现的

时候可以用尽量少的

电路单元去把这个电路实现出来

完成了优化以后

第四步我们用一张电路图把电路

最终给它表述出来

这里面的电路图其实跟刚才优化的

结果是一个一一对应的结果

这就是我们传统的组合逻辑电路的

设计方法

在这样的设计方法里面

我们看一下第一步

第一步看起来非常简单

只是确定电路的

输入信号跟输出信号有哪些

但这在工程里面也是非常重要的

举一个例子

我们现在在银行里面

银行系统都采用一些非常复杂的密码算法

大家都对银行的安全非常关注

是吧

实际上银行里边采用的RSA

或者是ECC这样的密码算法

采用的密码的位数都非常多

通常会到1024位甚至2048位以上

假设你设计一个密码比较电路

比较电路的两个输入端

都是1024位以上的密码

那如果我们把这个电路的

输入确定成是两个1024位的信号的话

这个电路的输入信号就超过2000位以上

你将来做出来的芯片

或者说这个电路就有两千位以上的

输入信号

大家可能都知道

我们现在最复杂的英特尔CPU

也不过才1000多个管腿

就能想象出你做的

一个非常简单的密码比较电路

它的芯片的管腿数甚至比一个CPU都要多

这在工程上就完全不可能了

所以我们就要去想一个更好的解决办法

用尽量少的管腿来实现我们的芯片

我们已经总结好了

组合逻辑电路设计的步骤有4个步骤

下面我们来看一个实际的例子

我们来完成一个举重运动员的

裁判表决器的电路设计

题目我就不再念一遍了

大家可以看到

对于这么一个举重运动员的比赛

有三个裁判来进行判决

我们确定首先按照第一步

我们要确定一下电路的输入信号都有哪些

以及输出信号都有哪些

我们有三个裁判员ABC

我们就可以确定电路的输入是三个信号ABC

输出呢

我们要把三个裁判员的不同的判决结果

合成一个结果输出

所以我们只要有一个输出信号

这就是第一步

我们确定好电路的输入跟输出

第二步

我们要确定输入跟输出之间的关系

对于这样的电路需求

我们很难直接用一个逻辑方程式

把输出跟输入之间的关系给它表示出来

所以的话我们可以换用第二种方法

我们用真值表把裁判员的

总的表决结果y和三个ABC的输入之间的关系

我们用一个真值表给它罗列出来

我们可以最终按照这个规则罗列出

罗列出8个结果

我们先不看里面的具体内容

罗列完这8个结果以后

我们就已经完整地描述出电路的功能了

下一步也就是第三步

我们要进行电路的优化

用一个比较简单的逻辑函数给它表示出来

这里面我们就可以

用上本科所学的知识了

我们可以用逻辑定理

可以用卡诺图或者用其他的方式

去优化出一个最简单的函数

函数简单的话

我们将来实现的电路就会比较简单

完成了逻辑优化以后

那么下面就是我们的第四步

我们用一张电路图

把这个逻辑函数给它表示出来

在这(张图)里面

我们可以看一下

这里面的电路图跟逻辑函数之间其实是一个

非常简单的一一对应的关系

我们回顾一下刚才的例子

我们可以看到在这里面的

第三步逻辑优化和第四步画出

电路的过程

这其实是一个非常机械(重复)的过程

逻辑优化

用到的知识是什么呢

是我们所学的卡诺图的

优化方法和逻辑定理这些优化方法

随着现在计算机的发展

计算机的运算速度非常快

所以

这些逻辑优化过程完全可以由

计算机上的自动化程序来完成优化

根据优化结果

画出电路这个过程也可以由工具自动的

帮我们把电路图给它画出来

所以

我们充分的去使用计算机的

这种优化功能以后

我们就可以把第三步和第四步

完全交给计算机来做

这样

我们的设计方法就可以变成幻灯片上

所给出的这种新的设计方法

我们设计人员的工作只需要集中到

第一步和第二步

我们确定好电路的输入输出信号

以及确定好他们之间的关系

然后我们就把所有事情全部交给软件去完成

以刚才这个例子为例

我们可以看一下幻灯片上

我们的设计人员完成第一步和第二步以后

我们只需要用一种规范化的语言

例如VHDL语言

或者是Verilog语言

把电路的功能描述出来

在刚才这个例子里面

我们描述功能就是红色这部分

主要就是红色的这部分

y等于A与上B加上A与上C

剩下的工作就由软件

去帮我们完成逻辑优化

并且画出具体的电路

最后我们来总结一下

组合逻辑电路的设计方法

按照硬件描述语言的设计方法

基于硬件描述语言的设计方法

我们作为设计人员只要做三步:第一步

我们确定好电路都有哪些输入和输出信号

第二步

我们描述出输出跟输入之间的关系

我们用逻辑函数、真值表或者流程图的方式

把这个关系给它表示出来

第三步

我们用硬件描述语言

把这个关系用语言给它表示出来

然后剩下所有事情都由

软件去帮我们把最终的电路做出来

这就是基于硬件描述语言的

组合逻辑电路设计方法

IC设计与方法课程列表:

课程准备:Quartus II软件的下载

-软件下载说明

--Quartus II软件下载教程

1、集成电路的发展

-a) 集成电路的应用及市场

--1-1集成电路应用及市场

-a) 集成电路的应用及市场--作业

-b)集成电路的制造过程

--1-2 集成电路的制造过程

-b)集成电路的制造过程--作业

-c)从CPU的发展看IC的进展

--1-3从CPU的发展看IC的进展

-c)从CPU的发展看IC的进展--作业

-d)从行业的发展看IC的进展

--Video

-d)从行业的发展看IC的进展--作业

-e)从ISSCC看IC的发展方向

--讲课视频

-e)从ISSCC看IC的发展方向--作业

2、数字集成电路设计方法

-a)数字系统的实现方法 (ASSP/FPGA/ASIC的对比)

--讲课视频

-a)数字系统的实现方法 (ASSP/FPGA/ASIC的对比)

-b)组合逻辑电路

--Video

-2、数字集成电路设计方法--b)组合逻辑电路

-c)时序逻辑电路(1)

--2-3时序逻辑电路的设计方法 (一)

-d)时序逻辑电路(2)

--2-3时序逻辑电路的设计方法 (二)

-2、数字集成电路设计方法--d)时序逻辑电路(2)

3、Verilog语法

-a)Verilog的历史和学习要点

--讲课视频

-b)端口、信号及数据类型

--讲课视频

-b)端口、信号及数据类型--作业

-c)逻辑电平及数据操作

--讲课视频

-3、Verilog语法--c)逻辑电平及数据操作

-d)Assign 语句

--3-1-4assign语句

-e)Assign 举例

--3-1-5 Assign 举例

-f)Always

--3-1-6 Always

-f)Always--作业

-g)阻塞与非阻塞赋值

--Video

-3、Verilog语法--g)阻塞与非阻塞赋值

-h)D触发器的描述

--Video

-i)时序电路的设计

--Video

-i)时序电路的设计--作业

-j) 面向测试的Verilog语法(1)

--3-3-1面向测试的Verilog语法(1)

-k) 面向测试的Verilog语法(2)

--3-3-2 面向测试的Verilog语法(2)

-k) 面向测试的Verilog语法(2)--作业

4、电路设计实例

-a)电路设计实例1

--Video

-b)电路设计实例2

--讲课视频

-b)电路设计实例2--作业

-c)电路设计实例3

--讲课视频

5、Modelsim仿真工具

-Modelsim仿真

--Modelsim仿真

6、Quartus工具

-a)综合及相关基本概念

--Video

-a)综合及相关基本概念--作业

-b)综合及优化

--Video

-c)门级仿真

--门级仿真

-d)Quartus综合及分析(1)

--讲课视频

-e)Quartus综合及分析(2)

--讲课视频

-e)Quartus综合及分析(2)--作业

-f)Quartus综合及分析(3)

--Video

-g)Quartus综合及分析(4)

--Video

-g)Quartus综合及分析(4)--作业

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。