数字设计基础与应用 第1章 数字逻辑基础1.1 数字设计引论 1.2 数制与编码

硬知❤知知 2019-09-09 13:12
51

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/COFACTOR/article/details/100166105
教材:数字设计基础与应用 第二版 邓元庆 关宇 贾鹏 石会 编著 清华大学出版社
源文档高清截图在后

第1章 数字逻辑基础
1.1数字设计引论
1、自然界的物理量可以分为模拟量和数字量。模拟量是可以连续取值的量,比如温度、速度、长度等。数字量是不能连续取值的量,比如人数、页数等。一些物理量严格来说也是分立的,如电荷量。使用电子电路处理物理量时,需要将非电学量转化为电学量,比如电压和电流,就可以被电子电路处理。类似地,电信号也分为模拟信号和数字信号。

2、数字信号不但在时间上是不连续(离散)的,取值也是离散的。将模拟信号转化为应用最广的一种数字信号——二值信号,也称二值化。

3、二值信号用0和1来表示。正逻辑表示法中,0、1分别代表低电平(如0 V)、高电平(如 +5 V);负逻辑表示法中,0、1分别代表高电平、低电平。

4、处理模拟信号的电路叫模拟电路,处理数字信号的电路叫数字电路。常见的模拟电路有运放,常用的数字电路则有编码器、计数器等。

5、数字电路与数字系统(定义见第5章)的特点:
(1)集成度高。数字电路最基本的逻辑运算元件是逻辑门。将数字电路做在单个晶片(通常由锗、硅等构成)上(也称芯片),就称为集成电路(IC)。将数字电路集成可以显著减小体积、降低功耗、提高可靠性。GV100 GPU已经集成了约211亿晶体管。
(2)快速灵活的信息存储与检索能力。
(3)易于实现检错、纠错机制。数字信号的取值是离散的,在处理过程中可以利用这个特性去进行纠错,克服信息在传输、变换、处理过程中的损耗与畸变。数字系统中很容易应用各种检错纠错编码,进一步提高可靠性。
(4)灵活的可编程特性。既可以通过软件层对数字系统编程,也可以通过对数字系统中的可编程逻辑器件(PLD)的编程改变硬件结构,来针对性实现完成特定任务的硬件结构。
(5)更强的处理能力。比如Core i9-9900K在5GHz的加速频率下双精度运算速率达到640 GFLOPS。

1.2数制与编码
1.2.1数制

1、数制也称计数制,是用规定的符号和规则来表示数值的方法。人们在生活中常用的数制是十进制计数法(Decimal number system),简称十进制。计算机采用二进制(Binary number system)表示法来进行存储与运算。

2、大多数时候一个数的每一位都有一个权(weight),每个数码表示的数需要乘以对应位的加权再相加,才表示这个数。例:
1234 = 1×1000 + 2×100 + 3×10 + 4×1
十进制数1234中,千位、百位、十位、个位的加权分别为103、102、101、100。
对于其它进制的数,也可以写成这样的形式。

3、n进制的进制数n称为该进制的基数(base / radix)。

4、二进制的基数是2,只使用0、1两个字符。第i位的权是2i。二进制按权展开可以化为十进制。例如:
(10011)2 = 1×24 + 0×23 + 0×22 + 1×21 + 1×20 = (19)10
二进制也允许包含小数部分。小数点右侧每一位的权依次为2-1、2-2、2-3、……。
二进制数最左边的位叫作最高有效位(MSB,most significant bit),最右边的位叫作最低有效位(LSB,least significant bit)。

5、二进制只有0、1两种符号,与硬件中的两种电平相对应,是一种适用于硬件的数值表示法。由于基数太小,二进制不适合人们直接使用。为了便于人们读写,在数字系统中常常将二进制数写成十六进制(Hexadecimal)。十六进制数第i位的权是16i。用A、B、C、D、E、F分别表示10、11、12、13、14、15。

6、将十进制整数转换为二进制,通常采用“除2取余法”,从最低有效位(LSB)开始写入第一次取余结果,一直写到最高有效位(MSB)。此时商为零,除法运算结束。
如果十进制数存在小数,则需要先用除2取余法处理整数部分,然后用“乘2取整法”处理小数部分。小数点右侧第一位记为MSB。将原小数部分不停乘以2然后取整数部分作为对应的二进制位的数值,然后将剩余的小数部分继续作乘2取整法,一直到小数部分为零。例如:
将十进制数0.6875转换为二进制。则
0.6875×2 = 1.375,小数点后第1位为1。
0.375×2 = 0.75,小数点后第2位为0。
0.75×2 = 1.5,小数点后第3位为1。
0.5×2 = 1,小数点后第4位为0。
所以(0.6875)10 = (0.1011)2。
但是大多数十进制小数转换为二进制时,每乘一次2后小数部分会形成循环。例如对十进制数0.4:
0.4×2 = 0.8,小数点后第1位为0。
0.8×2 = 1.6,小数点后第2位为1。
0.6×2 = 1.2,小数点后第3位为1。
0.2×2 = 0.4,小数点后第4位为0。
0.4×2 = 0.8,小数点后第5位为0。
0.8×2 = 1.6,小数点后第6位为1。
0.6×2 = 1.2,小数点后第7位为1。
0.2×2 = 0.4,小数点后第8位为0。
……
这时可以根据精度要求保留若干位小数。例如,(0.4)10≈(0.011010)2。在末尾采用“0舍1入”的方法取得指定的位数。

1.2.2有符号数的表示法

1、自然书写中,我们用符号 + 表示整数而符号 - 表示负数。但是在数字系统中,所有信息都是用0和1表示的,符号也不能例外。因此专门设置了一位符号位(sign bit)。符号位为0和1分别表示正数和负数。这是因为数字系统中采用补码来读写数。
在说明补码的定义之前,先举例解释原码和反码两个概念。
原码可以由原二进制数的最高位加上符号位来表示。符号位的数值由上述说明确定。
至于反码,如果二进制数是正数,就与原码相同;如果二进制数是负数,就将除了符号位以外的部分的绝对值的每一位取反。
采用补码表示时,如果二进制数是正数,其补码表示与原码和反码相同。如果二进制数是负数,就将二进制绝对值的各位取反后加1(末位加1)。
归纳为:
对正二进制数,原码、反码、补码相同,符号位为0。
对负二进制数,原码的数值位是二进制绝对值,原码数值位取反就得到反码,反码再加1就得到补码,三种表示法的符号位都是1。
对人而言,原码更加简单、清晰,但对计算机则不然。原码运算的软件算法与对应的硬件实现较为复杂。而对于补码,由于有符号二进制加减都能统一为加法,计算机运算起来十分简单。
无论对两个二进制数加和减,只需要将两个数的补码直接相加即可。进行计算时,两个数要写成同样的位数,不够的在高位补零。补码加法运算时,最高位向上进位的1直接丢失。
这里不予证明。
两个不同符号的补码相加总是能得到正确的结果,但如果两个同符号的补码相加,就可能溢出。

2、数字系统不能直接识别声音、图片、视频等信号。如果需要通过数字系统处理各种信号,就必须将信号都编码为0、1序列,才可以输入数字系统。

3、格雷码(Gray Codes)是一种循环码,与自然二进制码(一般的二进制码)不同,每一位都没有权,属于无权码。循环码具有相邻性和循环性。相邻性指任意两个相邻的码仅有1位不同,包括首尾两个码。这种特性使得循环码编码后的数据在传输过程中的出错率降低,且计数器的工作更可靠。格雷码除了具有一般循环码的特点以外,还具有反射性。所谓反射性,是以编码最高位的0和1的分界为镜面,处于对称位置的代码除了最高位以外都相同。

4、二—十进制码(BCD码,Binary coded decimal code)是一种简单的二进制编码表示。它将十进制的每一位数都用对应的4位二进制码来表示。例如 (259)10 = (0010 0101 1001)。
8421BCD码是最常用的BCD码。其编码方法就是上述举例采用的编码方式。可见,每个二进制码的最高位到最低位的权值分别为8、4、2、1。在8421BCD码中,整数和小数部分的编码方法是一样的。
5421BCD码的二进制码的最高位到最低位的权分别为5、4、2、1。在十进制0 ~ 9的计数过程中,最高位对应的输出端可以产生对称的方波信号。
2421BCD码是一种自补码,如果两个十进制字符的和为9,那么这两个字符的2421BCD码关于9互补。在下面的表中很容易发现这种上下对称关系。
余3码也是一种无权BCD码,因为找不到一组权值能够同时满足十个十进制数字的编码。余3码是用表示0 ~ 15的4位二进制码直接截掉头尾3个编码得到的。
余3循环码则是格雷码去掉头尾3个编码得到的。


5、ASCII码,即美国信息交换标准代码。采用7位二进制编码,共有128种不同的二进制编码,用来表示单个字节的十进制数字、大小写英文字母、基本的运算符、控制符和常见的单字节特殊符号。比如\r(CR,Carriage Return 回车),\n(LF,Line Feed 换行)分别用0x0d (13) 和 0x0a (10) 表示。在Windows下,每行结尾都需要跟\r\n,否则不能正确另起一行。在Unix系统中,每行的结尾是\n。而在Mac系统中,每行的结尾是\r。Unix系统生成的文件在Windows下打开时,如果不能经过正确的转换,就会变成一行。
空格的ASCII码是0x20 (32),0x20也写成20h,h代表hex(十六进制)。至于数字的ASCII码的范围则是0x30 ~ 0x39(48 ~ 57)。大小写字母的ASCII码分别是41h ~ 5Ah(65 ~ 90)、61h ~ 7Ah(97 ~ 122)。
通用计算机键盘中,每按对应的键一次,键盘内部的控制电路就会传回对应的ASCII码给计算机。

6、奇偶校验码(Parity Check Code)是一种差错控制编码。信号在传输中发生衰减、遭遇噪声干扰,就可能导致波形畸变,造成接收错误。为了纠正误码,差错控制编码便被发明出来。差错控制编码分为检错码和纠错码两种。检错码检测是否存在误码,但不能确定误码的位置;纠错码可以发现误码并纠正,从而使信息正确接收。
奇偶校验码是最简单的一种检错码,能够检测传输中的奇数个误码。每n个位带有1个校验位,接收端每接收 (n + 1) 位就将接收的内容发送至奇偶校验器校验。当信息数据中存在奇数个1时,奇校验码为0,这样最终这 (n + 1) 位就有奇数个1。否则奇校验位为1。校验发现这 (n + 1) 位有奇数个1,就认为传输无误。对于偶校验码,情况相反。校验位一般都在信息位之后。
奇偶检验码的编码效率高,电路实现简单,额外开销小。但奇偶校验只能发现奇数个误码。奇偶校验码也不能对单数错定位。通常在通信电路中可以采取要求再发的方式获得正确的信息,或在信息传送中采用横向及纵向奇偶校验,即可对单错定位。
————————————————
版权声明:本文为CSDN博主「COFACTOR」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/COFACTOR/article/details/100166105

评论
暂无任何评论
已成功加入购物车!