进入大三下学期了,备战考研的同时也打算整理拓展所学的技能,到时候无论是通过考研初试接着参加复试还是考研失利找工作都能排得上用场。

数字电路这一块最近见识到了UCSD(加州大学)的国际一流水准的课程,深受震惊,所以打算从这里开始,但这个教程还是属于提纲性的,不会把用到的每个东西都解释清楚,但我会告诉大家需要哪些知识。

本系列打算开如下几章:
组合逻辑和同步时序设计
异步时序电路设计 实战:十六人投票器(multisim仿真后自制电路)
FSM(有限状态机)和HLSM(高级状态机)(上板实验)
memory和他们的Verilog实现(仿真和上板实验)
AD/DA转换和它们的Verilog实现(仿真和上板实现)

当然其中有些东西我会随着我的需求来改变,例如ADC这里我会根据我的射频系统学习的要求来做,敬请大家期待。

一.组合逻辑电路

组合逻辑电路,是指输入决定输出,没有记忆(没有储存功能,上一刻的状态不影响下一刻的状态)的数字电路。

要掌握组合逻辑电路设计需要的基本知识有:基本门电路(与、或、非和它们的组合运算)及其运算关系、用于数字电路的布尔代数(主要是卡诺图化简法的运用)。

组合逻辑电路设计的前提是分析,分析的步骤如下:
1、根据电路图,层层写出逻辑关系,最后得到电路输出和输入变量的关系表达式
2、对上一步得到的表达式进行化简,如果关系过于复杂则要使用代数化简或者卡诺图化简法
3、列真值表,说明电路的功能

设计组合逻辑的步骤则如下:
1、根据实际问题抽象出几个元素:输入、输出变量、逻辑要求(类似于函数的自变量、因变量、函数关系)
2、根据上一步中的几个元素,列出真值表
3、根据真值表,对函数进行化简和变换
4.选择合适的器件,画出电路图

这里有两个需要注意的点:
(1)在卡诺图中一定要注意,自变量两个相邻的状态只能差一个变量,比如输入AB,我们在列举它的四种取值时的排布是00、01、11、10,而不是按照二进制的大小来的
(2)化简的结果是不唯一的,实际工程中,我们常常受到一些限制,所以我们要清楚,即使是最简的逻辑函数,也是可以进行互相变换的,常见的与或、与非与非、或非、或非或非、与或非都可以互相转换,以满足不同的工程实际需求

如何认识常见的组合逻辑运算芯片?
这是一个常见的问题,实际上芯片可以理解为一个设计好并且集成完毕的组合逻辑模块,我们最关心的实际上是译码器(比如74ls138)和数据选择器(比如74ls151),因为他们都可以给出输入变量的全部最小项而任意逻辑函数都可以表示为最小项之和,所以这决定了他们的重要地位。

在这里有两种情况,第一是MUX的选择变量数等于逻辑函数输入变量数,第二是MUX选择变量数少于逻辑函数输入变量,前者只需要在所需最小项对应位置输入1,反之输入0就行了,后者则需要选定MUX选择变量上限个的选择变量,进行函数比对或者卡诺图化简,在某些数据选通口加上多出来的逻辑函数输入变量。

还有一个比较重要的事情是竞争和冒险,竞争是指同一时间2个输入信号向相反方向跳变,冒险则是电路出现了非预期的动作的现象。可以这么说,竞争和冒险没有任何必然关系!,某些同学可能认为竞争是冒险的充分条件,但其实竞争不一定引起冒险,还有一些同学认为竞争是冒险的必要条件,其实也不是!实际工程情况是非常复杂的,即使出现了冒险现象,也不能说一定是竞争引起的,这就是工程和理论的区别!

判断竞争的最简单方式是查看表达式中有没有出现某个变量和它自身反变量的与、或运算。而解决方法是引入冗余项或者添加电容器,但在工程上,这都无疑牺牲了数字电路的工作速度,这是不能容忍的。所以我们在工程中其实更多采取选通的办法。

二、基本同步时序电路
时序电路的基础是触发器的知识,还有用于数字电路的布尔代数。
触发器这里要注意空翻以及一次变换现象这两个地方,还有就是,不同触发器之间是可以互相转化以应对实际工程要求的,这个和之前提到的组合逻辑函数表达式相互转化是一样的。
这里还要提一下,我们国内很多大学的教学中弱化了触发器的动态特征,而我在看UCSD的教程时发现他们非常注重动态特性,包括建立时间、保持时间、传输延迟等等都会严格地计算并且表达在时序图中,我觉得这是非常值得我们借鉴的。

时序电路相比于组合逻辑电路来说,就在于多了存储功能,由基本触发器构成的组合逻辑电路实际上能储存一个bit的信息,并且初态严格决定了次态。

同步和异步是重要概念,同步是指所有触发器状态随同一时钟进行翻转。异步则意味着多个时钟或者根本不随时钟变化(比如一些芯片中异步置0功能可以在任意时刻进行clear操作)

同步时序电路的分析步骤是:
1.根据电路图写出时钟方程、驱动方程和电路的输出方程
2.驱动方程带入触发器特征方程,得出每个触发器状态方程
3.根据时钟从初态开始带入,一步步移动
4.画出状态转换图
5.根据状态转换图画时序图
6.分析功能,检查自启动

异步时序电路的分析主要注意不同时钟就行了

同步时序电路的设计步骤如下:
1.根据实际问题抽象出输入变量和输出变量,确定状态数(这个非常重要)
2.确定触发器的类型和个数,假设触发器个数为n,要保证2^n>电路状态数
3.根据次态和初态画出次态卡诺图,有必要的话要分解,然后得出状态方程
4.状态方程和触发器特征方程对比,确定电路结构
5.检查自启动和无效状态

本期就到此结束,谢谢观看!

数字电路设计总结(一):组合逻辑和同步时序设计相关推荐

  1. 关于fpga的语言逻辑异步电路同步时序电路终于读懂了

    原文链接: http://m.elecfans.com/article/575270.html 从大学时代第一次接触FPGA至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表.抢 ...

  2. 同步时序电路和异步时序电路

    一. 定义 在同步时序电路中,各触发器的时钟端全部连接到同一个时钟源上,只有当时钟脉冲到来时,电路的状态才能改变.(注意不要求是同一时钟,而是同源时钟.所谓的同源时钟是指同一个时钟源衍生频率比值为2的 ...

  3. 学fpga(组合逻辑和时序逻辑)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 很多人都以为写fpga,就是编写verilog,学习一门编程语言而已.这种观点,其实只对了一半. ...

  4. 双 JK 触发器 74LS112 逻辑功能。真值表_时序逻辑电路设计(一):同步计数器...

    时序逻辑电路设计(一):同步计数器 时序电路的考察主要涉及分析与设计两个部分, 上文介绍了时序逻辑电路的一些分析方法,重点介绍了同步时序电路分析的步骤与注意事项.本文就时序逻辑电路设计的相关问题进行讨 ...

  5. 数字逻辑 Chapter 5——同步时序逻辑电路

    5.1 时序逻辑电路概述 5.1.1 时序逻辑电路描述方法 若逻辑电路在任何时刻产生的稳定输出信号不仅与电路在该时刻的输入信号有关,还与电路过去的输入信号有关,则称为时序逻辑电路. 根据电路中是否有统 ...

  6. 组合逻辑和时序逻辑学习笔记

    目录 数字逻辑电路的种类 组合逻辑 时序逻辑 同步有限状态机 数字逻辑电路的构成 组合逻辑构成 时序逻辑构成 组合逻辑举例 一.一个八位数据通路控制器 二.一个八位三态数据通路控制器 数字逻辑电路的种 ...

  7. 数字电路设计——复位信号(异步复位、同步释放)

    数字电路设计--复位信号(异步复位.同步释放) 概述 同步复位 优点 缺点: 例1 例2 代码风格 异步复位 异步复位优点 异步复位缺点 移除复位信号的问题 异步复位问题解决--复位同步器.复位毛刺过 ...

  8. 组合逻辑和时序逻辑有什么区别

    根据逻辑电路的不同特点,数字电路可以分为:组合逻辑和时序逻辑. 1 组合逻辑: 组合逻辑的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原本的状态无关,逻辑中不牵涉跳变沿信号的处理,组合逻辑的ve ...

  9. 组合逻辑和时序逻辑的区别与联系

    根据逻辑电路的不同特点,数字电路可以分为:组合逻辑和时序逻辑 组合逻辑 组合逻辑的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原本的状态无关,逻辑中不牵涉跳变沿信号的处理,组合逻辑的verilo ...

  10. 基于 FPGA 的高级数字电路设计(7)单口 RAM、同步 FIFO、异步 FIFO 设计

    一.单口 RAM 设计 module BRAM_PORTA( input clka, input ena, input wea, input [3:0] addra, input [15:0] din ...

最新文章

  1. 贪心 ---- 贪心 + STL维护 + 划分集合 L. Neo-Robin Hood(好题)
  2. BigData-‘基于代价优化’究竟是怎么一回事?
  3. 8张图让你一步步看清 async/await 和 promise 的执行顺序
  4. 自定义ListView背景(解决了拖动变黑的效果)
  5. 谈谈重要的TCP、UDP
  6. matlab输入集合,matlab关于集合的操作大全
  7. 查看修改MySQL字符集
  8. 《软件需求分析(第二版)》第 6 章——获取客户的需求 重点部分总结
  9. numpy——zeros(), ones(), empty(), eye()
  10. 机器人植入情感芯片利与弊_马斯克活猪脑机接口试验成功!多芯片植入,硬币大小,实时读取脑电波,已被批准人脑实验...
  11. 夺命雷公狗---无限级分类NO2
  12. EPOLLONESHOT及其引发的EPOLL在ET能被多次触发吗?
  13. 好用!Visual Studio for mac(微软代码编辑器)中文版
  14. 《智能优化算法及其MATLAB实现》书籍出版啦
  15. C++ 默认构造函数的构建
  16. Macbook pro/air 2013 late -2014 使用转接卡更换NVME SSD休眠不醒问题的解决办法
  17. 1000瓶药水,一瓶有毒,用10只老鼠来判断到底是哪一瓶
  18. ## 第一节课第一串代码
  19. XSS网站漏洞如何修复 大牛支招让您网站更安全
  20. 【MILP】Mixed-Integer Quadratic Programming portfolio optimzation

热门文章

  1. 爱可生 mysql监控_actiontech-zabbix-mysql-monitor
  2. 两台计算机如何组成局域网,两台电脑如何建立局域网
  3. OPPO R17在哪里打开usb调试模式的完美流程
  4. 计算机id和密码怎么查,忘记Apple ID账号和密码怎么办?
  5. springboot呼伦贝尔旅游网站的设计与实现毕业设计源码091833
  6. 君望永远--纠缠在爱情的起点上 (转载)
  7. 游戏常用数据分析指标汇总
  8. 修改Office 2016安装路径的方法
  9. WIN10系统安装金蝶K3 WISE14.0以下客户端版本
  10. 读《三体_黑暗森林》