资源预览内容
第1页 / 共73页
第2页 / 共73页
第3页 / 共73页
第4页 / 共73页
第5页 / 共73页
第6页 / 共73页
第7页 / 共73页
第8页 / 共73页
第9页 / 共73页
第10页 / 共73页
亲,该文档总共73页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第4章 可编程逻辑器件应用技术,本章要点 可编程逻辑器件的特点与分类 数字电路设计基本组件及其VHDL模型 基于VHDL的设计方法和步骤 Quartus II开发软件的应用,4.1 可编程逻辑器件概述 4.2 VHDL要素,4.2.1 VHDL文字 4.2.2 VHDL中的数据类型 4.2.3 VHDL数据对象 4.2.4 VHDL的运算操作符 4.2.5 VHDL的属性描述,4.2.1 VHDL文字,1数字型文字,(1)整数文字。 (2)实数文字。 (3)以数制的基和指数表示的文字:用这种方法表示的数由5个部分组成。 (4)物理量文字:VHDL综合器不接受此类文字。,(1)文字字符串。 (2)数位字符串。,2字符串文字,注意: (1)标识符以英文字母开头,不连续使用下划线“_”,不能以下画线“_”结尾; (2)识符中的英语字母不区分大小写; (3)VHDL的保留字不能用于作为标识符使用。,3标识符,4段名及下标名,4.2.2 VHDL中的数据类型,1VHDL的预定义数据类型,(1)布尔(boolean)数据类型。 (2)位(bit)数据类型。 (3)位矢量(bit_vector)数据类型。 (4)字符(character)数据类型。 (5)整数(integer)数据类型。 (6)自然数(natural)和正整数(positive)数据类型。 (7)实数(real)数据类型。 (8)字符串(string)数据类型。 (9)时间(time)数据类型。 (10)错误等级(severity_level)。,(1)标准逻辑位std_logic数据类型。 (2)标准逻辑矢量(std_logic_vector)数据类型。,2IEEE预定义标准逻辑位与矢量,(1)type语句用法。 (2)subtype语句用法。,3用户自定义数据类型方式,4.2.3 VHDL数据对象,1常数(CONSTANT) 2变量(VARIABLE) 3信号(SIGNAL),常数、变量、信号3者的使用比较如下。 (1)从硬件电路系统来看,常数相当于电路中的恒定电平,如GND或Vcc接口。 而变量和信号则相当于组合电路系统的门电路与门电路间的连接及其连线上的信号值。,(2)从行为仿真和VHDL语句功能上看,变量和信号的区别主要表现在接受和保持信号的方式、信息保持与传递的区域范围上。 (3)从综合后所对应的硬件电路结构来看,信号一般将对应更多的硬件结构,但在许多情况下,信号和变量没有太大的区别。 (4)虽然VHDL仿真器允许变量和信号设置初始值,但在实际应用中,VHDL综合器并不会把这些信息综合进去。,4.2.4 VHDL的运算操作符,表4-1 VHDL操作符列表,各种操作符的使用说明如下。 (1)严格遵循在基本操作符间的操作数是同数据类型的规则,严格遵循操作数的数据类型必须与操作符所要求的数据类型完全一致的规则。 (2)注意操作符之间的优先级别。 (3)在使用乘法运算符时,应该特别慎重,因为它可以使逻辑门数大大增加。 (4)并置运算符“&”的操作数的数据类型是一维数组,可以利用并置运算符将普通操作数或数组组合起来形成新的数组。,4.2.5 VHDL的属性描述,1函数类属性,(1)数据类型的属性函数。 (2)数组的属性函数。 (3)信号的属性函数。,2信号类属性,4.3 数字电路设计基本组件及其VHDL模型,4.3.1 多路选择器和译码器的VHDL模型及相关语法 4.3.2 锁存器/触发器/寄存器的VHDL模型及相关语法 4.3.3 串并/并串转换电路的VHDL模型及相关语法 4.3.4 计数器的VHDL模型及相关语法 4.3.5 有限状态机的VHDL描述及相关语法,4.3.1 多路选择器和译码器的VHDL模型及相关语法,1多路选择器的VHDL描述,图4-1 二选一复用器实体图,表4-2 二选一数据选择器功能表,VHDL描述由3大部分组成,分别为库声明、实体和结构体。 (1)库声明:库是专门存放预先编译好的程序包(package),这样它们就可以在其他设计中被调用。,表4-3 Std库和ieee库中所包含的程序包说明,(2)实体(entity):实体是设计中最基本的模块。 (3)结构体(architecture):结构体用于描述实体的内部逻辑功能和电路结构。 (4)组合逻辑电路的多种VHDL建模方法。 【例4-1】 2选1多路选择器直接逻辑运算描述。 【例4-2】 2选1多路选择器if-then-else语句描述。 【例4-3】 2选1多路选择器case语句描述。,2译码器,图4-2 2-4译码器实体图,表4-4 2-4译码器功能表,【例4-4】 2-4译码器VHDL程序。,4.3.2 锁存器/触发器/寄存器的VHDL模型及相关语法,1锁存器,图4-3 锁存器实体图,表4-5 锁存器功能表,【例4-5】 锁存器的VHDL描述。,2触发器,图4-4 D触发器实体图,表4-6 D触发器功能表,【例4-6】 D触发器的VHDL描述。,图4-5 D触发器仿真波形图,【例4-7】 带异步置位和异步复位的D触发器的VHDL描述。,表4-7 信号命名常用后缀及其含义,【例4-8】 异步复位、同步送数的8bit寄存器的VHDL描述。,3寄存器,4.3.3 串并/并串转换电路的VHDL模型及相关语法,1串并转换,【例4-9】 串并转换的VHDL描述。,2并串转换,【例4-10】 并串转换的VHDL描述。,4.3.4 计数器的VHDL模型及相关语法,【例4-11】 具有异步清零的模10计数器VHDL描述。 【例4-12】 具有自启动的扭环计数器的VHDL描述。,图4-6 有限状态机的结构,4.3.5 有限状态机的VHDL描述及相关语法,图4-7 状态转移图,【例4-13】 mealy型状态机的状态转移图如图4-7所示,请用VHDL建模设计该状态机。,表4-8 状态转移表,图4-8 状态机综合电路图,图4-9 综合后状态转移图,设计状态机时在结构上通常遵循以下几点: (1)各进程只描述一个状态机; (2)将无关逻辑减至最少; (3)将状态寄存器从其他逻辑中分离出来。一般的模型由两个进程组成,一个进程用来实现时序逻辑电路,另一个进程用来实现组合逻辑电路,如果需要的话,可以使用更多的进程。,4.4 CPLD/FPGA的设计流程,1写出一份设计规范,(1)外部框图。 (2)内部框图及功能模块划分。 (3)确定关键电路时序和模块间接口时序。 (4)定时估计。 (5)设计所需资源的估计和器件封装形式的选择。 (6)功耗目标。 (7)价格目标。 (8)测试程序。,图4-10 基于FPGA/CPLD的数字系统设计流程图,2设计规范的评估 3选择器件和工具 4电路设计与输入 5功能仿真 6设计评估 7综合优化 8综合仿真 9实现与布局布线 10布局布线后仿真与检验,不同阶段的仿真小结: (1)功能仿真主要目的在于验证语言设计的电路结构和功能是否和设计意图相符。 (2)综合后仿真主要目的在于验证综合后电路结构是否和设计意图相符,是否存在歧义综合结果。 (3)布局布线后仿真主要目的是验证是否存在时序违规。,(4)时序仿真既有动态时序分析功能,又有功能验证的功能。 由于时序仿真带有延时信息,因此软件在该仿真时其运算量比功能仿真时要多得多,而且若设计改动较多时,每次功能验证都通过时序仿真来完成的话,极为费时,严重影响设计进度。 因此设计的功能验证应主要由功能仿真来保证,而在同步时序电路设计中,有静态时序分析来分析一个设计是否能满足它的定时要求。,11最终评估 12系统集成与测试,4.5 用Quartus II完成CPLD/FPGA设计的实例,4.5.1 原理图、文本输入设计方法 4.5.2 原理图、文本混合输入方法,图4-11 Quartus II主窗口界面,4.5.1 原理图、文本输入设计方法,1创建工程,(1)建立工程文件。,图4-12 新建工程向导介绍,图4-13 工程设置,(2)加入工程文件。 (3)设定目标器件。 (4)设定EDA工具。 (5)工程报告。,2设计输入,(1)VHDL文本输入。,图4-19 新建文件对话框,【例4-14】编辑输入设计文件(counter12.vhd)。, 选择原理图输入方式。,(2)原理图输入。,图4-20 图形编辑文件窗口,图4-21 元件选择对话框, 放置器件符号。,图4-22 模12计数器电路图, 连线。 命名引脚。 保存文件。单击工具栏上的 保存按钮,弹出保存文件对话框,输入文件名,单击“保存”按钮即可。,3分析综合 4电路仿真,(1)建立矢量波形文件。,图4-23 新建矢量波形文件,图4-24 矢量波形编辑器窗口,图4-25 插入节点/总线对话框,(2)将输入端口节点和需要观察的输出端口节点加入到波形文件中。,图4-26 节点发现者对话框,图4-27 波形编辑窗口,(3)设置仿真时间。 (4)编辑输入信号。,图4-28 Clock信号编辑对话框,(5)存盘波形文件。 (6)运行仿真器。,图4-29 仿真工具对话框,图4-31 信号属性 图4-32 通过节点属性观察信号,图4-30 仿真波形图,图4-33 创建原理图模块,5创建模块,图4-34 引脚规划器窗口,6分配引脚,图4-35 成功编译后的显示,7编译设计文件,8编程下载并硬件测试,(1)连接PC与目标开发板。 (2)配置下载电缆。,图4-36 编程配置窗口,图4-37 硬件设置对话框,用JTAG模式配置FPGA的步骤如下: 将电脑与FPGA实验开发平台连接。 使开发平台硬件连接为JTAG模式配置FPGA。 在Quartus II中执行“Tool /Programmer”菜单命令,打开如图4-38所示的窗口。 如果显示没有硬件,则单击“Hardware Setup”按钮,打开硬件设置窗口。 双击“USB Blaster”按钮,然后单击“Close”按钮,完成硬件设置。,(3)下载模式。, 此时counter12.sof已经在文件列表中了,如果没有则单击“Add File”按钮,添加该文件,这个文件是综合器产生的数据文件,包含了FPGA的配置数据。,图4-38 更新后的编程窗口, 单击下载标符“Start”按钮,即进入对目标器件FPGA 的配置下载操作。 配置完成后,DE2板上的配置完成指示二极管GOOD变亮。,4.5.2 原理图、文本混合输入方法,1使用“New Project Wizard”命令新建一个工程,图4-39 新建工程设置对话框,图4-40 选择描述文件类型,2设计输入、编译、仿真,(1)底层设计2进制计数器:cnt12。,图4-41 项目文件管理菜单,图4-42 工程文件管理对话框,(2)底层设计2-10进制转换:B_BCD.VHD。 (3)底层设计七段译码器模块decoder.vhd。 (4)顶层设计设计计数译码显示。,图4-43 添加器件窗口,图4-44 顶层原理图, 要通过net(网络标号)来连接总线和分立引脚,总线编号规则是din30,他包含3个信号线din3、din2、din1和din 0。,图4-45 总线属性, 网络标号添加:选中连线后,单击鼠标右键,选择属性选项(Properties),弹出“总线属性”对话框,输入网络标号。 详见图4-45和图4-46。,图4-46 更改网络标号对话框,图4-47 加了测试信号端口的顶层文件, 为了便于调试,增加了两个内部信号的测试端口,din_H30和din_L30,如图4-47所示。,图4-48 设计仿真图,3分配引脚、编译并编程下载测试,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号