暂无商品咨询信息 [发表商品咨询]
本书不仅介绍了HDL的语法,还重点介绍了对可编程逻辑器件的设计方法,提供了一系列使用VHDL对可编程逻辑器件进行设计的实例,书中的实例均可运行于Xilinx公司Spartan-3开发板中,使读者能够边动手实践边学习,达到快速入门并掌握要领的目的。
本书可作为可编程逻辑器件的学习指导书,通过书中的案例,初学者最终可以完全掌握可编程逻辑器件的设计方法。同时,也可作为工程实践的指导用书,对提高可编程逻辑器件开发人员的设计水平有借鉴价值。
本书主要包括三部分内容:基本数字电路、I/O模块和PicoBlaze微控制器。第一部分介绍了基础的HDL结构和对应硬件,并且示范如何用这些结构来搭建基本的数字电路;第二部分是应用第一部分的技术为原型板设计一系列外围模块,介绍了外设的开发、实现和验证,可以将这些模块组成一个更大的复杂系统;第三部分介绍了基于FPGA的软核微控制器,即PicoBlaze,展示了如何通过处理器和定制电路进行集成。
本书不仅介绍了HDL的语法,还重点介绍了对可编程逻辑器件的设计方法,提供了一系列使用VHDL对可编程逻辑器件进行设计的实例,书中的实例均可运行于Xilinx公司Spartan-3开发板中,使读者能够边动手实践边学习,达到快速入门并掌握要领的目的。
本书可作为可编程逻辑器件的学习指导书,通过书中的案例,初学者最终可以完全掌握可编程逻辑器件的设计方法。同时,也可作为工程实践的指导用书,对提高可编程逻辑器件开发人员的设计水平有借鉴价值。
曲邦平(Pong P. Chu)博士是俄亥俄州克利夫兰州立大学电子和计算机工程系的副教授。他教授本科生和研究生水平的数字系统和计算机架构课程超过十年,并获得了美国国家科学基金会和克利夫兰州立大学的教学资助。
目录
译者序
原书前言
致谢
第一部分基本数字电路
第1章门级组合电路3
1.1简介3
1.2一般描述3
1.2.1基本词汇规则4
1.2.2库和包4
1.2.3实体声明4
1.2.4数据类型与操作符5
1.2.5结构体5
1.2.62位比较器代码6
1.3结构描述7
1.4testbench8
1.5参考书目10
1.6参考实验10
1.6.1门级大于电路代码11
1.6.2门级二进制译码器代码11
第2章FPGA及EDA软件概述12
2.1简介12
2.2FPGA12
2.2.1通用FPGA器件概述12
2.2.2Xilinx Spartan-3器件概述13
2.3Digilent S3开发板概述14
2.4开发流程16
2.5Xilinx ISE Project Navigator概述17
2.6ISE Project Navigator简明教程19
2.6.1创建工程和HDL代码20
2.6.2创建testbench及执行RTL仿真22
2.6.3添加约束文件综合和实现代码22
2.6.4生成并下载配置文件至FPGA芯片23
2.7ModelSim HDL仿真器简明教程26
2.8参考书目30
2.9参考实验30
2.9.1门级大于电路30
2.9.2门级二进制译码器31
FPGA设计实例:VHDL实战指南
目录
第3章寄存器传输级组合逻辑电路32
3.1简介32
3.2寄存器传输级元件32
3.2.1关系运算符33
3.2.2算术运算符33
3.2.3其他相关综合的VHDL结构35
3.2.4总结36
3.3并发赋值语句的分布电路37
3.3.1条件信号赋值语句37
3.3.2选择信号赋值语句39
3.4行为建模41
3.4.1进程41
3.4.2时序信号赋值语句42
3.5if语句和case语句的布线电路42
3.5.1if语句42
3.5.2case语句44
3.5.3并发语句的比较45
3.5.4意外生成的存储器47
3.6常量和属性48
3.6.1常量48
3.6.2属性49
3.7设计实例51
3.7.1十六进制七段LED译码器51
3.7.2“符号-幅值”加法器54
3.7.3桶式移位器56
3.7.4简化的浮点加法器58
3.8参考书目63
3.9参考实验63
3.9.1多功能桶式移位器63
3.9.2双优先级编码器63
3.9.3BCD码增量器63
3.9.4浮点数大于比较电路64
3.9.5浮点数和有符号整型转换电路64
3.9.6增强型浮点数加法器64
第4章常规时序电路65
4.1简介65
4.1.1D触发器和寄存器65
4.1.2同步系统66
4.1.3代码开发67
4.2触发器和寄存器的HDL代码67
4.2.1D触发器67
4.2.2寄存器70
4.2.3寄存器文件71
4.2.4Xilinx Spartan-3器件的存储元件72
4.3简单的设计举例72
4.3.1移位寄存器72
4.3.2二进制计数器及其转换形式74
4.4时序电路的testbench77
4.5案例学习81
4.5.1LED时分复用电路81
4.5.2秒表87
4.5.3FIFO缓冲器91
4.6参考书目96
4.7参考实验96
4.7.1可编程的方波生成器96
4.7.2PWM和LED调节器96
4.7.3旋转的方形图案电路96
4.7.4心跳电路96
4.7.5可轮换的LED标语电路97
4.7.6增强的秒表97
4.7.7栈(Stack)97
第5章有限状态机98
5.1简介98
5.1.1Mealy输出和Moore输出98
5.1.2有限状态机表示方法98
5.2有限状态机编码设计100
5.3设计举例103
5.3.1上升沿检测器103
5.3.2去抖电路108
5.3.3测试电路111
5.4参考书目113
5.5参考实验113
5.5.1双沿检测器113
5.5.2另一种去抖电路113
5.5.3停车场占用计数器114
第6章FSMD115
6.1简介115
6.1.1单个RT操作115
6.1.2ASMD图115
6.1.3带寄存器的判决盒117
6.2FSMD的代码开发118
6.2.1基于RT理论的去抖电路118
6.2.2带有数据路径元件的编码120
6.2.3带有隐含数据路径元件的编码122
6.2.4对比123
6.2.5测试电路124
6.3设计实例126
6.3.1斐波那契电路126
6.3.2除法电路128
6.3.3二进制数向BCD码转换电路131
6.3.4周期计数器134
6.3.5精确的低频计数器137
6.4参考书目140
6.5参考实验140
6.5.1另一种去抖电路140
6.5.2BCD码向二进制数转换电路141
6.5.3带有BCD I/O的斐波那契电路:设计方法1141
6.5.4带有BCD I/O的斐波那契电路:设计方法2141
6.5.5尺度自适应的低频计数器142
6.5.6反应定时器142
6.5.7巴贝奇差分机模拟电路143
第二部分I/O模块
第7章UART147
7.1简介147
7.2UART接收子系统147
7.2.1过采样步骤148
7.2.2波特率发生器148
7.2.3UART接收器149
7.2.4接口电路151
7.3UART发送子系统154
7.4UART总系统简述156
7.4.1完备的UART核156
7.4.2UART验证配置158
7.5定制一个UART162
7.6参考书目162
7.7参考实验162
7.7.1全功能UART162
7.7.2带波特率自动检测功能的UART163
7.7.3带有波特率及校验位自动检测电路的UART164
7.7.4UART控制的秒表164
7.7.5UART控制的LED标语164
第8章PS2键盘165
8.1简介165
8.2PS2接收子系统165
8.2.1PS2端口的物理接口165
8.2.2设备到主机的通信协议165
8.2.3设计与代码166
8.3PS2键盘扫描码169
8.3.1扫描码概述169
8.3.2扫描码监测电路170
8.4PS2键盘接口电路172
8.4.1基本设计与HDL代码172
8.4.2验证电路174
8.5参考书目177
8.6参考实验177
8.6.1键盘接口转化Ⅰ177
8.6.2键盘接口转化Ⅱ177
8.6.3带看门狗定时器的PS2接收子系统177
8.6.4键盘控制的秒表177
8.6.5键盘控制的移动LED标语178
第9章PS2鼠标179
9.1简介179
9.2PS2鼠标协议179
9.2.1基本操作179
9.2.2基本的初始化程序180
9.3PS2传输子系统181
9.3.1主机到PS2设备的通信协议181
9.3.2设计和代码182
9.4双向的PS2接口185
9.4.1基本设计和代码185
9.4.2验证电路186
9.5PS2鼠标接口189
9.5.1基本设计189
9.5.2测试电路191
9.6参考书目192
9.7参考实验192
9.7.1键盘控制电路193
9.7.2增强的鼠标接口193
9.7.3鼠标控制七段LED显示器193
第10章外部SRAM194
10.1简介194
10.2IS61LV25616AL SRAM的说明194
10.2.1框图和I/O信号194
10.2.2时序参数196
10.3基础存储控制器198
10.3.1框图198
10.3.2时序需求199
10.3.3寄存器文件与SRAM200
10.4安全设计200
10.4.1ASMD图200
10.4.2时序分析201
10.4.3HDL编码(执行)202
10.4.4基础测试电路204
10.4.5全面的SRAM测试电路206
10.5更主流的设计211
10.5.1时序问题211
10.5.2可选设计Ⅰ211
10.5.3可选设计Ⅱ213
10.5.4可选设计Ⅲ214
10.5.5Xilinx公司的高级FPGA特点215
10.6参考书目216
10.7参考实验216
10.7.1512K×16位配置的存储器216
10.7.21M×8位配置的存储器216
10.7.38M×1位配置的存储器217
10.7.4扩展存储器实验电路217
10.7.5可选设计Ⅰ的测试电路和存储控制器217
10.7.6可选设计Ⅱ的测试电路和存储控制器217
10.7.7可选设计Ⅲ的测试电路和存储控制器217
10.7.8DCM的存储控制器217
10.7.9高性能存储控制器217
第11章Xilinx Spartan-3专用存储器218
11.1简介218
11.2Spartan-3器件的内部存储器218
11.2.1概述218
11.2.2对比219
11.3添加存储器模块的方法219
11.3.1通过HDL元件实例化产生存储器模块219
11.3.2通过核生成器产生存储器模块220
11.3.3通过HDL模型产生存储器模块220
11.4存储器HDL模板221
11.4.1单端口RAM221
11.4.2双端口RAM223
11.4.3ROM225
11.5参考书目228
11.6参考实验228
11.6.1基于块RAM的FIFO228
11.6.2基于块RAM的堆栈228
11.6.3基于ROM的原码加法器228
11.6.4基于ROM的sin(x)函数229
11.6.5基于ROM的sin(x)与cos(x)函数229
第12章VGA控制器Ⅰ:图形230
12.1简介230
12.1.1CRT的基本工作方式230
12.1.2S3板上的VGA端口231
12.1.3视频控制器232
12.2VGA同步232
12.2.1水平同步233
12.2.2垂直同步234
12.2.3VGA同步信号的时序计算235
12.2.4HDL实现235
12.2.5测试电路237
12.3像素生成电路概述238
12.4对象图方案图形生成239
12.4.1矩形对象240
12.4.2非矩形对象244
12.4.3动态对象246
12.5位图方案图形生成252
12.5.1双口RAM实现253
12.5.2单端口RAM实现257
12.6参考书目258
12.7参考实验258
12.7.1VGA测试图案生成器258
12.7.2SVGA模式同步电路258
12.7.3显示屏幕调节电路258
12.7.4盒中球电路259
12.7.5盒中双球电路259
12.7.6双人乒乓球游戏259
12.7.7突出重围游戏259
12.7.8全屏点轨迹260
12.7.9鼠标指针电路260
12.7.10小屏鼠标涂鸦电路260
12.7.11全屏鼠标涂鸦电路260
第13章VGA控制器Ⅱ:示例261
13.1简介261
13.2举例261
13.2.1点阵的特性261
13.2.2字型ROM262
13.2.3基本文本生成电路263
13.2.4字型显示电路264
13.2.5字型缩放比例266
13.3全屏文本显示266
13.4完整的乒乓球游戏设计271
13.4.1文本子系统271
13.4.2修正图像子系统277
13.4.3辅助计数器278
13.4.4顶层系统280
13.5参考书目284
13.6参考实验284
13.6.1旋转旗帜284
13.6.2指针的下划线285
13.6.3双模式文本显示285
13.6.4键盘文本输入285
13.6.5UART终端285
13.6.6方波显示285
13.6.7简单的四路逻辑分析器286
13.6.8完整的双人乒乓球游戏286
13.6.9完整的通关游戏286
ⅩⅧ
ⅩⅦ
第三部分PicoBlaze微控制器
第14章PicoBlaze概述289
14.1简介289
14.2定制硬件和软件289
14.2.1从专用FSMD到通用微控制器289
14.2.2微控制器的应用291
14.3PicoBlaze概述291
14.3.1基本组成291
14.3.2顶层HDL模块293
14.4开发流程293
14.5指令集294
14.5.1编程模式295
14.5.2指令格式296
14.5.3逻辑指令296
14.5.4算术指令297
14.5.5比较和检验指令298
14.5.6移位和循环指令299
14.5.7数据传输指令300
14.5.8程序控制指令302
14.5.9中断指令305
14.6伪指令声明指令306
14.6.1KCPSM3汇编伪指令306
14.6.2pBlaze IDE汇编伪指令306
14.7参考书目307
第15章PicoBlaze汇编语言开发308
15.1简介308
15.2有效的代码段308
15.2.1KCPSM3协议308
15.2.2位操作308
15.2.3多字节操作309
15.2.4控制结构310
15.3子程序开发312
15.4编程的发展313
15.4.1示例314
15.4.2程序文件318
15.5汇编代码处理320
15.5.1KCSPM3编译320
15.5.2pBlaze IDE仿真321
15.5.3JTAG重载323
15.5.4pBlaze IDE编译323
15.6PicoBlaze综合323
15.7参考书目325
15.8参考实验325
15.8.1符号乘法325
15.8.2多字节乘法运算325
15.8.3循环移位功能326
15.8.4高低位互置功能326
15.8.5二进制数至BCD码转换326
15.8.6BCD码至二进制数转换326
15.8.7心跳电路326
15.8.8顺序循环LED电路326
15.8.9离散LED调光器326
第16章PicoBlaze I/O接口327
16.1简介327
16.2输出端口327
16.2.1output指令及时序327
16.2.2输出接口328
16.3输入端口330
16.3.1input指令和时序330
16.3.2输入接口331
16.4包含开关输入和七段LED显示接口的平方计算程序332
16.4.1输出接口332
16.4.2输入接口333
16.4.3汇编代码开发335
16.4.4VHDL代码开发342
16.5结合组合乘法器和UART控制器的乘法程序345
16.5.1乘法器接口345
16.5.2UART接口345
16.5.3汇编代码开发347
16.5.4VHDL代码开发355
16.6参考书目359
ⅩⅩ
ⅩⅨ
16.7参考实验359
16.7.1低频计数器Ⅰ359
16.7.2低频计数器Ⅱ359
16.7.3自适应低频计数器359
16.7.4用软件计时器的基础反应计时器359
16.7.5用硬件计时器的基础反应计时器360
16.7.6增强型反应计时器360
16.7.7小屏幕鼠标跟踪电路360
16.7.8全屏幕鼠标跟踪电路360
16.7.9增强型跑马灯字幕360
16.7.10乒乓球游戏361
16.7.11文本编辑器361
第17章PicoBlaze中断接口362
17.1简介362
17.2PicoBlaze里的中断操作362
17.2.1软件处理362
17.2.2时序图363
17.3外部接口364
17.3.1中断请求信号364
17.3.2多重中断请求365
17.4软件开发考虑365
17.4.1中断作为一种替代的调度方案365
17.4.2中断服务程序的开发366
17.5设计用例366
17.5.1中断接口366
17.5.2中断服务程序的开发366
17.5.3汇编代码的发展367
17.5.4VHDL代码发展369
17.6参考书目372
17.7参考实验372
17.7.1替代的计时器中断服务程序372
17.7.2可编程的计时器373
17.7.3设置按钮中断服务程序373
17.7.4两个请求中断服务程序373
17.7.5四请求中断控制器373
附录AVHDL示例模板374
A.1通用VHDL结构374
A.1.1整体代码结构374
A.1.2元件实例化375
A.2组合电路376
A.2.1算术运算376
A.2.2固定量移位操作376
A.2.3使用并发语句的模板377
A.2.4if和case语句模板378
A.2.5使用进程的组合电路379
A.3存储元件380
A.3.1寄存器模板380
A.3.2寄存器文件381
A.4常规时序电路382
A.5有限状态机383
A.6FSMD384
A.7S3开发板约束文件(S3.UCF)387
参考文献390
| 基本信息 | |
|---|---|
| 出版社 | 机械工业出版社 |
| ISBN | 9787111798163 |
| 条码 | 9787111798163 |
| 编者 | [美]曲邦平(Pong P. Chu) 著 孟伟 张国宇 等 译 |
| 译者 | |
| 出版年月 | 2026-01-01 00:00:00.0 |
| 开本 | 16开 |
| 装帧 | 平装 |
| 页数 | 408 |
| 字数 | 636 |
| 版次 | 1 |
| 印次 | 1 |
| 纸张 | |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]