新書推薦:

《
礼教中的女性与生活中的女性:汉代女性形态研究
》
售價:HK$
63.8

《
无人机航拍酷炫运镜119招:从构图、拍摄到剪辑
》
售價:HK$
96.8

《
慢思考,快心流:深度开发大脑潜能的思维方式(一本精准的天才训练手册,一套超凡的心流打造功法。精进领航人小务虚脑洞再开,助你开发大脑无限潜能)
》
售價:HK$
63.8

《
《长河落日耀金戈——中国古代北方少数民族征战史例 》(以十场战争解读千年边塞历史,再现“铁马冰河入梦来”的热血豪迈)
》
售價:HK$
41.8

《
瀛波志(大都会南部边缘的乌夜与拂晓,社幻小说家的机械奇趣宇宙志。一部百科全书式小说,陆源将中文重新淬炼了一遍)
》
售價:HK$
107.8

《
黑暗时代的哲学家(哲学版的《人类群星闪耀时》,面对历史的洪流,哲学何为?)
》
售價:HK$
85.8

《
国魂 : 甲午( 全三册)
》
售價:HK$
178.2

《
我想当数学家
》
售價:HK$
153.8
|
編輯推薦: |
从实践角度理解数字逻辑的原理,同时增加了硬件描述语言、FPGA以及EDA工具的使用内容,并辅以大量设计案例和设计技巧,使读者了解行业内主流的数字电路设计技能,因此实践性强是本书最大的特色。
|
內容簡介: |
本书分十大章节,分别是数字逻辑基础、逻辑门电路、verilog HDL和FPGA、组合逻辑及电路实现、时序逻辑及电路实现、脉冲发生电路、有限状态机、存储器、ADC和DAC、综合实例。在精炼数字电路知识点的同时,加入了大量案例,包括74系列芯片和FPGA的应用电路。同时对硬件描述语言和FPGA做了介绍,并辅以大量案例,以帮助读者掌握数字系统设计技能。基础理论加习题练习是大部分传统数电书籍的基本结构,本书没有使用大量篇幅去介绍数字电路基础理论,而是将知识点精炼之后通过大量应用案例使读者学以致用,从实践角度理解数字逻辑的原理,同时增加了硬件描述语言、FPGA以及EDA工具的使用内容,并辅以大量设计案例和设计技巧,使读者了解行业内主流的数字电路设计技能,因此实践性强是本书最大的特色。
|
關於作者: |
陈强,控制工程硕士,毕业于青岛科技大学,资深硬件工程师,开源硬件爱好者。有多年数字电路、电工电子技术等课程授课经验,同时在嵌入式软硬件开发、FPGA与数字系统设计、嵌入式AI与边缘计算等领域有丰富的工程经验。作品《PCB设计流程、规范和技巧-用kicad设计DDS信号发生器》
|
目錄:
|
目录
第1章数字逻辑基础知识
1.1数字逻辑的信息表征
1.1.1数字信号与数字系统
1.1.2数制与码制
1.1.3数字信息的存储
1.2数字逻辑的表示
1.2.1逻辑运算及逻辑表达方式
1.2.2不同逻辑表达方式之间的转换
1.3逻辑代数的定律和规则
1.3.1逻辑代数的基本定律
1.3.2逻辑代数的基本规则
1.4逻辑函数的表达形式与逻辑化简
1.4.1最小项表达式
1.4.2公式法逻辑化简
1.4.3卡诺图法逻辑化简
第2章Verilog HDL描述逻辑电路
2.1Verilog HDL基础
2.1.1Verilog HDL的设计风格
2.1.2Verilog HDL的基本语法
2.2Verilog HDL的逻辑电路描述方法
2.2.1门级建模及门级原语
2.2.2数据流建模及连续赋值语句
2.2.3行为级建模及过程赋值语句
第3章FPGA开发流程
3.1FPGA的概念
3.1.1FPGA是什么
3.1.2FPGA的特点
3.1.3FPGA的内部结构
3.1.4FPGA是如何工作的
3.2FPGA的开发流程与工具
3.2.1FPGA的开发流程
3.2.2FPGA开发工具
3.3FPGA开发流程示例
3.3.1Lattice Diamond开发FPGA实例(以STEP MXO2
开发板为例)
3.3.2Intel Quartus Prime开发FPGA实例(以STEP MAX10
开发板为例)
3.3.3小脚丫FPGA(STEP FPGA)线上开发平台
第4章FPGA组合逻辑电路设计
4.1三人表决器
4.1.1组合逻辑电路的设计方法
4.1.2实验任务
4.1.3实验原理
4.1.4电路搭建及验证
4.1.5Verilog描述及FPGA实现
4.1.6实验总结
4.2实现加法器
4.2.1实验任务
4.2.2实验原理
4.2.3代码设计
4.2.4FPGA实验
4.3实现24译码器
4.3.1实验任务
4.3.2实验原理
4.3.3代码设计
4.3.4FPGA实验
4.3.5课后练习
4.4实现38译码器
4.4.1实验任务
4.4.2实验原理
4.4.3代码设计
4.4.4FPGA实验
4.4.5拓展任务
4.5控制7段数码管
4.5.1实验任务
4.5.2实验原理
4.5.3代码设计
4.5.4FPGA实验
4.5.5拓展任务
第5章FPGA时序逻辑电路设计
5.1时序逻辑电路的描述方法
5.1.1时序逻辑与Verilog HDL描述
5.1.2阻塞赋值和非阻塞赋值
5.2实现RS触发器
5.2.1实验任务
5.2.2实验原理
5.2.3FPGA实验
5.3实现D触发器
5.3.1实验任务
5.3.2实验原理
5.3.3FPGA实验
5.4实现JK触发器
5.4.1实验任务
5.4.2实验原理
5.4.3FPGA实验
5.5生成计数器
5.5.1实验任务
5.5.2实验原理
5.5.3FPGA实验
5.6任意整数分频电路
5.6.1实验任务
5.6.2实验原理
5.6.3代码设计
5.6.4FPGA实验
5.7机械按键的消抖
5.7.1实验任务
5.7.2实验原理
5.7.3代码设计
5.7.4FPGA实验
第6章状态机逻辑电路设计
6.1有限状态机
6.1.1状态机的概念
6.1.2状态编码
6.1.3状态机的结构
6.1.4状态机的Verilog实现
6.2利用状态机实现流水灯
6.2.1实验任务
6.2.2实验原理
6.2.3代码设计
6.2.4FPGA实验
6.3简易交通信号灯设计
6.3.1实验任务
6.3.2实验原理
6.3.3代码设计
6.3.4FPGA实验
第7章模数转换项目
7.1模数转换器与数模转换器
7.1.1模数转换器
7.1.2数模转换器
7.1.3选择ADC和DAC芯片
7.2FPGA驱动ADC(I2C接口)实例
7.2.1ADC芯片PCF8591
7.2.2PCF8591的I2C通信
7.2.3PCF8591的数据传输
7.2.4硬件实现
7.3FPGA驱动DAC(SPI接口)实例
7.3.1DAC芯片DAC081S101
7.3.2DAC081S101的串行通信
7.3.3DAC081S101的数据传输
7.3.4硬件实现
7.4通过高速比较器和FPGA逻辑实现Sigma Delta ADC
7.4.1Sigma Delta ADC实现原理
7.4.2简易Sigma Delta ADC方案
7.4.3FPGA内部模块实现
第8章综合项目
8.1十字路口交通信号灯控制系统
8.1.1项目背景
8.1.2车辆和行人检测
8.1.3路灯控制
8.1.4交通信号灯控制系统的状态机
8.1.5其他功能
8.1.6项目总结
8.2电梯控制系统
8.2.1项目概述
8.2.2总体方案
8.2.3开关防抖设计
8.2.4超声波传感器位置检测
8.2.5二进制转BCD码
8.2.6控制电机旋转
8.2.7设计状态机
8.2.8最终实施
8.2.9项目总结
8.3自制数字密码锁储物柜
8.3.1硬件总体结构设计
8.3.2矩阵键盘输入模块
8.3.3密码验证模块
8.3.4舵机控制模块
8.3.5驱动模块
8.3.6系统设计与实现
8.4简易电子琴
8.4.1项目概述
8.4.2简易电子琴硬件设计
8.4.3直接数字合成技术
8.4.4用DDS产生正弦波
8.4.5Top模块设计
8.4.6项目总结
8.5更复杂的电子钢琴
8.5.1项目概述
8.5.2字符串函数
8.5.3Deltasigma调制
8.5.4使用除法调整幅度
8.5.5谐波生成
8.5.6顶层数字系统设计
8.5.7项目总结
8.6串行通信
8.6.1项目概述
8.6.2并行与串行通信
8.6.3实现一个UART发送器
8.6.4旋转编码器
8.6.5UART通信机制
8.6.6将编码器数据发送给计算机
8.6.7项目总结
|
內容試閱:
|
也许你还没有意识到,人类其实一直生活在“数字”的世界里,老祖宗发明了“度、量、衡”,这本质上就是模数转换器(ADC),把世间能够感知到的一切“物”进行了量化,比如身高1米78厘米的小张同学到超市买了3斤6两苹果,中午11点30分要赶去北京的高铁。虽然我们面对的自然界的对象是“模拟”(Analog)的,是连续的量,但我们大脑里处理的信息,相互之间交流的信息,都已经转变成了量化的、不连续的数字量(Digital)。
对连续的量进行量化,大大方便了我们对信息的处理,这包括逻辑判断、数值计算等。我们常常挂在嘴边的高/矮、上/下、对/错、开/关等,其实就是非0即1的二进制,其实高多少、对几分、开多大必然存在着中间的模糊地带,但我们生活中仍然对很多事情做二值化的处理。
当然,仅有二进制是不够的。我们将一天分为12时辰或24小时,1年分为365天,1小时分为60分钟,古代的一斤分为16两,各种制式适用于不同事物的量度,而进化下来,我们生活中最常用的就是十进制方式。不同的进制方式(编码方式)之间可以进行换算。这其实就是“数字逻辑”的基础。抛开我们的信息载体“电路”,数字逻辑就是我们每个人大脑中每天盘算的事情,是我们生活的日常。
翻看一下我们正在学的“数字电路”课程,可以说整个课程中,95%的内容讲的是“数字逻辑”,这些完全可以脱离电路,仅有5%的内容讲述的是如何用“合适的电信号”来表征人类大脑认知的数字信息,并有效地处理这些数字信息。如果把数字世界看成对变化着的模拟世界进行“理想化”抽象,那么我们同时要研究的就是如何尽可能理想化(稳定、真实)地表征信息,如何处理那些非理想化的因素,表现在电路上就是使用CMOS器件、高/低电平的判断、传输时间的影响、时序电路中的延迟、组合逻辑中的竞争冒险等,这些都是在实际的电路设计中要考虑的因素。
数字逻辑,正如我们的大脑日常所做的,对应书中的关系如下:
各种逻辑门(Gate)——因果关系,由一个或多个输入产生的不同输出结果,为什么逻辑用“门”来表达?“门”像是因果关系的纽带,通过“门”我们把所有“因”组合到一起从而有了确定的“果”。
组合逻辑——多个因素在一起产生的多种可能性,以及基于这些可能性做出的选择,比如学号、快递地址、从清华南门到北京火车站的道路。
时序逻辑——我们的世界中一个重要的维度就是“时间轴”,日月星辰已经给我们设定了时钟,于是我们早上6点起床、8点半赶到公司、下午4:20和同事一起乘坐去往上海的高铁,很多行为都是在某个设定的时间点完成的,无论是个人还是集体。在时间维度运作下的这个世界不正是一个时序逻辑系统吗?
状态机——我们个体以及接触到的任何事物时时刻刻都处在某个状态,又会由某种“因”的触发而改变状态,从而形成了运动着的世界,构成了我们的日常。描述这种关系的方式就是状态机。
当然,作为社会化的人,我们从小受到教育、接受社会的分工,从小到大的生活都受到“指令”的控制,比如父母培养你的习惯,你所处的社会环境设定的规章、制度、法律法规,在学校老师给你安排的课程、布置的作业,企业中上级领导分配你的工作,我们每个人都是被“编程”了的单片机、微处理器系统,日复一日地按照设定的程序来生活着。程序被写在了我们的存储器里面,执行程序的过程中要处理好各种外界的输入(通过眼、耳、鼻等传感器),做各种逻辑判断和计算,进而采取下一步的行动。
人本身就是一个“数字系统”,我们要设计的用电信号来表征的“数字系统”也就是要将我们日常的思维方式用电信号的方式映射出来。
所谓的“人工智能”就是将人类的思想、思维方式映射到一个个用电信号驱动的设备中,让这些设备通过电信号能够像人类一样去推理、计算、决策等。
一切源于我们自身。而“数字逻辑”就是构成“数字系统”的基础。
最后,我们来看一张关于计算机系统构成的知识结构图。
计算机系统构成的知识结构图
图中呈现出计算机系统从底层到顶层的层次结构以及它们之间的关系,通过理清这些对应关系,你将能够明确“数字电路”在整个系统中的位置,以及学习数字电路的意义和方法。
我们使用的办公软件、浏览器、绘图工具等都属于应用层软件。它们是建立在操作系统之上的。操作系统的运行需要固件层的支持,如各种硬件设备驱动,而所有的运算存储都需要运行在一定的硬件设备上,如CPU、内存、显卡,这些硬件本身则是由一个个数字电路模块组成的,构成这些数字电路的基础单元是门电路,在物理层级之上,各种数字门是通过半导体器件来实现的,构成门电路的基础是晶体管。
本书涉及的主要内容是在逻辑层和电路层,即通过数字电路的设计方法设计逻辑电路并在FPGA上实现并验证。
数字逻辑的知识在任何一本数字电路教材中都给出了详细的介绍,这里我们不做赘述,仅在第1章中对数字电路的基础知识做了回顾,方便读者在后续章节中的电路设计时查阅。
设计数字电路的方法则是利用现在流行的硬件描述语言(HDL),利用HDL可以在硬件电路建立之前模拟和验证数字系统的功能,也利于电路的自动化设计。第2章将介绍硬件描述语言及数字电路的描述方法。
FPGA是一种数字电路芯片,在芯片设计中通过FPGA验证所设计的电路功能已经是常规流程,FPGA也大量应用在接口转换、时序控制、算法处理和硬件加速等领域,尤其是现在人工智能技术的大爆发,催生了大量FPGA算法处理的应用。关于FPGA的介绍我们会在第3章阐述。
在实际的硬件电路设计中,可以使用分立器件设计出所需的应用电路,比如使用经典的74系列逻辑集成电路来搭建各种复杂的数字计算系统,而随着集成电路工艺的发展,数字电路的集成度也越来越高,现在的印制电路板上已经很少能见到大量排布的74系列逻辑芯片了,因为CMOS工艺的发展使得更多的逻辑电路可以被集成到一起,做成专用的ASIC。此外,在缩小电路板面积、提高电路集成度方面,FPGA也功不可没。第4~6章,以具体的实例来阐述如何设计常见的组合逻辑电路和时序逻辑电路并在FPGA上实现。
数字电路世界与现实世界打交道的桥梁是模数转换器和数模转换器,在第7章,将介绍FPGA有关模数转换和数模转换的应用。
最后,第8章阐述了比较经典的综合项目,每一个项目会用到组合逻辑或时序逻辑中的多个知识点,是数字电路知识的综合应用。
本书由校企合作编写,在本书完成的过程中得到了苏州思得普信息科技有限公司和加拿大EIM Technology公司的大力支持,书中实验所使用的硬件模块均由两家公司赞助,书中所涉及的FPGA实验代码均可以在小脚丫FPGA开发云平台上验证,用户无须安装庞大的EDA软件即可实现代码的编辑和编译。此外,山东职业学院铁道供电专业和乌拉尔国立交通大学电气工程系的老师协助完成了实验案例的设计,在教学过程中对书中的部分实验进行了验证,并提出了宝贵的意见和建议,在此一并表示感谢。
鉴于作者水平有限,书中难免有疏漏和错误之处,敬请读者批评指正。
作者
2025年5月
|
|