关于我们
书单推荐
新书推荐
|
搭建你的数字积木
本书深入浅出, 利用数字积木使读者能快速入门设计过程, 搭建原型设计。案例从基本门电路, 中小规模接口电路, 到复杂数字信号处理, 数字图像处理全覆盖。本书实验硬件平台采用目前最为广泛用于科研和教学的Xilinx 28nm Artix-7器件和Vivado工具, 源程序在Github开源, 并保持更新, 教材同时配合相应的讲解及实验操作视频引导。
本教材严格参照教育部高等学校电子电气基础课程教学指导分委员会制订的《电子电气基础课程教学基本要求》编写。全书注重激发学生的学习兴趣,突出模块化编程思想并详细介绍了IP设计、封装和调用方法;对于常用逻辑模块及逻辑系统案例的选取,采取由浅入深的方式,设计过程和例程尽量详细,可以直接动手实验。全书融合了东南大学电子科学与工程学院“数字系统”课程的丰富教学经验,吸收了东南大学多年参与PLD竞赛的经验,并充分考虑产业界对电子信息类专业人才培养的具体需求,是一本真正意义上产学深度合作的教材。教学资源:
(1)教学课件配书教案(PPT)可到清华大学出版社网站本书页面下载。
(2)设计平台采用科研和教学中应用*广泛的XilinxArtix-7器件和Vivado工具。
(3)程序代码配书源程序在Github开源,并保持更新。
(4)教学视频配书教学视频及实验操作视频可到OpenHW网站获取。
这是一本正规教材吗?看书名有点像儿童读物。
这是一本设计开发手册吗?这里面怎么还有思考习题啊。
其实,编者们也为这本书的名字费了不少神,这是本书的第一个书名建议,之后也揣摩了好几个,但到了最后还是觉得这第一次取的名字最好,因为它最符合编者们当下对基于FPGA芯片的逻辑系统设计的核心理念。
如果说对于国内的高校和企业来讲,20世纪90年代,PLD还是新兴技术,仅在高端产品和产品设计初期有所应用外,如今PLD产品已经成为业内绝大多数的逻辑系统设计的核心,也是大多数工程师的基本设计能力。
这些年来,逻辑系统设计和FPGA编程类的新教材不断涌现。应该说,这些方面国内并不缺乏好的专业教材或工具书,但是作为编者的这几个人在分别经历多年相关课程教学、工程师培训、新技术推广等不同的工作后,总觉得教材可以编写得更像工具书一点,工具书可以再多点基础知识介绍。于是,几个人就凑在了一起,相互鼓励、相互督促做了一件他们最想做但其实又最不愿意做的事:编写一本教材。
以下是本书的编者们围绕逻辑系统设计和FPGA编程学习的几点认识,也是编写这本书的一些粗浅想法:
(1)传统逻辑设计教学的内容和体系与当前行业的需求和实际产生了偏差
随着可编程逻辑器件(programmablelogicdevice,PLD,包括现在的CPLD和FPGA)为主的新技术及其行业的快速发展,直接改变了基于数字系统核心的消费电子产品、工业系统、医疗仪器设备乃至专用逻辑芯片本身的设计,重点表现在逻辑系统的门电路规模门槛快速提升和设计方法的巨大变革。相比之下,成熟的传统逻辑设计教学体系与行业界的实际产生了偏差,例如:在传统逻辑设计教学中常用的真值表和卡诺图等在实际行业设计中难觅踪影;传统逻辑设计实验教学中常用的74系列或4000系列中规模单元芯片采购困难且价格高,使得教学实验项目难以为继;传统逻辑设计中当作理论讲解的竞争与冒险变成逻辑设计工程师时时刻刻面对的实际问题;实际工程应用中急需的模块化设计理念和团队合作能力在传统逻辑教学中基本缺失。
(2)逻辑设计教学从传统的基础理论课程更多转向为实践类课程
传统的逻辑设计或数字电路课程都是各大电子信息专业的基础核心课程,在布尔代数基本理论基础上重点讲解组合逻辑系统的分析和设计、时序逻辑系统的分析和设计,再补充一些计算机结构中的基本单元作为其应用案例。这些内容也积累了大量考试题库,但大量题库都是限于四个逻辑变量及以下、JK触发器容易命题但实际远不如D触发器实用、竞争冒险作为理论概念难以在习题中体现、状态机是综合类应用内容且入选习题的工作状态数不宜过多等,与此对应的实际情况是基于FPGA开展实际逻辑系统设计,几十万门的逻辑系统需求很平常,状态机已经成为大多数逻辑系统设计的基本单元,产品设计不断追求高性能使得毛刺问题在每一个设计中均需要认真处理等。因此,很多理论分析工作在当前设计中不再适用,大量设计能力需要通过不断实践经验积累。
(3)逻辑设计门槛的降低和逻辑系统复杂度的提升对模块化设计提出更高要求
FPGA设计培训并不困难,越来越多的工程师通过自学就掌握了FPGA设计的基本能力,但随着FPGA芯片规模的快速提升和芯片价格的持续下降,大量复杂逻辑系统均已在单芯片内实现,且产品设计的时间周期越来越短,大量的逻辑系统设计都需要工程师团队分工合作完成,同时大量基本逻辑单元和功能模块会重复利用,因此,模块化编程思想和设计团队的标准逻辑模块设计积累都十分重要。把产品设计比作搭积木,谁的逻辑模块积木多以及谁的专有逻辑模块积木多会左右一个产品的市场成败。
基于上述理念,本书希望建设成能满足目前从逻辑设计入门到具备基本逻辑设计工程师能力的学习道路上的教材或参考书。在组织规划过程中贯穿了以下几点思路:
(1)以目前主流且实用的FPGA和VerilogHDL为基础更新逻辑设计理论基础教学主线;
(2)将Vivado集成设计开发环境在第1章中就呈现给读者,让读者从一开始就能利用该开发工具学习具体逻辑设计;
(3)淡化以往卡诺图、真值表这类效率低且目前实用性不强的设计方法,强化基于硬件表述语言的硬件编程设计思想,区分软件编程常规的指令语句单步运行思维模式;
(4)突出模块化编程思想并详细介绍IP设计封装和调用办法;
(5)常用逻辑模块及逻辑系统案例选取由浅入深,设计过程和例程尽量详细,替代一般实验指导书。
综上,本书具体分成三大部分:第一部分逻辑设计基础(共六章);第二部分常用逻辑设计模块(共五章);第三部分逻辑系统设计案例(共六章)。将常用逻辑模块突显出来,主要是希望更多反映模块化编程思想和逻辑系统设计团队分工合作的趋势。
本书的编辑整理工作得到东南大学教务处的立项支持,并在Xilinx大学计划的支持下进行,相关章节内容邀请了Xilinx大学计划的应用工程师团哲恒、实习生崔宏宇,以及东南大学电子科学与工程学院电路与系统方向的研究生参与整理,在此一并感谢。
本书编辑整理均在编者的日常教学和大学计划工作之余进行,并分工合作完成,系统性和文字风格一致性可能会有所差异,并难免一些错漏,有待读者不断指出并修改。编者们也会持续补充设计案例并整理教学应用相关的教学资料,也希望大家能不断反馈相关意见,使本书能得到良好的修编,改进目标和方向。
编著者2017年3月
汤勇明教授,东南大学电子科学与工程学院副院长,先后参与完成了国家重点基础研究发展(973)计划项目、国家高技术发展(863)计划项目、国防科研项目、江苏省成果转化基金项目、国内外企业合作项目等大量科研项目与课题。参与“电子系统设计”等多门课程的教学工作,所指导的本科生、研究生多次参加各类竞赛并获奖。主持和参与校教学改革项目多项,先后获江苏省教学成果奖一等奖和二等奖各1次,江苏省科技进步一等奖1次。发表国际杂志、国际会议论文多篇,先后被SCI、EI、ISTP等收录,出版著作1部,累计已获授权国家发明专利超过10项。
张圣清博士,任教于东南大学信息科学与工程学院,负责“通信系统”综合课设计,“数字图像处理”等多门FPGA设计技术相关课程,具有丰富的学生创新创业与竞赛指导经验,所指导的学生团队曾多次夺得全国大学生电子设计竞赛一等奖。
陆佳华Xilinx学术合作亚太区经理,于2006年加入Xilinx公司,主要负责Xilinx公司在亚太区学术圈的教学与科研合作。在可编程逻辑器件领域有超过10年的研发及市场经验。曾参与了多个Xilinx技术应用指导项目的开发,同时也编著了全球*本NetFPGA开发指导图书以及*本Zynq开发指导图书。
*部分逻辑设计基础
第1章逻辑设计概述及Vivado基础
1.1逻辑设计概况
1.2VerilogHDL语言基础
1.2.1硬件描述语言概述
1.2.2VerilogHDL语言要素和设计流程
1.3PLD器件基础
1.3.1可编程逻辑器件技术发展历程
1.3.2FPGA和CPLD简介
1.3.3XilinxFPGA介绍
1.3.4FPGA选型应该考虑的问题
1.4Vivado开发环境及设计流程
1.4.1Vivado功能介绍
1.4.2Vivado用户界面介绍和菜单操作
1.4.3Vivado开发流程
第2章布尔代数和VerilogHDL基础
2.1布尔代数
2.1.1三种基本逻辑门
2.1.2四种常用逻辑门
2.2布尔定律
2.2.1单变量布尔定律
2.2.2双变量和三变量的布尔定律
2.3布尔代数化简
2.3.1公式法化简
2.3.2卡诺图化简
2.4VerilogHDL语言基础
2.4.1VerilogHDL模块及端口
2.4.2VerilogHDL数据类型声明
2.4.3VerilogHDL运算操作
第3章组合逻辑电路设计基础
3.1组合电路中的always块
3.1.1基本语法格式
3.1.2过程赋值
3.1.3变量的数据类型
3.1.4简单实例
3.2条件语句
3.2.1ifelse语句
3.2.2case语句
3.3循环语句
3.3.1for语句
3.3.2repeat语句
3.3.3while语句
3.3.4forever语句
3.4always块的一般编码原则
3.4.1组合电路代码中常见的错误
3.4.2组合电路中always块的使用原则
3.5常数和参数
3.5.1常数
3.5.2参数
3.6设计实例
3.6.1多路选择器
3.6.2比较器
3.6.3译码器和编码器
3.6.4十六进制数七段LED显示译码器
3.6.5二进制—BCD码转换器
3.7练习题
第4章时序电路设计基础
4.1触发器和锁存器
4.1.1基本D触发器
4.1.2含异步复位的D触发器
4.1.3含异步复位和同步使能的D触发器
4.1.4基本锁存器
4.1.5含清0控制的锁存器
4.2寄存器
4.2.11位寄存器
4.2.2N位寄存器
4.2.3寄存器组
4.3移位寄存器
4.3.1具有同步预置功能的8位移位寄存器
4.3.28位通用移位寄存器
4.4计数器
4.4.1简单的二进制计数器
4.4.2通用二进制计数器
4.4.3模m计数器
4.5设计实例
4.5.1数码管扫描显示电路
4.5.2秒表
4.6练习题
第5章有限状态机设计基础
5.1引言
5.1.1有限状态机的特点
5.1.2Mealy状态机和Moore状态机
5.1.3有限状态机的表示方法
5.2有限状态机代码实现
5.3设计实例
5.3.1序列检测器设计
5.3.2ADC采样控制电路设计
5.3.3按键消抖电路设计
5.4课程练习
第6章逻辑设计工程技术基础
6.1数字电路稳定性
6.2组合逻辑与毛刺
6.2.1组合逻辑设计中的毛刺现象
6.2.2组合逻辑设计中毛刺的处理
6.3异步设计与毛刺
6.3.1异步时序电路中的毛刺现象
6.3.2异步时序电路中毛刺的处理
6.4VerilogHDL设计中的编程风格
6.4.1强调代码编写风格的必要性
6.4.2强调编写规范的宗旨
6.4.3变量及信号命名规范
6.4.4编码格式规范
6.5Xilinx开发环境中的其他逻辑设计辅助工具
第二部分常用逻辑设计模块
第7章Vivado数字积木流程
7.1IP基础
7.2打包属于自己的IP
7.3IP设计示例——二进制转格雷码
7.4练习题
第8章串行通信接口控制器
8.1UART串口通信协议及控制器设计
8.1.1UART协议介绍
8.1.2UART协议实例
8.2PS/2协议及实例设计
8.2.1PS/2协议介绍
8.2.2PS/2设计实例
8.3SPI同步串行总线协议及控制器设计
8.3.1SPI协议介绍
8.3.2SPI控制器模块实例
8.4I2C两线式串行总线协议及控制器设计
8.4.1I2C协议介绍
8.4.2I2C模块设计实例
8.5练习题
第9章RAM接口控制器
9.1内部存储器
9.1.1FIFO
9.1.2单端口RAM设计
9.1.3双端口RAM设计
9.2外部存储器
9.2.1DRAM介绍
9.2.2DDRSDRAM原理
9.2.3DDRSDRAM控制器原理
9.3练习题
第10章字符点阵显示模块接口控制器
10.1字符型液晶控制器设计
10.1.1LCD原理
10.1.2字符型LCD1602模块
10.1.3字符型液晶模块显示实例
10.2点阵OLED控制器设计
10.2.1OLED原理
10.2.2OLED驱动原理
10.2.3OLED显示实例
10.3练习题
第11章VGA接口控制器
11.1CRT显示器原理
11.2VGA控制器设计
11.2.1VGA视频接口的概念
11.2.2VGA的接口信号
11.2.3行同步和场同步
11.3VGA接口设计实例
11.3.1VGA显示条纹和棋盘格图像
11.3.2VGA图像显示实例(文字/图片显示或者数码相框)
11.3.3VGAIP的使用
11.4练习题
第12章数字图像采集
12.1数字图像采集概述
12.2系统设计原理
12.2.1系统架构
12.2.2OV7725芯片介绍
12.2.3OV7725SCCB协议
12.2.4OV7725配置寄存器
12.2.5OV7725图像采集
12.2.6BlockRAM存储单元
12.2.7VGA显示的实现
12.3模块搭建与综合实现
12.4系统调试及板级验证
12.4.1引脚分配
12.4.2模块连接
12.5练习题
第三部分逻辑系统设计案例
第13章数字逻辑系统设计案例:数字钟
13.1数字钟设计案例
13.1.1实验原理
13.1.2实验设计流程
13.2基于集成逻辑分析仪的调试
13.3约束设计
13.3.1物理约束
13.3.2时序约束
13.4练习题
第14章单周期处理器设计实例
14.1单周期处理器体系架构简介
14.1.1单周期处理器指令集简介
14.1.2单周期处理器系统结构
14.2设计流程
14.2.1实验原理
14.2.2设计与验证
第15章数字信号处理实例:FIR滤波器
15.1FIR滤波器简介
15.2基于HLS的FIR滤波器实现流程
15.3工程测试
15.4生成IP
15.5练习题
第16章数字图像处理设计案例
16.1项目概述
16.2硬件介绍
16.3模块介绍
16.3.1RGB转HSV模块
16.3.2ColorDetect色彩检测及坐标计算
16.4舵机控制模块
16.5实例实现过程
16.6板级验证
16.7练习题
第17章大学生FPGA设计案例
17.1逻辑控制
17.2图像处理
17.2.1VGA控制颜色
17.2.2视力表
17.2.3手部运动检测系统
17.3仪表仪器
17.3.1数字示波器
17.3.2逻辑分析仪
17.3.3波形发生器
17.4其他
第18章Xilinx资源导读
18.1获取本书参考例程
18.1.1Github介绍及使用
18.1.2OpenHW介绍
18.1.3Xilinx各类比赛
18.2Xilinx网站
18.2.1FPGA应用与解决方案
18.2.2文档资料查找
18.2.3Vivado工具和License的下载以及更新
18.2.4问题的查找
18.2.5Xilinx社区
18.3视频教程
18.4Vivado学习参考文档
参考文献
你还可能感兴趣
我要评论
|