《可编程技术与计算机系统实验与实践教程》系统地介绍可编程技术的原理、编程语言以及基于FPGA的设计方法与实现,在此基础上讨论基本数字电路的设计方法与实现,并通过对计算机硬件系统的组织与结构进行分析,详细介绍计算机系统的一般设计方法与实现,使学生在基本的功能部件设计基础上,设计计算机模型系统,建立计算机的整机概念,了解数据在计算机中的表示、传送、处理以及控制信息是如何完成对计算机系统的控制。
本书取材新颖实用,采用实验项目教学的组织形式,内容由浅入深,循序渐进。每个实验项目具有较强的独立性,实验项目内容、要求和方法设计详细,精心安排,可直接用于实验教学。书中还给出了大量设计实例及扩展方案,不仅可以作为教学内容进行学习,部分内容还具有工程实践价值。
本书可作为高等院校计算机类、电子类和自动化类等有关专业的实践教材和参考书,还可供相关工程技术人员参考。
“数字逻辑课程”和“计算机组成原理课程”是计算机专业核心的专业基础课,具有较强的工程性、技术性和实践性,这两门课程对应的实践环节也占有重要的位置,一些高校的计算机专业单独开设了“数字逻辑实验”和“计算机组成实验”等相关实验课程。一些软件工程和信息安全等专业方向的院校也将这两门实验课程合二为一,开设了“计算机硬件实验课程”。为了落实《国家中长期教育改革和发展规划纲要(2010—2020年)》,注重学生的智力开发和能力培养,我们构建了一个相对完善的计算机硬件系列实验教学体系,经过多年的教学经验积累,开发了基于可编程技术的数字逻辑电路、计算机部件、计算机系统等相关实验项目,编写了本书。
本书的使用对象是高等院校计算机科学与技术专业的本科生和研究生,软件工程和信息安全等相关专业本科生和研究生,也可作为电子类和自动化类等有关专业的实践教材和参考书。
本书在内容安排上共分9章。
第1章是绪论,主要介绍可编程技术相关概念,并阐述了基于可编程技术的计算机系统实验方法。
第2章介绍可编程技术基础知识和实验环境,包括VHDL硬件描述语言、Quartus Ⅱ软件开发环境和GW48CP++实验台的使用方法。
第3章设计一系列可编程技术基础实验项目,主要目的是通过实验项目使学生进一步掌握FPGA开发技术、VHDL设计方法以及Quartus Ⅱ软件和GW48CP++实验台的使用方法。
第4章设计一系列组合逻辑电路实验项目,包括基本门电路、编译码及代码转换电路实验,主要目的是通过实验掌握组合逻辑电路设计方法。
第5章设计一系列时序逻辑电路实验项目,包括触发器、寄存器、计数器和信号发生器等电路实验,主要目的是通过实验掌握时序逻辑电路设计方法。
第6章设计一系列计算机部件实验,包括运算器、存储器、控制器和总线控制等计算机部件相关实验,使学生掌握计算机部件的设计方法和工作原理。
第7章设计计算机组成实验,包括基本模型机、带移位功能模型机和复杂模型机3个实验项目,目的是巩固学生的计算机组成原理知识和提高基于FPGA技术的硬件设计能力。
第8章介绍基于Nios Ⅱ的SOPC基础知识和实验项目。使学生掌握嵌入式处理器概念和设计方法,掌握利用嵌入式处理器设计复杂计算机系统的方法,进一步提高FPGA开发能力。
第9章设计一系列基于FPGA的综合性实验项目,涵盖多个数字逻辑和计算机组成原理相关知识点,进一步提高学生的设计能力和综合实践能力。
任课教师可单独开设实验课或者在理论课中安排课内实验,可以根据教学大纲和本书的特点来安排实验内容。
本书的特点及教学建议如下。
(1) 全书采用实验项目教学的组织形式,内容由浅入深,循序渐进。每个实验项目具有较强的独立性,实验项目内容、要求和方法设计详细,精心安排,可直接用于实验教学。书中还给出了大量设计实例及扩展方案,不仅可以作为教学内容进行学习,部分内容还具有了实践价值。
(2) 全书设置丰富的实验项目,实验内容灵活设置,每个实验项目详细介绍基本原理和实验步骤,可以直接作为演示性或验证性实验。在每个实验项目中,在编译、仿真等阶段由简至深的实验要求,可以根据实际情况灵活设置实验难度和要求,将实验作为设计性实验。此外,大多数实验项目还增设了扩展实验内容,较大地提升了实验的设计空间,增强了实验的设计性、综合性和创新性。
本书在编写过程中,得到了哈尔滨工程大学计算机科学与技术学院和校实资处的有关领导和教师的大力关怀和支持,在此谨向他们表示诚挚的谢意。
编者虽然从事计算机实践教学工作多年,但由于水平有限,书中难免存在错误和不完善之处,欢迎广大读者批评指正,以促进我们的实验教学水平不断提高。
编者
2014年10月于哈尔滨
第]章 绪论
1.1 可编程逻辑器件介绍
1.2 FPGA/CPLD设计入门
1.2.1 FPGA/CPLD设计的基本方法
1.2.2 FPGA/CPLD设计的基本流程
1.3 基于可编程技术的计算机系统实验方法
第2章 可编程技术初步与实验环境
2.1 VHDL基础
2.1.1 VHDL简介
2.1.2 VHDL语言基础
2.1.3 VHDL基本结构
2.1.4 VHDL主要功能语句
2.1.5 基本VHDL程序分析
2.2 Quartus lI软件入门
2.2.1 设计流程
2.2.2 Quartus lI设计输入
2.2.3 综合
2.2.4 布局布线
2.2.5 基于模块的设计
2.2.6 仿真
2.2.7 时序分析器
2.2.8 时序逼近
2.2.9 功耗分析
2.2.10 编程和配置
2.2.11 调试
2.2.12 工程改革管理
2.2.13 形式验证
2.2.14 系统级设计
2.3 FPGA实验开发平台简介
2.3.1 康芯GW48一CP十十实验开发系统
2.3.2 实验系统的主板结构和使用方法
2.3.3 实验系统电路结构图
2.3.4 实验系统引脚分配表
2.3.5 实验台电路结构选择与引脚锁定方法
第3章 可编程技术实验设计
3.1 可编程技术基础实验
3.1.1 熟悉FPGA软硬件开发环境
3.1.2 利用VHDL设计十进制加法计数器
3.1.3 利用原理图设计2—4译码器
3.1.4 Altera元器件库宏功能模块
3.1.5 元器件自定义与使用
3.1.6 利用原理图层次化方法设计l位全加器
3.1.7 QuartusⅡ的混合输入及层次化设计
3.2 可编程技术实验常见问题与解决方法
3.2.1 QuartusⅡ软件使用常见问题与解决方法
3.2.2 “编译”过程常见问题与解决方法
3.2.3 “仿真”过程常见问题与解决方法
3.2.4 “编程下载”过程常见问题与解决方法
3.2.5 “实验台操作”过程常见问题与解决方法
第4章 组合逻辑电路实验设计
4.1 组合逻辑电路设计方法
4.1.1 组合逻辑电路的特点
4.1.2 组合逻辑电路的设计方法
4.2 基本门电路实验
4.3 典型组合电路实验
4.3.1 半加器
4.3.2 全加器
4.3.3 全加/全减器
4.3.4 多数表决电路
4.3.5 比较电路
4.4 可靠性编码电路实验
4.4.1 偶校验发生器、检测器电路
4.4.2 步进码发生器电路
4.5 编、译码及代码转换电路实验
4.5.1 3-8线译码器电路