




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
vhdl语言 第一章vhdl初探 1 1vhdl简介 hdl语言是一种支持用形式化方法来描述数字逻辑电路和系统的语言 vhdl语言源于美国国防部发起的vhsic veryhighspeedintegratedcircuits 计划 1987年12月ieee批准vhdl为标准hdl语言 ieee 1076 称为vhdl 87 1993年修订为vhdl 93 2001年修订为vhdl2001 ieee 1076 1vhdl ams ieee 1076 2mathematicalpackages ieee 1076 3synthesispackages ieee 1076 4vital ieeestandard1164multi valuelogicsystem 1 1 1vhdl特点 1 支持 自顶向下 的设计方法 vhdl语言支持自顶向下的系统划分 直至划分后的最底层单元能用图元 primitiveelement 来实现为止 图元就是基本逻辑单元 宏模型或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 1vhdl程序结构1 库存放已经编译的包集合 实体 结构体和配置 像c语言里的库 2 包 声明在实体中用的信号定义 常数定义 数据类型 元件语句 函数定义等3 实体 定义电路的输入和输出接口4 结构体 描述电路的内部结构 2 1 1实体 定义电路的输入和输出接口格式entityis 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 instd 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库和包的调用 libraryieee useieee std logic 1164 all useieee std logic arith all useieee std logic unsigned all 2 2vhdl基本数据类型 强数据类型语言 只有相同数据类型的量才能互相传递 2 2 1vhdl预定义数据类型 1 布尔数据类型值范围true 1 false 0 用于逻辑关系2 位数据类型bit0 13 位矢量数据类型位矢量基于位的数组bit vector 0ton bit vector ndownto0 关键字to表示数组从左到右升序排列关键字downto表示数组从右到左降序排列使用downto 2 2 1预定义数据类型 4 整数数据类型integerrange to range to 必有32位取值范围 231 1 231 1 补码形式 其他数据类型错误等级 实数和时间等不能综合 2 2 2ieee预定义标准逻辑位与矢量 1 标准逻辑位数据类型std logic九值系统四种状态可被综合0 1 z2 标准逻辑位矢量数据类型标准逻辑位矢量数据类型是基于标准逻辑位数据类型的数组std logic vector 0ton std logic vector ndownto0 同bit vector 2 2 3用户自定义数据类型 1 枚举数据类型语法格式type数据类型名is 元素1 元素2 用于状态机例typestate typeis start step1 step2 final signalstate state type 数据类型总结 1 编程中只使用std logic std logic vector integer和枚举数据类型其中枚举数据类型用于状态机integer尽量不用2 数的表示矢量 即大于1位宽 二进制b b可以省略八进制o 可以表示位宽为3的倍数十六进制x 可以表示位宽为4的倍数十进制n标量用单引号 2 3vhdl数据对象 3种 信号 signal 变量 variable 和常量 constant 变量 variable 和常量 constant 于软件高级语言中的相似信号具有硬件特性 特有的数据对象 2 3 1信号 信号是用来描述实体内部节点的数据类型语法格式signal信号名 数据类型 例如 signaltemp sum std logic vector 3downto0 signala 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 4vhdl运算符 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赋值信号名 表达式1when选择值1 表达式2when选择值2 表达式nwhenothers 表达式是指某一值 某一个信号或运算式 同c语言 用 符号表示或 2 选择信号赋值语句 注意 1 选择值必须互斥2 选择值必须覆盖所有可能情况 若不能一一指定 要用others3 由于用std logic 所以必须用others4 无优先级 例 8路4选一复用器 3 条件信号赋值语句 语法格式赋值目标信号 表达式1when赋值条件1else表达式2when赋值条件2else 表达式nwhen赋值条件nelse表达式 有优先级 例 8输入优先编码器 2 5 2进程语句 特点1 本身是并行语句 内部是顺序语句2 进程只有在特定的时刻 敏感信号发生变化时 才会被激活 3 主要用于时序电路注意 1 2主要从语法上说的 1 进程语句的语法格式 进程标号 process 敏感信号表 is 声明区 begin顺序语句 endprocess 进程标号 注 敏感信号表 信号名1 信号名 1 进程标号不是必需的 主要是提高可读性2 敏感信号参数表进程只有在敏感信号发生变化是才被激活注意 一个进程可有多个敏感信号 任一敏感信号变化都能激活进程 3 定义一些局部量 如变量4 顺序语句 2 2进程的工作原理 12 3 进程与时钟 1 进程与时钟的关系时钟上升沿或下降沿是敏感信号每个上升沿或下降沿启动一次进程 执行进程中所有语句 而不是执行一条语句 2 时钟沿的vhdl描述法 上升沿clock eventandclock 1 rising edge clock 下降沿clock eventandclock 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顺序语句 endif 顺序语句是指所有的顺序语句 if语句 1 if语句可以嵌套 但不易太多2 不能有比clk信号 上升沿或下降沿 优先级更低的else或elsif语句 case语句 case表达式iswhen选择值 选择值 顺序语句 when选择值 选择值 顺序语句 whenothers 顺序语句 endcase 1 无优先级2 选择值不可重复3 others必有 3 loop语句 for循环变量in变量范围loop顺序语句 endloop 1 循环变量仅在loop语句中有效 不需事先定义 但不能与process声明中的变量同名2 变量范围 to 或 downto 3 标
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生命科学实验室细胞冻存技术与专用储存盒租赁合同
- 专属私人直升机停机坪年度租赁服务协议
- 抖音平台内容审核标准制定协议
- 仓储配送一体化海运船舶货物委托运输合同
- 博物馆讲解员与科普教育项目合作协议
- 护理节力原则
- 护理科研小组建设与实施路径
- 床边护理查房
- 肾上腺素临床护理应用与安全管理
- XX公司管理体系解析
- 高级审计师考试关注热点试题及答案
- 2025-2030年中国城市燃气行业发展分析及发展战略研究报告
- 人民医院关于印发对口支援工作管理办法(暂行)
- 2024-2025学年高二下学期《无烟青春健康同行》主题班会课件
- 《糖尿病的护理查房》课件
- 击剑考试题目及答案
- 贵州贵州铁路投资集团有限责任公司招聘笔试真题2024
- SL631水利水电工程单元工程施工质量验收标准第4部分:堤防与河道整治工程
- 2025春季学期国开电大专科《管理学基础》一平台在线形考(形考任务一至四)试题及答案
- 品管圈PDCA改善案例-降低住院患者跌倒发生率
- 人工智能引论知到智慧树章节测试课后答案2024年秋浙江大学
评论
0/150
提交评论