图书介绍

用Verilog设计FPGA样机实例解析 XilinxSpartan 第3版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

用Verilog设计FPGA样机实例解析 XilinxSpartan 第3版
  • (美)彭皮·楚(Pong P.Chu)著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111536444
  • 出版时间:2016
  • 标注页数:553页
  • 文件大小:48MB
  • 文件页数:580页
  • 主题词:可编程序逻辑器件-系统设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

用Verilog设计FPGA样机实例解析 XilinxSpartan 第3版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 基本数字电路3

第1章 门级组合电路3

1.1 简介3

1.2 一般描述3

1.3 基本词汇元素5

1.4 数据类型5

1.4.1 四值系统5

1.4.2 数据类型分类6

1.4.3 数字表示6

1.4.4 运算符7

1.5 程序结构8

1.5.1 端口声明8

1.5.2 程序体9

1.5.3 信号声明9

1.5.4 其他例子10

1.6 结构描述11

1.7 测试平台14

1.8 文献备注16

1.9 实验17

1.9.1 编码17

1.9.2 二进制解码器门级编码17

第2章 FPGA及EDA软件概述18

2.1 简介18

2.2 FPGA18

2.2.1 通用FPGA器件概述18

2.2.2 Xilinx Spartan-3器件概述19

2.3 Digilent S3开发板概述20

2.4 开发流程22

2.5 Xilinx ISE图形化界面概貌24

2.6 ISE Project Navigator简明教程26

2.6.1 创建工程和HDL代码28

2.6.2 创建Testbench及执行RTL仿真29

2.6.3 添加约束文件综合和实现代码29

2.6.4 生成并下载配置文件至FPGA芯片31

2.7 Modelsim HDL仿真器简明教程34

2.8 文献备注39

2.9 实验39

2.9.1 门级大于电路39

2.9.2 门级二进制译码器39

第3章 寄存器传输级组合逻辑电路41

3.1 引言41

3.2 运算符41

3.2.1 算术运算符42

3.2.2 移位运算符43

3.2.3 关系和等价运算符43

3.2.4 按位运算符、缩减运算符和逻辑运算符43

3.2.5 位拼接和复制运算符44

3.2.6 条件运算符45

3.2.7 运算符优先级46

3.2.8 表达式位长度调整46

3.2.9 z、x的综合48

3.3 组合逻辑电路always块49

3.3.1 基本语法和行为50

3.3.2 顺序赋值语句50

3.3.3 变量数据类型51

3.3.4 简单示例51

3.4 if语句53

3.4.1 语法53

3.4.2 示例54

3.5 case语句56

3.5.1 语法56

3.5.2 示例57

3.5.3 casez和casex语句58

3.5.4 full case与parallel case59

3.6 条件控制语句的布线结构60

3.6.1 优先路由网络60

3.6.2 多路选择网络62

3.7 always块的通用编码准则63

3.7.1 组合逻辑电路代码的常见错误63

3.7.2 准则67

3.8 参数和常量67

3.8.1 常量67

3.8.2 参数69

3.8.3 Verilog-1995的参数使用71

3.9 设计实例72

3.9.1 7段LED数码管十六进制译码器72

3.9.2 “符号—幅值”加法器76

3.9.3 桶式移位器79

3.9.4 简化的浮点加法器81

3.10 文献备注87

3.11 实验87

3.11.1 多功能桶式移位器87

3.11.2 双优先级编码器88

3.11.3 BCD码增量器88

3.11.4 浮点数大于比较电路88

3.11.5 浮点数和有符号整型数转换电路89

3.11.6 增强型浮点型加法器89

第4章 常规时序电路90

4.1 简介90

4.1.1 D触发器和寄存器90

4.1.2 同步系统91

4.1.3 代码开发92

4.2 触发器和寄存器的HDL代码92

4.2.1 D触发器93

4.2.2 寄存器96

4.2.3 寄存器文件97

4.2.4 Xilinx Spartan-3器件的存储元件98

4.3 简单的设计举例99

4.3.1 移位寄存器99

4.3.2 二进制计数器及其转换形式101

4.4 时序电路的测试平台105

4.5 案例学习109

4.5.1 LED分时复用电路109

4.5.2 码表118

4.5.3 FIFO缓冲器122

4.6 文献备注128

4.7 实验128

4.7.1 可编程的方波生成器128

4.7.2 PWM和LED调节器128

4.7.3 旋转的方形图案电路128

4.7.4 心跳电路129

4.7.5 可轮换的LED标语电路129

4.7.6 增强的码表129

4.7.7 栈130

第5章 有限状态机131

5.1 引言131

5.1.1 Mealy输出和Moore输出131

5.1.2 有限状态机表示方法132

5.2 状态机编码设计134

5.3 设计举例137

5.3.1 上升沿检测器137

5.3.2 去抖电路143

5.3.3 测试电路147

5.4 文献备注149

5.5 参考实验150

5.5.1 双沿检测器150

5.5.2 另一种去抖电路150

5.5.3 停车场占用计数器150

第6章 带数据路径的有限状态机152

6.1 简介152

6.1.1 单个RT操作152

6.1.2 ASMD图153

6.1.3 带寄存器的判决盒154

6.2 FSMD的代码开发156

6.2.1 基于RT方法学的去抖电路156

6.2.2 带有数据路径元件的编码157

6.2.3 带有隐含数据路径元件的编码161

6.2.4 对比163

6.2.5 测试电路165

6.3 设计实例167

6.3.1 斐波纳契数电路167

6.3.2 除法电路171

6.3.3 二进制向BCD码转换电路175

6.3.4 周期计数器180

6.3.5 精确的低频计数器184

6.4 文献备注188

6.5 实验188

6.5.1 另一种去抖电路188

6.5.2 BCD码向二进制码转换电路188

6.5.3 带有BCD I/O的斐波纳契电路:设计方法Ⅰ188

6.5.4 带有BCD I/O的斐波纳契电路:设计方法Ⅱ189

6.5.5 尺度自适应的低频计数器189

6.5.6 反应定时电路190

6.5.7 巴贝奇差分引擎模拟电路191

第7章 Verilog相关的话题192

7.1 阻塞和非阻塞192

7.1.1 概述192

7.1.2 组合逻辑电路194

7.1.3 存储元件196

7.1.4 时序电路使用阻塞和非阻塞赋值197

7.2 另外一种时序电路代码风格200

7.2.1 二进制计数器200

7.2.2 FSM203

7.2.3 FSMD204

7.2.4 总结207

7.3 使用有符号数据类型208

7.3.1 概述208

7.3.2 Verilog-1995中的有符号数209

7.3.3 Verilog-2001中的有符号数210

7.4 在综合中使用函数211

7.4.1 概述211

7.4.2 举例212

7.5 用于测试平台开发的额外结构214

7.5.1 always和initial块214

7.5.2 程序语句215

7.5.3 时序控制217

7.5.4 延时控制217

7.5.5 事件控制218

7.5.6 wait语句218

7.5.7 timescale指令219

7.5.8 系统函数和任务219

7.5.9 自定义函数和任务224

7.5.10 复杂测试平台示例226

7.6 文献备注234

7.7 实验234

7.7.1 使用阻塞和非阻塞赋值的移位寄存器234

7.7.2 BCD计数器的另一种代码风格235

7.7.3 FIFO缓冲器的另一种代码风格236

7.7.4 斐波纳契数电路的另一种代码风格236

7.7.5 双模式比较器236

7.7.6 增加的二进制监视器236

7.7.7 FIFO缓冲器测试平台236

第二部分 I/O模块239

第8章 UART239

8.1 引言239

8.2 UART接收子系统240

8.2.1 过采样步骤240

8.2.2 波特率产生器241

8.2.3 UART接收端241

8.2.4 接口电路245

8.3 UART发送子系统248

8.4 UART总系统简述252

8.4.1 完整的UART核252

8.4.2 UART验证配置254

8.5 定制一个UART257

8.6 文献备注258

8.7 实验258

8.7.1 具备所有特征的UART258

8.7.2 拥有波特率自动检测功能的UART258

8.7.3 拥有波特率校验位自动检测功能的UART259

8.7.4 UART控制的秒表259

8.7.5 UART控制的LED标语260

第9章 PS2键盘261

9.1 引言261

9.2 P32接收子系统261

9.2.1 PS2端口的物理层接口261

9.2.2 设备到主机的通信协议262

9.2.3 设计和代码262

9.3 PS2键盘的扫描码266

9.3.1 扫描码概述266

9.3.2 扫描码监听电路267

9.4 PS2键盘接口电路271

9.4.1 基本设计与HDL代码271

9.4.2 验证电路274

9.5 文献备注277

9.6 实验277

9.6.1 可选的键盘接口Ⅰ277

9.6.2 可选的键盘接口Ⅱ277

9.6.3 带看门狗定时器的PS2接收子系统277

9.6.4 键盘控制的秒表278

9.6.5 键盘控制的移动LED横幅278

第10章 PS2鼠标279

10.1 引言279

10.2 PS2鼠标协议279

10.2.1 基本操作279

10.2.2 基本的初始化程序280

10.3 PS2传输子系统281

10.3.1 主机到PS2设备的通信协议281

10.3.2 设计和代码282

10.4 双向的PS2接口288

10.4.1 基本设计和代码288

10.4.2 确认电路289

10.5 PS2鼠标接口293

10.5.1 基本设计293

10.5.2 测试电路297

10.6 文献备注298

10.7 实验298

10.7.1 键盘控制电路298

10.7.2 增强的鼠标接口299

10.7.3 鼠标控制7段LED显示器299

第11章 外部SRAM300

11.1 引言300

11.2 IS61LV25616AL SRAM的特性300

11.2.1 Block示意图和I/0信号300

11.2.2 时序参数302

11.3 基础存储控制器304

11.3.1 Block示意图304

11.3.2 时序需求306

11.3.3 SRAM的寄存器文件307

11.4 安全设计307

11.4.1 ASMD图307

11.4.2 时序分析308

11.4.3 HDL编码(执行)309

11.4.4 基础测试电路313

11.4.5 全面的SRAM测试电路316

11.5 更主流的设计322

11.5.1 时序问题322

11.5.2 可选设计Ⅰ323

11.5.3 可选设计Ⅱ325

11.5.4 可选设计Ⅲ326

11.5.5 Xilinx公司的高级FPGA特点327

11.6 文献备注328

11.7 实验328

11.7.1 512K×16配置的存储器328

11.7.2 1M×8配置的寄存器329

11.7.3 8M×1配置的存储器329

11.7.4 扩展存储器实验电路329

11.7.5 存储控制器和可选设计Ⅰ的测试电路329

11.7.6 存储控制器和可选设计Ⅱ的测试电路329

11.7.7 存储控制器和可选设计Ⅲ的测试电路329

11.7.8 DCM的存储控制器330

11.7.9 高性能存储控制器330

第12章 XilinxSpartan-3特殊存储器331

12.1 简介331

12.2 Spartant-3设备的嵌入式存储器331

12.2.1 摘要331

12.2.2 对照332

12.3 合并存储器模块的方法332

12.3.1 元件例化产生的存储器模块332

12.3.2 核生成器产生的存储器模块334

12.3.3 通过HDL生成的存储器模块334

12.4 存储器相关的HDL模板334

12.4.1 单口RAM335

12.4.2 双口RAM338

12.4.3 ROM340

12.5 文献备注342

12.6 实验343

12.6.1 基于块RAM的FIFO343

12.6.2 基于块RAM的栈343

12.6.3 基于ROM的大量信号地址343

12.6.4 基于ROM的sin(x)函数343

12.6.5 基于ROM的sin(x)和cos(x)函数344

第13章 VGA控制器Ⅰ:图形345

13.1 简介345

13.1.1 CRT的基本工作方式345

13.1.2 S3板上的VGA端口346

13.1.3 视频控制器347

13.2 VGA同步348

13.2.1 水平同步348

13.2.2 垂直同步349

13.2.3 VGA同步信号的时序计算350

13.2.4 HDL实现351

13.2.5 测试电路354

13.3 像素生成电路概述355

13.4 使用对象映射图的图像生成356

13.4.1 矩阵对象357

13.4.2 非矩阵对象362

13.4.3 活动的对象364

13.5 位图映射的图像生成372

13.5.1 双口RAM实现373

13.5.2 单口RAM实现378

13.6 文献备注379

13.7 实验379

13.7.1 VGA测试图案发生器379

13.7.2 SVGA模式同步电路379

13.7.3 可视化屏幕调整电路380

13.7.4 箱子里球的电路380

13.7.5 箱子里两个球的电路380

13.7.6 两个游戏者的游戏380

13.7.7 越狱游戏380

13.7.8 全屏圆点轨迹381

13.7.9 鼠标指针电路381

13.7.10 小屏幕内鼠标轨迹电路381

13.7.11 全屏幕鼠标轨迹电路382

第14章 VGA控制器Ⅱ:示例383

14.1 简介383

14.2 举例383

14.2.1 点阵的特性383

14.2.2 字体ROM384

14.2.3 基本文本生成电路386

14.2.4 字体显示电路387

14.2.5 字体缩放比例390

14.3 全屏文本显示391

14.4 完整的乒乓游戏设计396

14.4.1 文本子系统396

14.4.2 修正图像分系统404

14.4.3 辅助计算器406

14.4.4 顶层系统408

14.5 文献备注415

14.6 实验415

14.6.1 旋转旗帜415

14.6.2 指针的下划线415

14.6.3 双模式文本显示415

14.6.4 键盘文本输入415

14.6.5 UART终端416

14.6.6 方波显示416

14.6.7 简单的四路逻辑分析器416

14.6.8 完整的双人乒乓游戏417

14.6.9 完整的通关游戏417

第三部分 PicoBlaze微控制器421

第15章 PicoBlze概述421

15.1 简介421

15.2 定制硬件和软件421

15.2.1 从专用FSMD到通用微控制器421

15.2.2 微控制器的应用423

15.3 PicoBlaze概述424

15.3.1 基本组成424

15.3.2 顶层HDL模块425

15.4 开发流程426

15.5 指令集428

15.5.1 编程模式428

15.5.2 指令格式429

15.5.3 逻辑指令429

15.5.4 算术指令430

15.5.5 比较和检验指令431

15.5.6 移位和循环指令432

15.5.7 数据传输指令434

15.5.8 程序控制指令436

15.5.9 中断指令440

15.6 伪指令声明指令441

15.6.1 KCPSM3汇编伪指令441

15.6.2 PBlazeIDE汇编伪指令441

15.7 文献备注442

第16章 PicoBlaze汇编语言开发443

16.1 简介443

16.2 有效的代码表443

16.2.1 KCPSM3协议443

16.2.2 比特操作443

16.2.3 多字节数据处理445

16.2.4 控制结构446

16.3 子程序开发449

16.4 编程450

16.4.1 示例451

16.4.2 程序文件457

16.5 汇编代码处理459

16.5.1 KCSPM3编译460

16.5.2 PBlazeIDE仿真460

16.5.3 JTAG重载463

16.5.4 PBlazeIDE编译463

16.6 PicoBlaze综合464

16.7 文献备注466

16.8 实验466

16.8.1 有符号数乘法运算466

16.8.2 多字节乘法运算466

16.8.3 循环位移功能466

16.8.4 高低位互置功能466

16.8.5 二进制码至BCD码转换466

16.8.6 BCD码至二进制码转换467

16.8.7 心跳电路467

16.8.8 旋转闪亮LED电路467

16.8.9 离散LED调光器467

第17章 PicoBlaze I/O接口468

17.1 简介468

17.2 输出端口468

17.2.1 output指令及时序468

17.2.2 输出接口469

17.3 输入端口479

17.3.1 输入指令和时序472

17.3.2 输入接口472

17.4 包括开关输入和7段LED显示接口的二次方计算程序474

17.4.1 输出接口475

17.4.2 输入接口476

17.4.3 集成代码开发478

17.4.4 HDL代码开发488

17.5 结合组合乘法器和UART控制器的乘法程序492

17.5.1 乘法器接口492

17.5.2 UART接口493

17.5.3 汇编代码开发494

17.5.4 HDL代码开发508

17.6 文献备注512

17.7 实验512

17.7.1 低频计数器Ⅰ512

17.7.2 低频计数器Ⅱ513

17.7.3 自适应低频计数器513

17.7.4 利用软件定时器替代基础反应定时器513

17.7.5 包含硬件定时器的反应定时器513

17.7.6 增强型反应定时器513

17.7.7 小屏幕鼠标跟踪电路514

17.7.8 全屏幕鼠标跟踪电路514

17.7.9 增强型跑马灯字幕514

17.7.10 乒乓游戏514

17.7.11 文本编程器514

第18章 PicoBlaze中断接口515

18.1 简介515

18.2 PicoBlaze里的中断操作515

18.2.1 软件处理515

18.2.2 时序图517

18.3 外部接口517

18.3.1 中断请求信号517

18.3.2 多重中断请求518

18.4 软件发展描述519

18.4.1 中断作为一个可选择的计划方案519

18.4.2 中断服务程序的发展519

18.5 设计用例520

18.5.1 接口中断520

18.5.2 中断服务程序的发展521

18.5.3 集成代码的发展521

18.5.4 HDL代码的发展524

18.6 文献备注528

18.7 实验528

18.7.1 可选择的计时器中断服务程序528

18.7.2 可编程的计时器529

18.7.3 设置按钮中断服务程序529

18.7.4 两个请求的中断服务程序529

18.7.5 4个请求的中断控制器529

附录 Verilog举例531

A.1 数值和运算符531

A.1.1 有符号数和无符号数531

A.1.2 运算符531

A.2 一般的Verilog构造532

A.2.1 全部代码的组成532

A.2.2 例化部分534

A.3 条件运算符操作以及if和case语句535

A.3.1 条件运算符操作和if语句535

A.3.2 case语句536

A.4 用always过程块组成的电路537

A.4.1 过程块无默认输出值537

A.4.2 过程块输出有默认值538

A.5 寄存组成538

A.5.1 寄存器模板538

A.5.2 寄存器文件539

A.6 时序电路540

A.7 有限状态机541

A.8 有限状态机数据544

A.9 S3开发板的约束文件S3.UCF547

参考文献552

热门推荐