FPGA入门指南 用Verilog HDL语言设计计算机系统

FPGA入门指南 用Verilog HDL语言设计计算机系统
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2021-03
版次: 1
ISBN: 9787115552648
定价: 109.00
装帧: 其他
开本: 其他
纸张: 胶版纸
页数: 221页
字数: 292千字
分类: 工程技术
7人买过
  • FPGA(现场可编程门阵列)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它作为专用集成电路(ASIC)领域中的一种半定制电路出现,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
      本书从数字电路基础讲起,接着向读者介绍硬件描述语言Verilog HDL的用法,然后选择8位计算机系统——GAME BOY掌上游戏机作为实战项目,向大家详细介绍CPU内核和外设的架构和设计,引导读者设计兼容的硬件。本书介绍了基本的计算机架构;如何实现CPU基本的计算功能,再实现更为复杂的程序控制;视频发生器和音频发生器的使用方法和实现方法;一些用于辅助加速相关硬件设计的比较有效的仿真和调试工具;现代CPU技术的发展和限制。
      本书适合电子、信息工程、通信工程、自动化、计算机科学与技术等相关专业高校学生阅读,也适合电子工程师和想学习FPGA使用方法的电子爱好者阅读。? 张文挺 亚德诺半导体公司数字信号处理器软 件 应 用 工 程 师、《 无 线 电》 杂 志 作者、 开 源 爱 好 者。 在《 无 线 电》 杂 志上撰写项目制作教程近 10 年,发表了STM32、FPGA 等热门平台的入门教程。曾获 ADI 杰出贡献奖、MC-REU优秀论文海报奖等奖项,参与多个开源软硬件项目开发,在开源半导体协会会议上发表过演讲。 第 1章 软件之下的世界

    1.1 什么是 FPGA

    1.1.1 FPGA有什么功能?

    1.1.2 FPGA与单片机有可比性吗?

    1.1.3 学习FPGA有什么意义?

    1.2 逻辑门和可编程逻辑门

    1.2.1 74系列芯片

    1.2.2 CPLD和FPGA

    1.2.3 如何选择FPGA芯片

    1.3 FPGA与游戏机

    第 2章 数字电路基础

    2.1 数字的表示

    2.1.1 进制

    2.1.2 无符号整数类型

    2.1.3 有符号整数类型

    2.1.4 定点类型

    2.1.5 浮点类型

    2.1.6 BCD编码

    2.1.7 总结

    2.2 组合逻辑

    2.2.1 逻辑说明举例

    2.2.2 搭建电路

    2.2.3 使用Xilinx FPGA搭建

    2.3 时序逻辑

    2.3.1 锁存器与触发器

    2.3.2 实例1 :灯

    2.3.3 实例2 :计数器

    2.3.4 总结

    2.4 状态机

    2.4.1 什么是状态机

    2.4.2 用逻辑电路实现状态机

    2.5 Verilog语法基础

    2.5.1 程序模块

    2.5.2 模块参数

    2.5.3 内部信号定义

    2.5.4 表达式和运算符

    2.5.5 数值表示

    2.5.6 程序语句assign

    2.5.7 程序语句always

    2.5.8 练习

    2.6 Verilog语法应用

    2.6.1 上一节练习答案

    2.6.2 Verilog中的其他语句

    2.6.3 Verilog中的双向信号

    2.6.4 仿真

    2.6.5 使用Intel FPGA

    2.6.6 使用Xilinx FPGA

    2.6.7 总结

    第 3章 CPU

    3.1 存储程序与假想CPU

    3.1.1 上节作业

    3.1.2 CPU是做什么的

    3.1.3 CPU执行的程序

    3.1.4 CPU的存储

    3.2 SM83 CPU介绍

    3.2.1 LR35902简介

    3.2.2 SM83指令集架构

    3.2.3 SM83指令编码

    3.2.4 关于指令集设计

    3.2.5 作业

    3.3 实现CPU基本部件

    3.3.1 目标

    3.3.2 分析

    3.3.3 设计数据路径

    3.3.4 设计控制单元

    3.3.5 总结

    3.4 实现CPU数据路径

    3.4.1 设计

    3.4.2 实现数据路径

    3.4.3 实现指令内存

    3.4.4 实现寄存器组

    3.4.5 实现算术逻辑单元

    3.4.6 实现主数据路径

    3.4.7 总结

    3.5 实现CPU控制单元

    3.5.1 控制单元

    3.5.2 控制单元模块定义

    3.5.3 状态机框架

    3.5.4 取操作码阶段/取立即数阶段

    3.5.5 执行阶段

    3.5.6 测试程序

    3.5.7 仿真

    3.6 SM83设计细节

    3.6.1 SM83微架构设计

    3.6.2 设计建议

    3.6.3 总结

    第 4章 外围

    4.1 视频信号

    4.1.1 像素数据

    4.1.2 视频扫描

    4.1.3 视频信号

    4.1.4 用FPGA产生视频信号

    4.1.5 总结

    4.2 视频发生器介绍

    4.2.1 图像的来源

    4.2.2 图层

    4.2.3 背景

    4.2.4 精灵

    4.2.5 窗口

    4.2.6 使用

    4.2.7 程序模板

    4.2.8 背景图层显示

    4.2.9 窗口显示

    4.2.10 精灵显示

    4.2.11 寄存器设定

    4.2.12 总结

    4.3 视频发生器设计

    4.3.1 大体设计

    4.3.2 实现

    4.3.3 总结

    4.4 音频信号

    4.4.1 声波的数字表示

    4.4.2 PCM的传输

    4.4.3 I2S/DSP的实现

    4.4.4 AC Link的实现

    4.4.5 总结

    4.5 音频发生器介绍

    4.5.1 GB PSG的基本介绍

    4.5.2 GB PSG的功能和使用方法

    4.5.3 总结

    4.6 音频发生器实现

    4.6.1 CPU接口和寄存器

    4.6.2 方波通道

    4.6.3 采样通道和杂波通道

    4.6.4 总结

    4.7 定时器

    4.7.1 定时器的功能和使用方法

    4.7.2 定时器模块接口

    4.7.3 总线读写

    4.7.4 定时功能实现

    4.7.5 总结

    4.8 总线互联

    4.8.1 8080总线

    4.8.2 Verilog 8080总线互联

    4.9 DMA

    4.9.1 GB的DMA

    4.9.2 GB的总线

    4.9.3 Verilator工具介绍

    4.9.4 使用Verilator工具

    4.9.5 使用C  配合Verilator进行仿真

    4.9.6 使用C  扩展Verilator仿真

    4.9.7 配合Shell脚本实现基本的单元测试

    4.9.8 总结

    第 5章 现代计算机架构

    5.1 RISC-V基础指令集

    5.1.1 RISC处理器的历史

    5.1.2 RISC-V架构简介

    5.1.3 RISC-V指令集模块

    5.1.4 RISC-V基础指令集:RV32I

    5.1.5 ISA设计要点

    5.1.6 总结

    5.2 缓存与内存层级

    5.2.1 简介

    5.2.2 内存层级

    5.2.3 缓存的设计

    5.2.4 总结

    5.3 虚拟内存与权限层级

    5.3.1 简介

    5.3.2 虚拟内存

    5.3.3 RISC-V虚拟内存

    5.3.4 权限层级

    5.3.5 总结

    5.4 超标量与乱序执行

    5.4.1 CPU架构与CPU微架构

    5.4.2 常见的CPU微架构设计

    5.5 现代CPU设计制约

    5.5.1 摩尔定律

    5.5.2 缩放定律

    5.5.3 黑暗之硅

    5.5.4 总结

    第 6章 最后的话

    6.1 总结

    6.1.1 回顾

    6.1.2 成果

    6.1.3 在这之后
  • 内容简介:
    FPGA(现场可编程门阵列)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它作为专用集成电路(ASIC)领域中的一种半定制电路出现,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
      本书从数字电路基础讲起,接着向读者介绍硬件描述语言Verilog HDL的用法,然后选择8位计算机系统——GAME BOY掌上游戏机作为实战项目,向大家详细介绍CPU内核和外设的架构和设计,引导读者设计兼容的硬件。本书介绍了基本的计算机架构;如何实现CPU基本的计算功能,再实现更为复杂的程序控制;视频发生器和音频发生器的使用方法和实现方法;一些用于辅助加速相关硬件设计的比较有效的仿真和调试工具;现代CPU技术的发展和限制。
      本书适合电子、信息工程、通信工程、自动化、计算机科学与技术等相关专业高校学生阅读,也适合电子工程师和想学习FPGA使用方法的电子爱好者阅读。?
  • 作者简介:
    张文挺 亚德诺半导体公司数字信号处理器软 件 应 用 工 程 师、《 无 线 电》 杂 志 作者、 开 源 爱 好 者。 在《 无 线 电》 杂 志上撰写项目制作教程近 10 年,发表了STM32、FPGA 等热门平台的入门教程。曾获 ADI 杰出贡献奖、MC-REU优秀论文海报奖等奖项,参与多个开源软硬件项目开发,在开源半导体协会会议上发表过演讲。
  • 目录:
    第 1章 软件之下的世界

    1.1 什么是 FPGA

    1.1.1 FPGA有什么功能?

    1.1.2 FPGA与单片机有可比性吗?

    1.1.3 学习FPGA有什么意义?

    1.2 逻辑门和可编程逻辑门

    1.2.1 74系列芯片

    1.2.2 CPLD和FPGA

    1.2.3 如何选择FPGA芯片

    1.3 FPGA与游戏机

    第 2章 数字电路基础

    2.1 数字的表示

    2.1.1 进制

    2.1.2 无符号整数类型

    2.1.3 有符号整数类型

    2.1.4 定点类型

    2.1.5 浮点类型

    2.1.6 BCD编码

    2.1.7 总结

    2.2 组合逻辑

    2.2.1 逻辑说明举例

    2.2.2 搭建电路

    2.2.3 使用Xilinx FPGA搭建

    2.3 时序逻辑

    2.3.1 锁存器与触发器

    2.3.2 实例1 :灯

    2.3.3 实例2 :计数器

    2.3.4 总结

    2.4 状态机

    2.4.1 什么是状态机

    2.4.2 用逻辑电路实现状态机

    2.5 Verilog语法基础

    2.5.1 程序模块

    2.5.2 模块参数

    2.5.3 内部信号定义

    2.5.4 表达式和运算符

    2.5.5 数值表示

    2.5.6 程序语句assign

    2.5.7 程序语句always

    2.5.8 练习

    2.6 Verilog语法应用

    2.6.1 上一节练习答案

    2.6.2 Verilog中的其他语句

    2.6.3 Verilog中的双向信号

    2.6.4 仿真

    2.6.5 使用Intel FPGA

    2.6.6 使用Xilinx FPGA

    2.6.7 总结

    第 3章 CPU

    3.1 存储程序与假想CPU

    3.1.1 上节作业

    3.1.2 CPU是做什么的

    3.1.3 CPU执行的程序

    3.1.4 CPU的存储

    3.2 SM83 CPU介绍

    3.2.1 LR35902简介

    3.2.2 SM83指令集架构

    3.2.3 SM83指令编码

    3.2.4 关于指令集设计

    3.2.5 作业

    3.3 实现CPU基本部件

    3.3.1 目标

    3.3.2 分析

    3.3.3 设计数据路径

    3.3.4 设计控制单元

    3.3.5 总结

    3.4 实现CPU数据路径

    3.4.1 设计

    3.4.2 实现数据路径

    3.4.3 实现指令内存

    3.4.4 实现寄存器组

    3.4.5 实现算术逻辑单元

    3.4.6 实现主数据路径

    3.4.7 总结

    3.5 实现CPU控制单元

    3.5.1 控制单元

    3.5.2 控制单元模块定义

    3.5.3 状态机框架

    3.5.4 取操作码阶段/取立即数阶段

    3.5.5 执行阶段

    3.5.6 测试程序

    3.5.7 仿真

    3.6 SM83设计细节

    3.6.1 SM83微架构设计

    3.6.2 设计建议

    3.6.3 总结

    第 4章 外围

    4.1 视频信号

    4.1.1 像素数据

    4.1.2 视频扫描

    4.1.3 视频信号

    4.1.4 用FPGA产生视频信号

    4.1.5 总结

    4.2 视频发生器介绍

    4.2.1 图像的来源

    4.2.2 图层

    4.2.3 背景

    4.2.4 精灵

    4.2.5 窗口

    4.2.6 使用

    4.2.7 程序模板

    4.2.8 背景图层显示

    4.2.9 窗口显示

    4.2.10 精灵显示

    4.2.11 寄存器设定

    4.2.12 总结

    4.3 视频发生器设计

    4.3.1 大体设计

    4.3.2 实现

    4.3.3 总结

    4.4 音频信号

    4.4.1 声波的数字表示

    4.4.2 PCM的传输

    4.4.3 I2S/DSP的实现

    4.4.4 AC Link的实现

    4.4.5 总结

    4.5 音频发生器介绍

    4.5.1 GB PSG的基本介绍

    4.5.2 GB PSG的功能和使用方法

    4.5.3 总结

    4.6 音频发生器实现

    4.6.1 CPU接口和寄存器

    4.6.2 方波通道

    4.6.3 采样通道和杂波通道

    4.6.4 总结

    4.7 定时器

    4.7.1 定时器的功能和使用方法

    4.7.2 定时器模块接口

    4.7.3 总线读写

    4.7.4 定时功能实现

    4.7.5 总结

    4.8 总线互联

    4.8.1 8080总线

    4.8.2 Verilog 8080总线互联

    4.9 DMA

    4.9.1 GB的DMA

    4.9.2 GB的总线

    4.9.3 Verilator工具介绍

    4.9.4 使用Verilator工具

    4.9.5 使用C  配合Verilator进行仿真

    4.9.6 使用C  扩展Verilator仿真

    4.9.7 配合Shell脚本实现基本的单元测试

    4.9.8 总结

    第 5章 现代计算机架构

    5.1 RISC-V基础指令集

    5.1.1 RISC处理器的历史

    5.1.2 RISC-V架构简介

    5.1.3 RISC-V指令集模块

    5.1.4 RISC-V基础指令集:RV32I

    5.1.5 ISA设计要点

    5.1.6 总结

    5.2 缓存与内存层级

    5.2.1 简介

    5.2.2 内存层级

    5.2.3 缓存的设计

    5.2.4 总结

    5.3 虚拟内存与权限层级

    5.3.1 简介

    5.3.2 虚拟内存

    5.3.3 RISC-V虚拟内存

    5.3.4 权限层级

    5.3.5 总结

    5.4 超标量与乱序执行

    5.4.1 CPU架构与CPU微架构

    5.4.2 常见的CPU微架构设计

    5.5 现代CPU设计制约

    5.5.1 摩尔定律

    5.5.2 缩放定律

    5.5.3 黑暗之硅

    5.5.4 总结

    第 6章 最后的话

    6.1 总结

    6.1.1 回顾

    6.1.2 成果

    6.1.3 在这之后
查看详情
12