FPGA入门到精通系列1:数字电路基础知识
本文主要介绍数字电路基础知识,用最简洁的内容介绍最核心的知识。
1、数字电路是什么?
数字电路是利用电源电压的高电平和低电平分别表示1和0,进而实现信息的表达。模拟信号:随时间连续变化的信号。处理模拟信号的电路就是模拟电路。数字信号:随时间不连续变化的信号,离散变化。处理数字信号的电路就是数字电路。
2、数值表达
我们常用的数值表达方式是十进制,但在数字电路中采用的是二进制,如下图所示:
有符号二进制:
3、比特和字节
比特:二进制中的一个数字位称为 binary digit,用bit表示,常简写为“b”。
字节:1字节等于8比特,用byte表示,常简写为“B”。
4、1K 字节理解的差异
K、M、G、T 是表示大数据量时常用的单位。1K 的大小有 1000(10 的 3 次方)和 1024(2 的 10 次方)两种计数方法。
通常,衡量计算机内存和网络数据包大小时,1K 相当于 1024 比特。而在硬盘等存储器的标签上记述的尺寸或物理学中的 1K 相当于 1000。
5、反码与补码
反码 = 原码所有bit位取反
补码 = 反码+1
比如原码=0101,则反码=1010,补码=1011
6、MOSFET 的结构
目前数字电路基本上都是由 MOSFET 场效应管构成的。MOSFET 是一种在施加电压后可以像开关一样工作的半导体器件。MOSFET 有 P 型 MOSFET 和 N 型 MOSFET 两种,如下图所示。
7、逻辑运算与基本逻辑门电路
(1)逻辑运算使用 AND(逻辑与)、OR(逻辑或)、NOT(逻辑非)三种基本运算组合来实现各种运算。
(2)CMOS 基本逻辑门电路
8、存储元件
锁存器(Latch)就是一种存储元件,具有像闩锁一样锁住并维持数据的特性,通过组合基本的逻辑门可以实现。
(1)最简单的锁存器由一个2输入的AND门组成,将一路输入与输出连接形成回路。
(2)D锁存器(Data Latch,D-Latch,数据锁存器)
结构组成:由4个NAND组成,输入信号有D(DATA)和E(ENABLE),输出信号有Q和/Q。
工作逻辑:E 为 0 时保持前一个数据,E 为 1 时将输入 D 的数据输出到 Q。E为1时输入的 D 直接通过 Q 输出。
D锁存器构成以及电路组成如下:
真值表:
(3)D触发器
D 锁存器和 NOT 门组合,可以实现依据时钟信号同步并保存数据的D 触发器。
D 触发器有 D(Data) 和 C(Clock) 两个输入信号,Q 和/Q两个输出信号。
D触发器电路组合如下图所示:
D触发器的电路符号:
工作逻辑:当 D 触 发器的 C 为 0 时,前端 D 锁存器输出信号 D 的值,后端 D 锁存器保持之前的数据。当 C 为 1 时,前端 D 锁存器保持之前的数据,后端 D 锁存器将前端 D 锁存器保持的数据直接通过 Q 输出。
D触发器由于原理和构造简单,广泛应用于同步电路。
扩展知识:《建立时间与保持时间》
D触发器是由时钟信号的边沿来触发数据的存储动作的。因此,需要在时钟沿前后一段时间内将输入信号稳定下来。如果在时钟变化时输入信号也在变化,很可能无法正确存储数据。因此,为了让 D 触发器正确存储数据,需要有建立时间(setup time)和保持时间(hold time)两个基本条件。
建立时间是在时钟变化前必须稳定输入信号的时间,而保持时间是时钟变化后必须稳定输入信号的时间。
同时遵守建立时间和保持时间,就可以让 D 触发器正确的存储数据。具体的时序图如下所示:
9、组合逻辑电路和时序逻辑电路
数字电路可以分为组逻辑合电路和时序逻辑电路两种。(1)组合逻辑电路
组合逻辑电路是指输出值仅由输入信号的状态决定的电路,不依赖于过去的输入。从电路组成上来看,只包含门电路,不包含存储元件。如下图所示就是一个组合逻辑电路。
(2)时序逻辑电路
时序逻辑电路是指输出值同时依赖于现在和过去输入信号的逻辑电路。
从电路组成上来看,时序逻辑电路等于组合逻辑电路+存储电路。
从工作逻辑上来看,输出状态必须反馈到输入端,与输入信号共同决定组合逻辑的输出。
FPGA入门到精通系列1:数字电路基础知识的更多相关文章
- Matlab--从入门到精通(chapter2 matlab 基础知识)
Chapter2 Matlab 基础知识 1.基本数学运算符号 注:矩阵的右除是一般意义的除法,但是左除具有对称意义,即A./B=B.\A 2. 命令行中的常用标点 3.常见的操作命令 4.输出数据显 ...
- 数据库SQL语言从入门到精通--Part 3--SQL语言基础知识
数据库从入门到精通合集(超详细,学习数据库必看) 一.关系 单一的数据结构----关系 现实世界的实体以及实体间的各种联系均用关系来表示 逻辑结构----二维表 从用户角度,关系模型中数据的逻辑结构是 ...
- shell从入门到精通进阶之一:Shell基础知识
1.1 简介 Shell是一个C语言编写的脚本语言,它是用户与Linux的桥梁,用户输入命令交给Shell处理,Shell将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户. 下面是处 ...
- Provisioning Services 7.6 入门到精通系列之一:PVS前期规划
1. Provisioning Services 产品概述 Provisioning Services (简称PVS)采用了一种与传统映像解决方案截然不同的方法,从根本上改变了硬件与依托硬件而运行的 ...
- ArcGIS10从入门到精通系列实验图文教程(附配套实验数据持续更新)
@ 目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 本教程<ArcGIS从入门到精通系列实验教程>内容包括:ArcGIS平台简介.ArcGIS应用基础.空间数据的采集 ...
- redis入门到精通系列(二):redis操作的两个实践案例
在前面一篇博客中我们已经学完了redis的五种数据类型操作,回顾一下,五种操作类型分别为:字符串类型(string).列表类型(list).散列类型(hash).集合类型(set).有序集合类型(so ...
- Jenkins pipeline 入门到精通系列文章
Jenkins2 入门到精通系列文章. Jenkins2 下载与启动jenkins2 插件安装jenkins2 hellopipelinejenkins2 pipeline介绍jenkins2 jav ...
- 办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时)
办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时) 乔布斯的成功离不开美轮美奂的幻灯片效果,一个成功的商务人士.部门经理也少不了各种各样的PPT幻灯片.绿色资源网给你提供了 ...
- NHibernate从入门到精通系列
http://www.cnblogs.com/GoodHelper/archive/2011/02/17/1948744.html NHibernate从入门到精通系列(4)——持久对象的生命周期(上 ...
随机推荐
- SqlServer 局域网内不能连接对方数据库?
一直都是连接的远程测试服务器的数据库,今天想把自己的数据库开放出来让公司同事连接,竟然连接失败!转了很大一个圈终于搞定了. 接下来就把这次心历路程发出来,希望能帮助到有需要的博友. PS: 我和同事的 ...
- 熟悉JSP教程学习
- el-dialog设置为点击弹窗以外的区域不自动关闭弹窗
两种方法:单个设置或者全局设置 第一种:(单个设置) 在el-dialog标签中添加:close-on-click-modal="false"即可 <el-dialog ti ...
- petite-vue源码剖析-属性绑定`v-bind`的工作原理
关于指令(directive) 属性绑定.事件绑定和v-modal底层都是通过指令(directive)实现的,那么什么是指令呢?我们一起看看Directive的定义吧. //文件 ./src/dir ...
- Flume介绍安装使用
APache Flume官网:http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#memory-channel 目录 ...
- laravel7 ORM和laravel模型操作
1.什么是ORM 对象关系映射(Object Relation Maping),这个关系就是关系数据库.因此,顾名思义,ORM的核心是我们通过操作对应来操作关系数据库. ORM的优点: ORM提供了 ...
- PHP防止订单超卖,秒杀,限购,PHP高并发防止超卖代码实践
建表 1.订单表 CREATE TABLE `order` ( `id` int(11) NOT NULL AUTO_INCREMENT, `order_sn` varchar(45) NOT NUL ...
- 13、mysql锁
mysql锁 事务的隔离性是通过锁来实现的.为保证数据的一致性,需要锁对并发事务操作进行控制.同时锁机制也为实现MySQL的各个隔离级别提供了保证. mysql并发事务访问相同的记录会出现什么问题(在 ...
- Java数组经典例题
数组中元素的求和 public class T02 { public static void main(String[] args) { int[][]arr=new int[][]{{1,2,3,4 ...
- Linux kernel cfg80211_mgd_wext_giwessid缓冲区溢出漏洞
受影响系统:Linux kernel <= 5.3.2描述:CVE(CAN) ID: CVE-2019-17133 Linux kernel是开源操作系统Linux所使用的内核. Linux k ...