描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787030387820丛书名: 十二五普通高等教育本科国家级规划教材
本书根据课堂教学和实验操作的要求,以提高实际工程设计能力为目的,深入浅出地对EDA技术、Verilog HDL硬件描述语言、FPGA开发应用及相关知识做了系统和完整的介绍,使读者通过本书的学习并完成推荐的实验,能初步了解和掌握EDA的基本内容及实用技术。
本书包括EDA的基本知识、常用EDA工具的使用方法和目标器件的结构原理、以向导形式和实例为主的方法介绍的多种不同的设计输入方法、对Verilog的设计优化以及基于EDA技术的典型设计项目。各章都安排了习题或针对性较强的实验与设计。书中列举的大部分Verilog设计实例和实验示例实现的EDA工具平台是Quartus II,硬件平台是Cyclone III系列FPGA,并在EDA实验系统上通过了硬件测试。
本书可作为高等院校电子工程、通信、工业自动化、计算机应用技术、电子对抗、仪器仪表、数字信号或图像处理等学科的本科生或研究生的电子设计、EDA技术课程和Verilog HDL硬件描述语言的教材及实验指导书,同时也可作为相关专业技术人员的自学参考书。
第1章 EDA技术概述
1.1 EDA技术及其发展
1.2 EDA技术实现目标
1.3 硬件描述语言Verilog HDL
1.4 其他常用HDL
1.5 HDL综合
1.6 自顶向下的设计技术
1.7 EDA技术的优势
1.8 EDA设计流程
1.8.1 设计输入(原理图/HDL文本编辑)
1.8.2 综合
1.8.3 适配
1.8.4 时序仿真与功能仿真
1.8.5 编程下载
1.8.6 硬件测试
1.9 ASIC及其设计流程
1.9.1 ASIC设计简介
1.9.2 ASIC设计一般流程简述
1.10 常用EDA工具
1.10.1 设计输入编辑器
1.10.2 HDL综合器
1.10.3 仿真器
1.10.4 适配器
1.10.5 下载器
1.11 Quartus II概述
1.12 IP核
1.13 EDA技术发展趋势管窥
习题
第2章 FPGA与CPLD的结构原理
2.1 PLD概述
2.1.1 PLD的发展历程
2.1.2 PLD分类
2.2 简单PLD结构原理
2.2.1 逻辑元件符号表示
2.2.2 PROM结构原理
2.2.3 PLA结构原理
2.2.4 PAL结构原理
2.2.5 GAL结构原理
2.3 CPLD的结构原理
2.4 FPGA的结构原理
2.4.1 查找表逻辑结构
2.4.2 Cyclone III系列器件的结构原理
2.5 硬件测试
2.5.1 内部逻辑测试
2.5.2 JTAG边界扫描
2.6 PLD产品概述
2.6.1 Altera公司的PLD器件
2.6.2 Lattice公司的PLD器件
2.6.3 Xilinx公司的PLD器件
2.6.4 Actel公司的PLD器件
2.6.5 Altera的FPGA配置方式
2.7 CPLD/FPGA的编程与配置
2.7.1 CPLD在系统编程
2.7.2 FPGA配置方式
2.7.3 FPGA专用配置器件
2.7.4 使用单片机配置FPGA
2.7.5 使用CPLD配置FPGA
习题
第3章 组合电路的Verilog设计
3.1 半加器电路的Verilog描述
3.2 多路选择器的Verilog描述
3.2.1 4选1多路选择器及case语句表述方式
3.2.2 4选1多路选择器及assign语句表述方式
3.2.3 4选1多路选择器及条件赋值语句表述方式
3.2.4 4选1多路选择器及条件语句表述方式
3.3 Verilog加法器设计
3.3.1 全加器设计及例化语句应用
3.3.2 半加器的UDP结构建模描述方式
3.3.3 利用UDP元件设计多路选择器
3.3.4 8位加法器设计及算术操作符应用
3.3.5 算术运算操作符
3.3.6 BCD码加法器设计
3.4 组合逻辑乘法器设计
3.4.1 参数定义关键词parameter和localparam
3.4.2 整数型寄存器类型定义
3.4.3 for语句用法
3.4.4 移位操作符及其用法
3.4.5 两则乘法器设计示例
3.4.6 repeat语句用法
3.4.7 while语句用法
3.4.8 parameter的参数传递功能
3.5 RTL概念
习题
第4章 时序仿真与硬件实现
4.1 Verilog程序输入与仿真测试
4.1.1 编辑和输入设计文件
4.1.2 创建工程
4.1.3 全程编译前约束项目设置
4.1.4 全程综合与编译
4.1.5 时序仿真
4.1.6 RTL图观察器应用
4.2 引脚锁定与硬件测试
4.2.1 引脚锁定
4.2.2 编译文件下载
4.2.3 AS直接编程模式
4.2.4 JTAG间接编程模式
4.2.5 USB-Blaster驱动程序安装方法
4.3 电路原理图设计流程
4.4 利用属性表述实现引脚锁定
4.5 keep属性应用
4.6 SignalProbe使用方法
4.7 宏模块逻辑功能查询
习题
实验与设计
4-1 多路选择器设计实验
4-2 8位加法器设计实验
4-3 8位硬件乘法器设计实验
4-4 十六进制7段数码显示译码器设计
第5章 时序电路的Verilog设计
5.1 基本时序元件的Verilog表述
5.1.1 基本D触发器及其Verilog表述
5.1.2 用UDP表述D触发器
5.1.3 含异步复位和时钟使能的D触发器及其Verilog表述
5.1.4 含同步复位控制的D触发器及其Verilog表述
5.1.5 基本锁存器及其Verilog表述
5.1.6 含清0控制的锁存器及其Verilog表述
5.1.7 异步时序电路的Verilog表述特点
5.1.8 时钟过程表述的特点和规律
5.2 二进制计数器及其Verilog表述
5.2.1 简单加法计数器及其Verilog表述
5.2.2 实用加法计数器设计
5.3 移位寄存器的Verilog表述与设计
5.3.1 含同步预置功能的移位寄存器设计
5.3.2 使用移位操作符设计移位寄存器
5.4 可预置型计数器设计
5.4.1 同步加载计数器
5.4.2 异步加载计数器
5.4.3 异步清0加载计数器
5.4.4 同步清0加载计数器
5.5 时序电路硬件设计与仿真示例
5.5.1 编辑电路、创建工程和仿真测试
5.5.2 FPGA硬件测试
习题
实验与设计
5-1 应用宏模块设计数字频率计
5-2 计数器设计实验
5-3 数码扫描显示电路设计
5-4 模可控计数器设计
5-5 串行静态显示控制电路设计
5-6 高速硬件除法器设计
5-7 不同类型的移位寄存器设计
第6章 Quartus II应用深入
6.1 SignalTap II的使用方法
6.2 编辑SignalTap II的触发信号
6.3 Fitter Settings项设置
6.4 功能块Chip Planner应用
6.4.1 Chip Planner应用流程说明
6.4.2 Chip Planner说明
6.5 Synplify的应用及接口方法
6.5.1 Synplify使用流程
6.5.2 Synplify Pro与Quartus II接口
习题
实验与设计
6-1 VGA彩条信号显示控制电路设计
6-2 移位相加型8位硬件乘法器设计
6-3 半整数与奇数分频器设计
6-4 基于Verilog代码的频率计设计
第7章 LPM宏模块的应用
7.1 计数器LPM宏模块调用
7.1.1 计数器LPM模块文本代码的调用
7.1.2 LPM计数器代码与参数传递语句
7.1.3 创建工程与仿真测试
7.2 利用属性控制乘法器的构建
7.3 LPM_RAM宏模块的设置与使用
7.3.1 初始化文件及其生成
7.3.2 以原理图方式对LPM_RAM进行设置和调用
7.3.3 测试LPM_RAM
7.3.4 存储器的Verilog代码描述
7.3.5 存储器设计的结构控制
7.4 LPM_ROM的定制和使用示例
7.4.1 LPM_ROM的调用
7.4.2 简易正弦信号发生器设计
7.4.3 正弦信号发生器硬件实现和测试
7.5 在系统存储器数据读写编辑器应用
7.6 LPM嵌入式锁相环调用
7.7 In-System Sources and Probes Editor使用方法
7.8 数控振荡器核使用方法
7.9 FIR核使用方法
7.10 DDS实现原理与应用
7.10.1 DDS原理
7.10.2 DDS信号发生器设计示例
习题
实验与设计
7-1 查表式硬件运算器设计
7-2 正弦信号发生器设计
7-3 简易逻辑分析仪设计
7-4 DDS正弦信号发生器设计
7-5 移相信号发生器设计
7-6 16位×16位高速硬件乘法器设计
第8章 Verilog设计深入
8.1 过程中的两类赋值语句
8.1.1 未指定延时的阻塞式赋值语句
8.1.2 指定了延时的阻塞式赋值
8.1.3 未指定延时的非阻塞式赋值
8.1.4 指定了延时的非阻塞式赋值
8.1.5 深入认识阻塞与非阻塞式赋值的特点
8.1.6 不同的赋初值方式导致不同综合结果的示例
8.2 过程语句归纳
8.2.1 过程语句应用总结
8.2.2 深入认识不完整条件语句与时序电路的关系
8.3 if语句归纳
8.3.1 if语句的一般表述形式
8.3.2 关注if语句中的条件指示
8.4 三态与双向端口设计
8.4.1 三态控制电路设计
8.4.2 双向端口设计
8.4.3 三态总线控制电路设计
习题
实验与设计
8-1 硬件消抖动电路设计
8-2 4×4阵列键盘键信号检测电路设计
8-3 直流电机综合测控系统设计
8-4 VGA简单图像显示控制模块设计
8-5 乐曲硬件演奏电路设计
第9章 Verilog系统设计优化
9.1 资源优化
9.1.1 资源共享
9.1.2 逻辑优化
9.1.3 串行化
9.2 速度优化
9.2.1 流水线设计
9.2.2 寄存器配平
9.2.3 关键路径法
9.2.4 乒乓操作法
9.2.5 加法树法
习题
实验与设计
9-1 采用流水线技术设计高速数字相关器
9-2 线性反馈移位寄存器设计
9-3 基于UART串口控制的模型电子琴设计
9-4 PS2键盘控制模型电子琴电路设计
9-5 AM幅度调制信号发生器设计
第10章 Verilog状态机设计技术
10.1 Verilog状态机的一般形式
10.1.1 状态机的特点与优势
10.1.2 状态机的一般结构
10.1.3 初始控制与表述
10.2 Moore型状态机及其设计
10.2.1 多过程结构状态机
10.2.2 序列检测器及其状态机设计
10.3 Mealy型状态机设计
10.4 状态机图形编辑设计
10.5 不同编码类型状态机
10.5.1 直接输出型编码
10.5.2 用宏定义语句定义状态编码
10.5.3 宏定义命令语句
10.5.4 顺序编码
10.5.5 一位热码编码
10.5.6 状态编码设置
10.6 异步有限状态机设计
10.7 安全状态机设计
10.7.1 状态导引法
10.7.2 状态编码监测法
10.7.3 借助EDA工具自动生成安全状态机
10.8 硬件数字技术排除毛刺
10.8.1 延时方式去毛刺
10.8.2 逻辑方式去毛刺
习题
实验与设计
10-1 序列检测器设计
10-2 ADC采样控制电路设计
10-3 数据采集模块设计
10-4 五功能智能逻辑笔设计
第11章 16位实用CPU创新设计
11.1 KX9016的结构与特色
11.2 KX9016基本硬件系统设计
11.2.1 单步节拍发生模块
11.2.2 ALU模块
11.2.3 比较器模块
11.2.4 基本寄存器与寄存器阵列组
11.2.5 移位器模块
11.2.6 程序与数据存储器模块
11.3 KX9016v1指令系统设计
11.3.1 指令格式
11.3.2 指令操作码
11.3.3 软件程序设计实例
11.3.4 KX9016v1控制器设计
11.3.5 指令设计实例详解
11.4 KX9016的时序仿真与硬件测试
11.4.1 时序仿真与指令执行波形分析
11.4.2 CPU工作情况的硬件测试
11.5 KX9016应用程序设计实例和系统优化
11.5.1 乘法算法及其硬件实现
11.5.2 KX9016v1的硬件系统优化
习题
实验与设计
11-1 16位CPU验证性设计综合实验
11-2 新指令设计及程序测试实验
11-3 16位CPU的优化设计与创新
11-4 CPU创新设计竞赛
第12章 MCU与FPGA片上系统开发
12.1 FPGA扩展MCU开发技术
12.1.1 FPGA扩展方案及其系统设计技术
12.1.2 基于单片机IP软核的SOC设计方案
12.2 FPGA扩展方案设计实例
12.2.1 串进并出/并进串出双向端口扩展模块设计
12.2.2 8位四通道数据交换扩展模块设计
12.2.3 存储器读写的FPGA扩展模块设计
12.2.4 四通道PWM信号发生器接口模块设计
12.2.5 李萨如图波形发生器扩展模块设计
12.3 基于单片机核的FPGA片上系统设计
12.3.1 单片机扩展串进并出/并进串出模块的SOC设计
12.3.2 扩展SRAM模块的片上系统设计
12.3.3 扩展移相信号发生器模块的片上系统设计
实验与设计
12-1 单片机串口扩展FPGA片上系统设计
12-2 单片机数据交换FPGA扩展电路设计
12-3 扩展外部数据存储器的FPGA单片系统设计
12-4 四通道PWM信号发生器及其MCU控制系统设计
12-5 移相信号发生器和扫频信号发生器的片上系统设计
12-6 李萨如图波形发生器的FPGA片上系统设计
12-7 脉宽/占空比/等精度频率多功能测试仪设计
第13章 Verilog语句语法补充说明
13.1 Verilog文字规则
13.2 数据类型
13.2.1 net网线类型
13.2.2 register寄存器类型
13.2.3 存储器类型
13.3 操作符
13.4 常用语句补充
13.4.1 initial过程语句使用示例
13.4.2 forever循环语句
13.4.3 编译指示语句
13.4.4 任务和函数语句
13.5 用库元件实现结构描述
习题
实验与设计
13-1 SPWM脉宽调制控制系统设计
13-2 点阵型与字符型液晶显示器驱动控制电路设计
13-3 数字彩色液晶显示控制电路设计
13-4 串行ADC/DAC控制电路设计
第14章 Verilog Test Bench仿真
14.1 Verilog行为仿真流程
14.2 Verilog测试基准实例
14.3 Verilog Test Bench测试流程
14.4 Verilog系统任务和系统函数
14.4.1 系统任务和系统函数
14.4.2 预编译语句
14.5 延时模型
14.5.1 #延时和门延时
14.5.2 延时说明块
14.6 其他仿真语句
14.6.1 fork_join块语句
14.6.2 wait语句
14.6.3 force语句和release语句
14.6.4 deassign语句
14.7 仿真激励信号的产生
14.8 Verilog数字系统仿真
习题
实验与设计
14-1 在ModelSim上对计数器的Test Bench进行仿真
14-2 在ModelSim上进行16位累加器设计仿真
附录 EDA开发系统及相关软硬件
参考文献
在现代电子设计领域,Verilog HDL作为IEEE标准的两大主流HDL之一,相比于VHDL,具有易学易用和享有ASIC设计领域的主导地位等诸多优势,在全球范围内其用户覆盖率一直处于上升趋势;统计资料表明Verilog HDL现已超过80%的行业覆盖率,例如美国使用Verilog HDL的工程师占HDL设计行业工程师的90%以上,并仍有上升趋势。由此势必导致我国Verilog HDL工程师和相关就业领域人才需求的不断增加。本书以Verilog HDL作为基本硬件描述语言来介绍EDA技术。作为教科书,与科学出版社出版的《EDA技术实用教程——VHDL版》构成了姐妹篇。
为了适应EDA技术在高新技术行业就业中的需求和高校教学的要求,突出EDA技术的实用性,以及面向工程实际的特点和自主创新能力的培养,作者力图将EDA技术的发展成果、现代电子设计前沿的理论和技术、国际业界普遍接受和认可的EDA软硬件开发平台的实用方法,通过本书合理的综合和萃取,奉献给广大读者。
随着EDA技术的发展和应用领域的扩大,EDA技术在电子信息、通信、自动控制及计算机应用等领域的重要性日益突出。同时随着技术市场与人才市场对EDA技术需求的不断提高,产品的市场效率和技术要求也必然会反映到教学和科研领域中来。以近几届全国大学生电子设计竞赛为例,涉及EDA技术的赛题从未缺席过。对诸如斯坦福大学、麻省理工学院等美国一些著名院校的电子与计算机实验室建设情况的调研也表明,其EDA技术的教学与实践的内容也十分密集,在其本科和研究生教学中有两个明显的特点:其一,各专业中EDA教学实验课程的普及率和渗透率极高;其二,几乎所有实验项目都部分或全部地融入了EDA技术,其中包括数字电路、计算机组成与设计、计算机接口技术、数字通信技术、嵌入式系统、DSP等实验内容,并且更多地注重创新性实验。这显然是科技发展和市场需求双重影响下自然产生的结果。
基于工程领域中的EDA技术应用的巨大实用价值,以及重视EDA教学中实践能力和创新意识培养的重要性,我们对本书各章节做了相应的安排,其特点有以下三个。
1. 注重实践和创新能力的培养
除在各章中安排了许多习题外,绝大部分章节还安排了针对性较强的实验与设计项目,使学生对每一章的课堂教学内容和教学效果能及时通过实验得以消化和强化,并尽可能地从学习一开始就有机会将理论知识与实践、自主设计紧密联系起来。
全书包含数十个实验及其相关的设计项目,这些项目涉及的技术领域宽,知识涉猎密集、针对性强,而且自主创新意识的启示性好。与本书的示例一样,所有的实验项目都通过了EDA工具的仿真测试并通过FPGA平台的硬件验证。每一个实验项目除给出详细的实验目的、实验原理和实验报告要求外,都含2~5个子项目或子任务。它们通常分为:(层次)实验任务是与该章某个阐述内容相关的验证性实验,通常提供详细的并被验证的设计源程序和实验方法,学生只需将提供的设计程序输入计算机,并按要求进行编译仿真,在实验系统上实现即可,使学生有一个初步的感性认识,这也提高了实验的效率;第二(层次)实验任务是要求在上一实验基础上做一些改进和发挥;第三个层次的实验通常是提出自主设计的要求和任务;第四、第五个实验层次则在仅给出一些提示的情况下提出自主创新性设计的要求。因此,教师可以根据学时数、教学实验的要求以及不同的学生对象,布置不同层次、含不同任务的实验项目。
此外,在第五版增加的诸多内容中,第11章的内容进一步强化了本教材注重实践和创新能力培养的特色。目前北美许多著名高校,如斯坦福大学、麻省理工学院、多伦多大学等高校的电子信息与工程专业中,都将CPU的组成及设计作为EDA技术课程、硬件描述语言课程或数字系统设计课程中必不可少的教学内容和自主实践项目。而第11章的内容很好地体现了EDA技术教学的课程要求和发展趋势。
2. 高效的教学模式成就速成
一般认为EDA技术的难点和学习费时的根源在于硬件描述语言。对此,全书做了有针对性的安排:根据专业特点,摒弃传统的计算机语言的教学模式,打破目前HDL教材通行的编排形式,而以电子线路设计为基点,从实例的介绍中引出Verilog语句语法内容。同时为了尽快进入EDA技术的实践阶段,熟悉EDA开发工具及其相关软硬件的使用方法,及时安排了大量有针对性的实验项目,以便读者能尽早进入数字系统工程设计经验的积累和能力提高阶段,并能通过这些面向实际的实践和实验活动,快速深化对硬件描述语言的理解和掌握对应的设计技巧。
本书通过一些简单而典型的Verilog HDL设计示例和电路模型,从具体电路和实用背景下引出相关的Verilog HDL语言现象和语句规则,并加以深入浅出的说明,使得读者仅通过前期一些内容的学习便能迅速了解并掌握Verilog HDL描述与逻辑电路间的基本关系,从而极大地降低了HDL的学习难度,大幅提高了学习效率,快速实现了学以致用的目的。我们过去多年的实践已证明这是一种高效学习硬件描述语言和EDA技术的好方法。这种学习流程也是目前国外流行的基于情景和工作过程的教学和学习模式,是一种自顶向下的新的学习模式。
3. 注重教学选材的灵活性和完整性相结合
本书的结构特点决定了授课课时数可十分灵活,即可长可短,视具体的专业特点、课程定位及学习者的前期教育力度等因素而定,在20~50学时之间选择。由于本书的特色和定位,加之EDA技术课程的特质,具体教学可以是粗放型的,其中多数内容,包括实践项目可直接放手于学生,更多地让他们自己去查阅资料、提出问题、解决问题,乃至创新与创造;而授课教师,甚至实验教师只需做一个启蒙者、引导者、鼓励者和学生成果的检验者和评判者。授课的过程多数只需点到为止,大可不必拘泥细节,面面俱到。但有一个原则,即实验学时数应多多益善。事实上,现在任何一门课程的学时数总是有限的,为了有效倍增学生的实践和自主设计的时间,可以借鉴清华大学的一项教改措施,即其电子系本科生从一入学就人手获得一块FPGA实验开发板,可从本科一年级一直用到研究生毕业。这是因为EDA技术本身就是一个可把全部实验和设计带回家的课程。我校对于这门课也基本采用了这一措施:每个上EDA课的学生都可借出一套EDA实验板,使他们能利用自己的计算机在课余时间完成自主设计项目,强化学习效果。实践表明,这种安排使得实验课时得到有效延长,教学成效非常明显。
本书的定位目标是,基于全书给出的完整的知识结构,注重实践的观念,强化创新意识的培养,通过课堂合理的教学安排,结合学生明晰的求知觉悟和踏实的实践精神,为了即将离开学校面向招聘者、面向研究生导师、面向社会、面向未来的学生能多一份自信、多一点信心和多一线希望。因此我们建议应该积极鼓励学生利用课余时间尽可能学完本书的全部内容,掌握本书介绍的所有EDA工具软件和相关开发手段,并尽可能多地完成本书配置的实验和设计任务。
还有一个问题有必要在此探讨,就是在前面曾提到的,本书的定位之说。事实上,自主创新能力的提高绝非一朝一夕之事。多年的教学实践告诉我们,针对这一命题的教改必须从两方面入手,一是教学内容,二是设课时间;两者互为联系,不可偏废。
前者主要指建立一个内在相关性好、设课时间灵活,且易于将创新能力培养寓于知识传播之中的课程体系。
后者主要指在课程安排的时段上,将这一体系的课程尽可能地提前。这一举措是成功的关键,因为我们不可能想象到了本科三、四年级才去关注能力培养会有奇迹发生,更不可能指望一两门课程就能解决问题。尤其是以卓越工程师为培养目标的工科高等教育,自主创新能力的培养本身就是一项教学双方必须投入密集实践和探索的创新活动。
我校的EDA技术精品课程正是针对这一教改目标建立的课程体系,而“数字电子技术基础”是这一体系的组成部分和先导课程。它的提前设课是整个课程体系提前的必要条件。通过数年的试点性教学实践和经验总结,现已成功在部分本科学生中将此课程的设课时间从原来的第4或第5学期提前到了第1或第2学期。而这一体系的其他相关课程,如EDA技术、单片机、SOC片上系统、计算机接口、嵌入式系统和DSP等也相应提前,从而使学生到二年级时就具备了培养工程实践和自主开发能力的条件。
不可否认,数字电路课程的大幅提前必须要以改革其教学内容为前提,否则将传统的教学内容强行提前必将归于失败。为此,在总结了数字电路多年教改成果的基础上,我们推出了适应新需求的教材,即科学出版社出版的《数字电子技术基础》一书,很好地满足了当前的教改要求。此书创新性地解决了传统教材中的手工数字技术与现代自动化数字技术间的关系,使两者能平稳过渡,且有机融合,在有效促进理论与实践紧密结合的同时,强化实践训练,突显了创新意识启蒙的良好效果,同时实现了与后续课程的良好衔接。尽管这一切尚处于我校的局部教学实践中,但已清晰地展示了诸多颇具说服力的证明。例如相比于其他同类情况(如同年级,同专业,同授业课程等),那些曾经参加这一课程体系的学生在大学生电子设计竞赛、飞思卡尔车模大赛,以及一些国外企业主导的自主设计赛事中,都获得了更多的奖项和更好的成绩。而且这些学生的获奖比例逐年提高,例如我校在2011年全国大学生电子设计竞赛获一、二等奖项(分别是3个和6个)的学生中,本科二年级学生的比例高达80%(这年我校多数三年级学生选择考研复习,未参赛)。若按传统的工科本科教学流程,二年级就有能力获全国一等奖是不可想象的事!
其实,类似的教改活动和教改成绩,我校远非。国内早有不少院校将数字电路放在第1或第2学期,其实践训练的内容包括超过数万至数十万逻辑门规模的数字系统自主设计训练,不少受益的学生在各类电子设计竞赛中也都获得了好成绩。前面提到的清华大学的教改活动也说明,他们至少有部分学生于本科一年级就有数字系统设计方面的训练;后来的调研也证明了这一点,如该校计算机专业本科二年级学生就能自主设计出各种极具创新特色的数字系统,如语音处理及数字立体声播放、硬件超级玛丽游戏显示与控制系统等;又如东南大学在一次省级数字电路课程(尚未学EDA)电子设计竞赛中,有一组同学完成了指纹识别数字锁的设计而获一等奖;再如美国密歇根大学本科一年级学生就能设计数字电子琴这样的复杂系统,其中包括用FPGA控制VGA显示五线谱,PS2键盘作为琴键及数字立体声音乐播放等。
有两个问题必须在此说明,个问题是关于本书对于Quartus II版本选择的问题。尽管目前Altera公司早已颁布了Quartus II 12.0,但本书中的示例说明仍然选择Quartus II 9.x。这是因为Altera公司已将Quartus II 10.0及此后版本的软件中曾经一贯内置的门级波形仿真器移除了,并推荐使用接口于Quartus II的ModelSim-Altera仿真器。然而这一举措对于初学者并不是好消息。因为必须承认,Quartus II 9.x及之前版本软件中一直内置的波形仿真器的易学、高效和便捷的巨大优势,对于EDA教学和初学者的学习是十分重要的。况且Quartus II 9.x与Quartus II 12.0相比,总体上变化不大,而且本书在第14章中针对Test Bench仿真,重点介绍了ModelSim-Altera的使用方法。
第二个问题是针对本书中的实验和实践项目所能提供的演示示例源设计文件的问题。本书中多数实验能够提供经硬件验证调试好的演示示例源设计文件,目的是为读者能顺利完成实验验证和设计;有的示例的目的是希望能启发或引导读者完成更有创意的设计,其中一些示例尽管看上去颇有创意,但都不能说是或终结果,这给读者留有许多改进和发挥的余地。此外还有少数示例无法提供源代码(只能提供演示文件),这是考虑到本书作者以外的设计者的著作权,但这些示例仍能给读者在设计的可行性、创意和创新方面以宝贵的启示。
为了本书的顺利出版,杭州康芯电子有限公司的高级工程师姜兆刚先生在IP核的应用、实验设计项目的验证和各种EDA软件工具的安装调试等方面完成了大量的和无可替代的工作,在此表示诚挚的谢意!
为了尽可能降低成本和售价,本书未配置光盘。与本书相关的资料,包括配套课件、实验示例源程序资料、相关设计项目的参考资料和附录中提到的mif文件编辑生成软件等文件资料都可免费索取,此外,对于一些与本书相关的工具软件,包括Quartus II、Synplify Pro、ModelSim-Altera和DSP-Builder/MATLAB等EDA软件的安装使用问题的咨询都可浏览网址www.kx-soc.com,或与作者探讨([email protected])。所有这些(主要是教学课件)也可直接与科学出版社联系(www.abook.cn)。
本书、二作者是杭州电子科技大学教师,第三作者是桂林电子科技大学教师。
现代电子设计技术是发展的,相应的教学内容和教学方法也应不断地改进,还有许多问题值得深入探讨,我们真诚地欢迎读者对书中的错误与有失偏颇之处给予批评指正。
作 者
2013年5月
于杭州电子科技大学
评论
还没有评论。