VHDL基础及经典实例开发
2008-4
西安交通大学出版社
孟庆海,张洲 编著
419
人类社会已进入到高度发达的信息社会,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管;后者的核心就是。EDA技术。EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包。没有EDA技术的支持,想要完成上述超大规模集成电路的设计是不可想象的。反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。 因此,EDA技术既是电路设计领域的发展潮流,又是超大规模集成电路设计的攻关方向。与其他核心技术类似,EDA技术不能没有灵魂,于是,硬件描述语言应运而生,它的出现标志电路设计领域的一次重大的变革。 在上百种硬件描述语言中,VHDL最早成为国际标准硬件描述语言。VHDL语法规范,可读性强,易于修改和发现错误。VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为三种描述形式及其混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。另外,VHDL还具有以下优点:VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,只需花较少的精力用于物理实现。VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用。VHDL的设计不依赖于特定的器件,方便了工艺的转换。VHDL是一个国际标准硬件描述语言,为众多的EDA厂商所支持,因此移植性好。 随着VHDL在我国的广泛应用,无论是ASIC设计人员、电子电路设计人员还是高等院校的学生都迫切需要一本除了介绍基本概念和基本语法知识外,更注重实际,实例丰富新颖的参考书。作者编写此书的目的就是让读者了解如何应用VHDL完成实际设计工作,进而全面有效地掌握它。 本书分为14章。第1~2章主要介绍VHDL的基础知识,目的是使初学者对VHDL形成系统的认识,有一定开发经验的读者可以跳过这部分;第3~14章主要介绍12个大型复杂数字系统的VHDL设计实例,书中列举的大量实例都经过精心设计,包含了自顶向下的设计思想,模块化和层次化的设计方式,全部实例都经过软件仿真验证或硬件实际测试。
随着半导体技术和计算机技术的飞速发展,集成电路的设计方法发生了深刻的变化。硬件描述语言应运而生,它的出现标志电路设计领域的一次重大的变革。目前,硬件描述语言种类繁多,百花齐放。作为国际标准的经典硬件描述语言,VHDL无疑是其中的佼佼者。 本书内容丰富,侧重实战,经典新颖实例兼而有之。全书共14章。第1-2章主要介绍VHDL的基础知识,目的是使初学者对VHDL产生系统的认识,有一定开发经验的读者可以跳过这部分;第3-14章主要介绍12个大型复杂数字系统的VHDL设计实例,书中列举的大量实例都经过精心设计,包含了自顶向下的设计思想,模块化和层次化的设计方式,全部实例都经过软件仿真验证或硬件实际测试。 本书的特点是讲述清楚、注重实用、由浅入深,书中的实例具有很高的参考价值和实用价值,能够使读者掌握较多的实战技能和经验。它既可作为高等院校计算机、通信、电子类专业的研究生、本科生的教材和参考书,也可以作为广大ASIC设计人员和电子电路设计人员的工具书。
第1章 VHDL概述 1.1 硬件描述语言 1.1.1 硬件描述语言的产生 1.1.2 硬件描述语言的种类 1.2 VHDL硬件描述语言 1.2.1 VHDL的特点 1.2.2 VHDL设计流程第2章 VHDL硬件描述语言 2.1 VHDL的基本元素 2.1.1 标识符 2.1.2 数据对象 2.1.3 数据类型 2.1.4 运算符和操作符 2.2 VHDL程序的基本结构 2.2.1 实体说明 2.2.2 结构体 2.2.3 程序包 2.2.4 库 2.3 VHDL的主要语句 2.3.1 进程语句 2.3.2 信号赋值语句 2.3.3 顺序描述语句 2.3.4 并行描述语句 2.3.5 GENERIC语句 2.3.6 GENERATE语句 2.3.7 BLOCK语句 2.3.8 过程及函数 2.4 VHDL的属性描述 2.4.1 值类属性 2.4.2 函数类属性 2.4.3 信号类属性 2.4.4 数据类型类属性 2.4.5 数据范围类属性第3章 数字钟设计 3.1 设计任务 3.2 系统设计 3.3 模块实现 3.3.1 计时模块 3.3.2 校时模块 3.3.3 显示模块第4章 通用串并乘法器设计 4.1 串并乘法器原理 4.2 系统设计 4.3 模块设计与实现 4.3.1 全加器模块 4.3.2 流水线单元模块 4.3.3 其他简单模块第5章 串行通信接口SCI设计 5.1 RS-232串行通信简介 5.1.1 标准概述 5.1.2 协议规范 5.1.3 通信时序 5.2 系统设计 5.2.1 SCI内部寄存器 5.2.2 SCI顶层设计与实现 5.3 模块设计与实现 5.3.1 微处理器接口模块 5.3.2 发送模块 5.3.3 接收模块 5.3.4 波特率发生模块 5.3.5 LOOPBACK模块 5.3.6 Modem模块第6章 看门狗设计 6.1 设计任务 6.2 系统设计 6.3 模块设计与实现 6.3.1 计数比较模块 6.3.2 分频模块 6.3.3 复位计时模块第7章 出租车计价器设计 7.1 设计任务 7.2 系统设计 7.3 模块设计与实现 7.3.1 计费模块 7.3.2 显示模块第8章 高层电梯控制器设计 8.1 设计任务 8.2 系统设计 8.3 模块设计与实现 8.3.1 主控制器模块 8.3.2 分控制器模块第9章 数字频率计设计 9.1 计数测频 9.1.1 设计任务 9.1.2 系统设计 9.1.3 模块设计与实现 9.2 等精度测频第10章 数字密码锁设计 10.1 设计任务 10.2 系统设计 10.3 模块设计与实现 10.3.1 控制模块 10.3.2 计数器模块 10.3.3 寄存器模块 10.3.4 比较器模块 10.3.5 编码器模块第11章 I2C总线控制器设计 11.1 I2C总线概述 11.1.1 I2C总线基本概念 11.1.2 I2C数据传输时序 11.2 系统设计 11.2.1 微控制器接口 11.2.2 I2C控制器的内部寄存器 11.2.3 顶层实体设计及实现 11.3 模块设计与实现 11.3.1 微控制器接口模块 11.3.2 I2C协议控制器模块 11.3.3 其他简单模块第12章 异步FIFO设计 12.1 异步FIFO原理 12.2 系统设计 12.3 模块设计与实现 12.3.1 空/满标志产生逻辑 12.3.2 格雷码计数器 12.3.3 格雷码-二进制码转换模块 12.3.4 存储器设计第13章 数字直接频率合成设计 13.1 DDS原理 13.2 系统设计 13.3 模块设计与实现 13.3.1 微控制器接口模块 13.3.2 比例乘法器模块 13.3.3 相位累加器模块 13.3.4 双端口RAM模块第14章 基于FPGA的虚拟逻辑分析仪设计 14.1 虚拟仪器概述 14.1.1 虚拟仪器的发展 14.1.2 虚拟仪器的特点 14.1.3 虚拟逻辑分析仪 14.2 系统设计 14.2.1 人机界面设计 14.2.2 顶层设计及实现 14.3 模块设计及实现 14.3.1 触发模块 14.3.2 采样存储模块 14.3.3 其他简单模块附录1 保留字附录2 一些有用的网址参考文献
(3)不具备描述模拟电路能力。对于模拟电路而言,VHDL并不是一种理想的硬件描述 语言。现在,IEEE正致力于设计VHDL的超级VHDLA.MS,这种语言将能够对模拟电路和 数模混合电路进行描述,可以预见,支持模拟电路和数模混合电路描述将是硬件描述语言的发 展方向。 1.2.2 VHDL设计流程 采用VHDL设计硬件电路系统的设计流程一般可以分为以下几个步骤。 (1)确定电路具体功能。通常情况下,开发前期先设计总体方案,但总体方案相对比较抽 象,使用VHDL的设计人员必须分析电路所要实现的具体功能。 (2)设计输入。利用自顶向下的方法,将设计划分为不同的功能模块。每个模块完成一 定的逻辑功能。模块划分是设计过程中的一个重要环节,这一步要花费较多的时间和精力完 成,从而保证整体最优。 编写每个模块的程序,然后将各个模块的程序组合在一起,完成整个系统的VHDL描述。 (3)功能仿真。在功能仿真阶段主要对所设计的电路进行功能验证,通过功能仿真,发现 设计存在的缺陷。例如,输入输出是否有矛盾,有无未加处理的输入信号,是否允许使能等。 通过功能仿真,在设计前期纠正缺陷和错误,可以节省后期的时间,缩短整体开发周期。 (4)综合、优化和布局布线。综合的作用是将较高层次的VHDL抽象描述转化为较低级 别抽象,或者说实际的硬件电路。 优化的作用是将电路设计的时延缩到最小和有效利用资源。几乎所有的高级VHDL综 合工具都可以利用约束条件对电路设计进行优化。一般情况下,常用的约束条件主要包括时 间约束和面积约束。 所得到的逻辑,安放到一个逻辑器件之中的过程。 一个较好的布局布线过程就是将电路的相关部分放置在一起,以消除布线延迟。 (5)时序仿真。时序仿真是接近于真实器件运行特性的仿真,仿真文件中包含了器件硬 件特性参数,因而仿真精度高。时序仿真的文件必须来自针对具体器件的综合器与适配器。 (6)编程下载。编程下载指将VHDL程序经过综合、优化和布局布线后生成的编程数据 写入具体的可编程器件中。 (7)硬件测试。最后,将写入编程数据的硬件系统进行实际测试,以便检验设计的运行情况。
本书是为了让读者了解如何应用VHDL完成实际设计工作,进而全面有效地掌握它所编写的。该书侧重实战,经典新颖实例兼而有之。全书共分14个章节,具体内容包括VHDL概述、VHDL硬件描述语言、数字钟设计、串行通信接口SCI设计、出租车计价器设计、I2C总线控制器设计等。该书可供各大专院校作为教材使用,也可供从事相关工作的人员作为参考用书使用。