基于FPGA的硬件系统设计实验与实践教程

基于FPGA的硬件系统设计实验与实践教程"

作者:姚爱红、张国印
ISBN:9787302245377
定价:¥29
字数:千字
页数:
出版时间:2011.06.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

本书介绍基于FPGA的数字系统设计方法,在基本的功能部件设计基础上,设计微处理器及单芯片系统。本书不仅介绍通用的数字电路和数字系统的设计方法,并对计算机硬件系统的组织进行深入分析。通过运算电路设计、状态机设计、RISC模型机设计等实验用例的训练,学生可以建立计算机的整机概念,了解数据在计算机中的表示、传送、处理以及控制信息是如何完成对计算机系统的控制。

本书取材新颖,采用实例教学的组织形式,内容由浅入深,循序渐进。书中给出了大量设计实例及扩展方案,不仅可以作为教学内容进行学习,部分内容还具有工程实践价值。本书可作为高等院校计算机类、电子类和自动化类等有关专业的教材和参考书,也可供有关专业工程技术人员参考。

前言

1. 写作背景

目前,关于我国高等教育计算机专业一级学科和专业方向设置问题受到非常大的关注。原有的计算机科学与技术一级学科现在逐渐分化为计算机科学、计算机工程和软件工程3个学科,同时保密与信息安全专业方向也在积极地进行准备。对于计算机专业的本科生教育而言,其基本的培养方案、课程设置和教学大纲都需要根据新的形势进行变革。

传统的计算机专业课程体系中与计算机硬件设计相关的课程是“数字逻辑”、“计算机组成原理”和“计算机系统结构”,每一门课程都辅助有相应的实践学时。实践环节的设置不仅起到加深学生理解理论课所学知识的作用,还有助于培养学生将理论与实践相联系并解决实际问题的能力,对于实现当前的高等教育改革目标,提高毕业生综合素质具有重要的意义。但是,受实验设备所限,各课程的实验环节分别在数字逻辑实验箱、计算机部件实验平台和EDA实验开发平台上进行,缺乏连贯性和整体性。

随着现场可编程逻辑器件的广泛应用,以FPGA为核心器件的实验教学平台日益成熟,采用FPGA芯片实现数字逻辑、计算机部件和计算机组成及系统设计实验已经成为新的趋势。采用FPGA芯片实现硬件设计实验,开发速度快、方便、可靠,并且由于FPGA芯片可反复编程,因此几乎没有器件损耗,大大降低了实验室的维护成本。另一方面,随着可编程逻辑器件集成度的迅速提高和嵌入式系统应用的日益广泛,基于FPGA的SoPC系统设计技术已经在通信、工业控制等许多领域得到实际应用。在计算机专业硬件课程的实验教学环节中引入SoPC相关的内容,渗透片上系统软硬件协同设计的思想,对于提高学生的实际动手能力和就业竞争力都有非常大的帮助。

2. 本书特点

本书兼顾高等学校理论教学需要与培养学生实践能力的需求,借鉴国外名校在计算机科学与工程专业课程设置及相关课程内容的安排,组织本教程的相关理论知识及实验用例设计,力争理论详尽、用例科学、指导到位。配合高等学校的“数字逻辑”、“计算机组成原理”、“计算机系统结构”等课程的实践教学环节,突出实用性。所有实验可操作性强,与实践结合紧密。本书不仅介绍基于FPGA的EDA设计方法,更着眼于介绍在基本的数字逻辑功能部件的基础上如何构造微处理器,即本教材着眼于计算机的硬件系统组织,而不仅仅是介绍通用的数字电路和数字系统的设计方法。通过浮点运算电路设计、状态机设计、RISC模型机部分模块的设计等实验用例的训练,学生可以建立计算机的整机概念,了解数据在计算机中的表示、传送、处理以及控制信息是如何完成对计算机系统进行控制的。

本书可作为计算机科学与技术专业及相关专业“数字逻辑实验”、“EDA设计实验”、“计算机部件实验”、“计算机组成实验”等课程的教材,书中的全部实验示例都经过精心的设计和完全的调试,可以放心使用。除数字钟、VGA接口控制器和SoPC系统设计这3章的实验结果需要下载到目标平台上以外,其他实验均可直接在仿真开发环境中进行,方便可靠。此外,与平台相关的实验内容也只需少量修改(主要是修改引脚约束文件),就可以移植到不同的实验平台上运行。

3. 内容安排

本书的内容安排如下: 

 第1章介绍可编程逻辑器件的基本概念、发展历程以及分类方法和开发流程,并介绍FPGA的发展及主要厂商和产品的概况。

 第2章简要介绍Verilog HDL的基本语法知识、进行硬件描述的一般结构及使用硬件描述语言进行电路设计的3种描述方式(结构描述、数据流描述和行为级描述)。

 第3章介绍进行FPGA开发所需的工具软件、目前国内高校常用的FPGA实验平台以及一些常用仪器仪表的使用方法,并以实验0的形式详细介绍基于FPGA的硬件设计过程。

 第4~5章以常用的组合逻辑电路和几种常见的同步触发器电路为例,分别详细描述采用原理图输入法和硬件描述语言方法设计组合逻辑、时序逻辑及功能仿真的方法。

 第6章简要介绍FSM中状态的描述方法、不同类型FSM的设计方法、FSM的复位和毛刺问题等。通过乘法状态机、序列检测器和交通灯控制器3

个示例说明FSM的设计方法。

 第7章介绍定点加法器和浮点加法器的设计,详细描述了一个32位浮点加法器和一个简单算术逻辑运算单元的设计实现过程。

 第8章介绍基本乘法器和除法器的原理与设计方法,以及两种快速乘法器设计技术。

 第9章讨论对存储器的建模,介绍利用Verilog HDL对只读存储器和随机存取存储器进行建模,以及利用IP Core生成工具MegaWizard PlugIn Manager生成存储器核的方法。

 第10章通过详细设计一个教学用模型微处理器HEUR1,介绍处理器设计的基本方法和步骤。

 第11章详细描述了利用Verilog HDL语言设计基于FPGA的数字电子时钟的过程,而且所设计的电路具有工程实用性。

 第12章介绍VGA接口的基本原理和控制方式,通过设计并实现了在CRT显示器上显示彩色条块、圆环的示例来说明基于FPGA的VGA接口设计技术,并在GW48SoPC实验台上进行实验。

 第13章阐述FIR滤波器的基本原理、结构以及窗函数法设计FIR滤波器的过程,并详细描述在FPGA上实现FIR滤波的方法及验证过程。

 第14章介绍利用Altera公司提供的嵌入式微处理器核Nios实现SoPC系统的基本方法,以一个跑马灯控制器的软硬件设计为例对SoPC系统设计流程进行详细描述。

4. 致谢

首先感谢哈尔滨工程大学计算机科学与技术学院嵌入式系统研究室和计算机实验教学中心的各位老师和研究生,感谢他们的大力支持和热情帮助。以下研究生参与了本书实验示例代码的编写和调试以及原始资料的翻译和整理工作: 康萌萌、刘铭、张智钧、孙盟哲、王春艳、关琳、颜丽、吴剑、李玲、谢争、杜小雪、菅庆峰、张明涛等,感谢他们付出的辛勤劳动。感谢刘书勇老师和付晓晶老师的热情帮助,他们为编者提供了实验平台及相关资料。

感谢评阅专家对本书提出的宝贵修改意见,他们的劳动对完善和提高全书质量起到了关键的作用。

编者虽然从事计算机硬件课程教学多年,但是由于水平所限,书中难免存在缺点和错误,希望各位读者提出宝贵意见。编者的联系方式为: yaoaihong@hrbeu.edu.cn。

编者

2011年2月

目录

第1章可编程逻辑器件简介

1.1可编程逻辑器件概述

1.1.1可编程逻辑器件的发展历程

1.1.2可编程逻辑器件的分类方法

1.2可编程逻辑器件的设计流程

1.3FPGA发展概况

1.3.1FPGA的主要优势与发展前景

1.3.2主流FPGA产品及供应商简介

习题1

第2章Verilog HDL基础

2.1前言

2.2程序示例

2.3模块

2.3.1模块的结构

2.3.2模块的实例化

2.4变量和信号的类型

2.5Verilog HDL表达式

2.5.1常量

2.5.2操作符

2.6Verilog HDL的主要功能语句

2.6.1Verilog HDL对硬件的描述方式

2.6.2数据流描述

2.6.3行为描述——过程块

2.7其他语法规则说明

2.7.1标识符命名原则

2.7.2标点的使用

2.7.3注释

2.7.4转义字符

2.7.5编译命令

2.7.6参数

2.8示例程序分析

2.9推荐阅读

习题2

第3章实验环境介绍

3.1EDA软件工具介绍

3.1.1集成的FPGA开发环境

3.1.2ModelSim介绍

3.1.3Synplify简介

3.2FPGA典型实验开发平台简介

3.2.1康芯GW48SoPC实验台

3.2.2Xilinx XUP Spartan板

3.3实验仪器的使用方法

3.3.1函数信号发生器

3.3.2数字存储示波器

3.3.3逻辑分析仪

3.4熟悉实验环境

3.4.1实验目的

3.4.2实验内容

3.4.3实验步骤

习题3

第4章基本组合逻辑电路设计

4.1组合逻辑电路基础知识

4.1.1组合逻辑电路的分析方法

4.1.2组合逻辑电路分析举例

4.1.3组合逻辑电路的设计方法

4.2数据比较器

4.2.1数据比较器的功能

4.2.2比较器电路的设计

4.3数据选择器

4.3.1四选一数据选择器

4.3.2四选一数据选择器的设计

4.3.3数据选择器的应用

4.4二进制加法器

4.4.1半加器

4.4.2全加器

4.5编码/译码器

4.5.1BCD码编码器

4.5.2BCD码译码器

实验41用原理图输入法设计四位加法器

实验42数码显示译码器

习题4

第5章基本时序逻辑设计

5.1时序逻辑电路的基础知识

5.2触发器

5.2.1RS触发器

5.2.2D触发器

5.2.3JK触发器与T触发器

5.3时序逻辑电路的分析方法

5.3.1同步时序电路的分析方法

5.3.2异步时序电路的分析方法

5.4常见的时序逻辑电路设计

5.4.1移位寄存器

5.4.2计数器

5.4.3分频器

5.4.4顺序脉冲发生器

5.4.5阶乘运算器

实验51可预置的加减计数器实验

实验52扭环形计数器

习题5

第6章有限状态机设计

6.1状态的描述

6.1.1整数编码状态

6.1.2parameter语句声明状态

6.1.3`define编译引导语句

6.2FSM的设计方法

6.2.1Moore型FSM的设计

6.2.2Mealy型FSM的设计

6.2.3混合型FSM的设计

6.3FSM的复位和毛刺问题

6.4FSM设计示例

6.4.1乘法器建模

6.4.2序列检测器的设计

6.4.3交通灯控制器的设计

实验61设计序列检测器

习题6

第7章加法器设计

7.1定点加法器

7.1.1进位链结构

7.1.2串行进位

7.1.3并行进位

7.2浮点加法器

7.2.1规格化浮点数加减运算基本原理

7.2.2浮点加法器的设计

7.3运算器(ALU)的设计

实验718位加法器的设计

实验7216位超前进位加法器

习题7

第8章乘、除法器的设计

8.1常用的机器数编码格式

8.2定点乘法器原理及实现

8.2.1原码一位乘算法及实现

8.2.2补码一位乘算法及实现

8.3定点除法器原理及实现

8.3.1原码不恢复余数除法

8.3.2补码不恢复余数除法

8.4快速乘法器

8.4.1修正布斯算法

8.4.2华莱士树结构

实验81原码两位乘法器

实验82补码两位乘法器

习题8

第9章存储器建模

9.1只读存储器ROM的建模

9.1.1ROM的基本结构

9.1.2ROM的建模

9.1.3ROM的仿真测试

9.2随机存储器RAM的建模

9.2.1RAM的基本结构

9.2.2RAM的建模

9.2.3RAM的仿真测试

9.3利用IP Core工具生成ROM和RAM

实验91利用SRAM设计并实现FIFO

习题9

第10章CPU的设计

10.1CPU的基本组成

10.1.1控制部件

10.1.2运算部件

10.1.3寄存器组

10.2CPU设计的一般过程

10.3HEUR1处理器指令集的设计

10.3.1指令格式

10.3.2指令集的设计

10.4HEUR1内部数据通路的设计

10.5时序系统的设计

10.6HEUR1各功能模块的设计

10.6.1指令译码模块的设计

10.6.2立即数生成模块

10.6.3分支处理模块

10.6.4地址生成模块

10.6.5算术逻辑单元模块

10.6.6寄存器组模块

10.6.7CPU模块

10.7仿真验证及结果

10.7.1外围模块建模

10.7.2系统复位

10.7.3功能验证

实验101HEUR1处理器核的指令集扩展

习题10

第11章数字电子时钟设计

11.1数字钟功能需求说明

11.2实验平台相关电路说明

11.2.17段数码管

11.2.2外部按键

11.2.3音频输出

11.3数字钟系统的设计

11.4数字钟各模块的设计

11.4.1时钟分频模块

11.4.2计时模块(包含按键控制)

11.4.3音频输出模块

11.5仿真验证

11.6引脚设置

实验111整点报时闹钟设计

习题11

第12章VGA接口控制器

12.1视频信号原理

12.2数字视频图像的表示

12.3VGA接口介绍

12.4VGA信号时序

12.5VGA接口控制器设计

12.5.1VGASig模块

12.5.2ColorMap模块

12.5.3顶层模块

12.5.4功能仿真

12.5.5引脚设置

实验121800×600分辨率VGA接口的设计

实验122VGA动态图形显示控制

习题12

第13章FIR数字滤波器设计

13.1数字滤波器概述

13.2FIR滤波器的结构

13.3FDATool工具使用介绍

13.3.1MATLAB简介

13.3.2FDATool设计FIR滤波器的参数

13.4窗函数法FIR滤波器的设计

13.4.1窗函数的选择

13.4.2窗函数法FIR滤波器的设计步骤

13.5FIR滤波器的FPGA实现

13.5.1滤波器系数的量化

13.5.216阶FIR滤波器的实现

13.5.3在ModelSim中加入Altera仿真库

13.6FIR滤波器的仿真验证

13.6.1仿真数据文件的格式

13.6.2测试平台程序的设计

13.6.3仿真结果分析

实验131低通FIR滤波器的设计

实验132FIR滤波器的硬件实现及仿真

习题13

第14章基于Nios的SoPC系统

14.1SoPC技术概述

14.1.1IP核与IP复用技术

14.1.2片上总线

14.2嵌入式微处理器核介绍

14.2.1Altera Nios Ⅱ软核处理器

14.2.2Xilinx MicroBlaze核

14.3基于Nios的SoPC系统开发流程

14.4基于Nios的跑马灯控制器的设计

14.4.1基本SoPC系统硬件结构

14.4.2JTAG UART IP核

14.5跑马灯控制器的硬件实现

14.5.1新建SoPC设计项目

14.5.2各模块的设计

14.5.3存储器地址和IRQ分配

14.5.4Nios Ⅱ系统生成

14.5.5SoPC系统生成

14.6跑马灯控制器的软件设计

14.6.1C源程序输入

14.6.2代码优化

14.6.3程序运行和下载

实验141基于Nios Ⅱ处理器计时器的设计

习题14

附录Verilog HDL 关键字

参考文献

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个