




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
vhdl语言,第一章 vhdl初探,1.1 vhdl简介 hdl语言是一种支持用形式化方法来描述数字逻辑电路和系统的语言 vhdl语言源于美国国防部发起的vhsic(veryhigh speed integrated circuits)计划 1987年12月ieee批准vhdl为标准hdl语言(ieee-1076), 称为vhdl87 1993年修订为vhdl93 ,2001年修订为vhdl 2001 ieee-1076.1 vhdl-ams, ieee-1076.2 mathematical packages, ieee-1076.3 synthesis packages, ieee-1076.4 vital, ieee standard 1164 multi-value logic system,1.1.1 vhdl特点,1.支持“自顶向下”的设计方法 vhdl语言支持自顶向下的系统划分,直至划分后的最底层单元能用图元(primitive element)来实现为止 图元就是基本逻辑单元、宏模型或ip_core 2.系统硬件描述能力强 3.系统仿真能力强 最初是作为仿真标准推出 4.工艺无关性 与使用的芯片无关 5.其他 并行性,1.1.2 设计流程,1.画出系统框图 2 编码:写程序 3.编译 语法检查 4.功能仿真 验证系统功能是否正确,不涉及硬件 5.综合 1.生成门级描述的网表文件2.转换为硬件的关键步骤3.可以设定一些约束 6.适配 利用网表文件针对某一目标器件进行逻辑操作 如:器件配置、 逻辑分割、逻辑优化、布局布线 7.时序仿真 适配后的仿真 8.下载到器件,1.1.3如何学好,1.掌握时钟的概念 2.注意和软件编程的区别 3.语法贵精,不在多,靠练不靠背 4.注意可综合性,第二章 vhdl入门,2.1 vhdl程序结构 1.库 存放已经编译的包集合、实体、结构体和配置。(像c语言里的库) 2.包:声明在实体中用的信号定义、常数定义、数据类型、元件语句、函数定义等 3.实体 : 定义电路的输入和输出接口 4.结构体:描述电路的内部结构,2.1.1实体,定义电路的输入和输出接口 格式 entity is generic (); port ( 端口名1:端口方向 端口类型; 端口名2:端口方向 端口类型; 端口名n:端口方向 端口类型 ); end ;,2.1.1实体,格式说明 (1)实体名 :名称一般与文件名相同。 (2)类属参数: 提供用于规定端口大小、元件数目、定时的参数 (3)端口名 设计者用于定义端口引脚名,一般名称有实际意义 (4)端口方向,端口方向,1. 输入 in 注意:只能做输入,即所定义的管脚只能放在等式的右边 2.输出 out 注意:只能做输出,即所定义的管脚只能放在等式的左边 3.双向 inout 双向即可做输入也可做输出,注意:管脚做为输出后,必须置为高阻态后,才能做输入 4.输出 buffer 输出,结构体内部可读取,(5) 端口类型 std_logic,std_logic_vector,integer,补充说明,1.可将几个方向、类型相同的信号放在一个语句中 a,b : in std_logic; 2.最后一条端口说明语句后不可加分号。 3.实体名和端口名 (1) 必须是字母和数字以及_ 下划线组成,并且开头必须是字母 (2) 不能是保留字,2.1.2 结构体,一个实体可对应多个结构体,同一时刻只有一个结构体起作用,可以通过配置语句决定哪一个结构体起作用 注意: 我们只用一个结构体,2.1.2 结构体,语法格式: architecture 结构体名 of 实体名 is 声明语句区 begin 语功能描述句 end 结构体名; 实体名必须与实体声明部分所取的名字相同,2.1.2 结构体,注意: 声明语句用于说明和定义内部信号、常量、数据类型、子过程、元件等 内部说明信号不必规定信号方向 功能描述语句允许信号赋值、块、进程、子程序调用、生成、元件例示等语句,功能描述语句主要用到 1.进程语句 2. 信号赋值语句 3.元件例化语句 例,2.1.3 库和包的调用,library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;,2.2 vhdl 基本数据类型,强数据类型语言,只有相同数据类型的量才能互相传递。,2.2.1 vhdl 预定义数据类型,1.布尔数据类型 值范围true(1)、false (0) 用于逻辑关系 2. 位数据类型 bit 0 ,1 3. 位矢量数据类型 位矢量基于位的数组 bit_vector(0 to n); bit_vector(n downto 0); 关键字 to 表示数组从左到右升序排列 关键字 downto 表示数组从右到左降序排列 使用downto,2.2.1 预定义数据类型,4.整数数据类型 integer range to range to 必有 32位 取值范围 -(231-1)( 231-1) 补码形式,其他数据类型 错误等级、实数和时间等 不能综合,2.2.2 ieee 预定义标准逻辑位与矢量,1.标准逻辑位数据类型 std_logic 九值系统 四种状态可被综合 0,1,“-”,z 2.标准逻辑位矢量数据类型 标准逻辑位矢量数据类型是基于标准逻辑位数据类型的数组 std_logic_vector(0 to n) std_logic_vector(n downto 0) 同bit_vector,2.2.3 用户自定义数据类型,1.枚举数据类型 语法格式 type 数据类型名 is(元素1,元素2,); 用于状态机 例 type state_type is(start,step1,step2,final); signal state : state_type;,数据类型总结,1.编程中只使用std_logic, std_logic_vector,integer和枚举数据类型 其中枚举数据类型用于状态机 integer尽量不用 2.数的表示 矢量(即大于1位宽) 二进制 b” “ b可以省略 八进制 o” “ 可以表示位宽为3的倍数 十六进制 x “可以表示位宽为4的倍数 十进制 n 标量 用单引号 ,2.3 vhdl 数据对象,3种 : 信号(signal)、变量(variable)和常量(constant) 变量(variable)和常量(constant)于软件高级语言中的相似 信号具有硬件特性,特有的数据对象。,2.3.1 信号,信号是用来描述实体内部节点的数据类型 语法格式 signal 信号名 ,:数据类型 ; 例如: signal temp_sum:std_logic_vector(3 downto0) ; signal a, b:std_logic;,1.信号和端口都描述电路中的实际存在的节点,只是信号描述的是内部节点,而端口则描述实体与外界的接口 2.实体有方向,其他一样 3.信号赋值语句格式 目标信号名 = 表达式 例:见书34页,4.赋值语句等式两边的位数要相等 例(书35页 5. 信号的赋值具有“非立即性” 会有延时,2.3.2 变量,1.只能在进程和子程序中使用,用于描述算法和方面程序中的数值运算。 2.语法格式 variable 变量名,:数据类型; 3.赋值语句的格式 目标变量名:= 表达式; 4.变量和信号区别 信号对应具体的硬件,变量无硬件对应 信号赋值有延时性,变量赋值无延时性 5.*我们这门课不用,2.3.3 常数,书写格式: constant 常量名 :数据类型 := ; 作用: 1.保证常数描述的数据在程序中不会因误操作被改变 2.对程序中某些关键数据值命名,可以提高程序的可读性 3.将出现次数多的关键数值用数值表示,易于修改 例,2.4 vhdl运算符,2.4.1 算术运算符,+,- *,/ *,mod,rem,abs +,-,* 可以综合,但不推荐用*,如果用乘法,选用库函数 / 只有除数是2的n次幂才能综合,不用 如果用的话,选用库函数 其他不能综合。,2.4.2 并置运算符,& 用于多个元素或矢量连接成新的矢量 例,2.4.3 关系运算符,= 、/=、 、=,2.4.4 逻辑运算符,not 优先级最高 and,or,nor,xor,xnor,nand 优先级无从左到右的结合顺序 用括号 例,2.5 并行语句,1.区别于软件语言。 2.所有语句同时执行,与书写顺序无关。 3.并行语句的内部可以是并行的,也可以是顺序的(进程语句)。 主要有: 进程语句、并行信号赋值语句、元件例化语句、 生成语句。,2.5.1 并行信号赋值语句,1.简单信号赋值语句 目标信号名 = 表达式;,2.选择信号赋值语句,语法格式: with 选择表达式 select 赋值信号名 = 表达式 1 when 选择值1, 表达式 2 when 选择值2, 表达式 n when others; 表达式是指某一值、某一个信号或运算式(同c语言) 用| 符号表示或,2.选择信号赋值语句,注意: 1.选择值必须互斥 2.选择值必须覆盖所有可能情况,若不能一一指定,要用others 3.由于用std_logic,所以必须用others 4.无优先级,例,8路4选一复用器,3.条件信号赋值语句,语法格式 赋值目标信号 = 表达式1 when 赋值条件1 else 表达式2 when 赋值条件2 else 。 表达式n when 赋值条件n else 表达式; 有优先级,例,8输入优先编码器,2.5.2 进程语句,特点 1.本身是并行语句,内部是顺序语句 2.进程只有在特定的时刻(敏感信号发生变化时)才会被激活。 3.主要用于时序电路 注意 : 1、2主要从语法上说的,1.进程语句的语法格式,进程标号: process (敏感信号表) is 声明区 begin 顺序语句; end process 进程标号 ; 注:(敏感信号表) 信号名1,信号名,1.进程标号 不是必需的,主要是提高可读性 2.敏感信号参数表 进程只有在敏感信号发生变化是才被激活 注意:一个进程可有多个敏感信号,任一敏感信号变化都能激活进程。,3.定义一些局部量,如变量 4.顺序语句,2.2进程的工作原理,1 2,3.进程与时钟,(1)进程与时钟的关系 时钟上升沿或下降沿是敏感信号 每个上升沿或下降沿启动一次进程,执行进程中所有语句,而不是执行一条语句。,(2)时钟沿的vhdl描述法,上升沿 clockevent and clock=1 rising_edge(clock) 下降沿 clockevent and clock=0 falling_edge(clock) 其中clock是定义的时钟信号,也可以用其他符号定义 如: clk,实例,2分频,5.进程要点,1)进程语句本身是并行语句,内部是顺序语句(从语法上) 2)进程在敏感信号发生变化时被激活(从语法上) 3)在同一进程中对同一信号多次赋值,只有最后一次有效(重要) 例 4)在不同进程中,不可对同一信号进行赋值 5)一个进程不可对时钟上升沿和下降沿同时敏感,没有这种器件。? 例 6)进程中信号赋值是在进程挂起是生效的,变量赋值是即时生效的。,2.6 顺序语句,特点: 每一条顺序语句的执行顺序与其书写顺序对应,改变顺畅语句的书写顺序有可能改变(不是必然)综合结果。 顺序语句只能出现在进程和子程序中。,注意: 顺序执行是指仿真意义上的顺序性,并不指对应的硬件结构有顺序性。 硬件是并行执行的。,2.6.1 赋值语句,信号赋值和变量赋值 注意:信号赋值的延时性和变量赋值立即性 例,2.6.2 流程控制语句,1. if语句 if 条件式 then 顺序语句; elsif 条件 式 then 顺序语句; else 顺序语句; end if; 顺序语句是指所有的顺序语句,if语句,1)if语句可以嵌套,但不易太多 2)不能有比clk信号(上升沿或下降沿)优先级更低的else或elsif语句,case 语句,case 表达式 is when 选择值|选择值 = 顺序语句; when 选择值|选择值 = 顺序语句; . when others = 顺序语句; end case ;,1.无优先级 2.选择值不可重复 3. others必有,3.loop语句,:for 循环变量 in 变量范围 loop 顺序语句; end loop ; 1)循环变量 仅在loop语句中有效,不需事先定义,但不能与process声明中的变量同名 2)变量范围 “ to ” 或 “ do
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区营养知识分享创新创业项目商业计划书
- 虚拟现实烹饪课程与教学创新创业项目商业计划书
- 移动安全解决方案创新创业项目商业计划书
- 2025年福建国企招聘考试笔试试题(含答案)
- 自动化测试与验证平台创新创业项目商业计划书
- 2025年矿山无人作业技术智能矿山产业发展动态综述报告
- 2026届河北省迁西县一中化学高一第一学期期末复习检测模拟试题含解析
- 上海市徐汇中学2026届化学高三上期中学业水平测试模拟试题含解析
- 2025年Python二级考试专项训练试卷 知识点实战版
- 2025年注册电气工程师考试试卷 电气设计基础专项训练
- 1.1认识社会生活(课件)- 2025-2026学年统编版道德与法治八年级上册
- 仓库盘盈盘亏处理方案(3篇)
- 胎盘早剥病例汇报
- 2025年四川省高考化学试卷真题
- 2025年书法级考试题及答案
- 2026版创新设计高考总复习物理(人教基础版)学生用-学生内文答案
- 硅橡胶取模护理操作流程
- 2025年内蒙古中考道德与法治真题解读及答案讲评(课件)
- 供水公司笔试试题及答案
- 2025年吉林省中考招生考试数学真题试卷(真题+答案)
- 港口码头自然灾害应急措施
评论
0/150
提交评论