




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA技术实用教程 第5章 VHDL设计进阶 图3 2VHDL程序设计基本结构 复习 5 1数据对象 5 1 1常数 CONSTANT 常数 变量 信号 常量代表数字电路中的电源 地 恒定逻辑值等常数 常量数据类型必须与表达式的数据类型一致 常量的可视性 作用范围 常量是全局量 其作用范围取决于常量被定义的位置 库 程序包 实体 Entity 结构体 1 进程 1 结构体 2 进程 2 5 1数据对象 5 1 2变量 VARIABLE 变量代表暂存某些值的载体 常用于描述算法 变量是一个局部量 只能在进程和子程序中定义 使用 其作用范围仅限于定义了变量的进程和子程序中 变量的初值可用于仿真 但综合时被忽略 变量的赋值是一种理想化的数据传输 是立即发生 不存在任何延时的行为 VHDL语言规则不支持变量附加延时语句 变量常用在实现某种算法的赋值语句中 5 1数据对象 5 1 2变量 VARIABLE 5 1数据对象 5 1 3信号 SIGNAL 信号代表物理设计中的某一硬件连接线 包括输入 输出端口 信号初始值的设置不是必需的 而且初始值仅在VHDL的行为仿真中有效 例 signala b bit signalinit integer 1 signals1 std logic 0 signals2 std logic vector 15downto0 注 1 综合时初值被忽略 2 信号是全局量 可在结构体 实体 块中说明和使用信号 3 在进程和子程序中只能使用信号 不能说明信号 5 1数据对象 5 1 3信号 SIGNAL 例 进程中信号与变量的使用entityexisport endex architecturearch exofexissignala b std logic beginprocess a b variablec d std logic beginc a b d a b endprocess endarch ex 信号与端口的区别 除没有方向说明外 信号与实体的 端口 PORT 概念相似 端口是一种隐形的信号 entityexamisport signal a b instd logic signal c outstd logic endexam 端口是一种有方向的信号 即输出端口不能读出数据 只能写入数据 输入端口不能写入数据 只能读出数据 信号本身无方向 可读可写 赋值语句有两种 即信号赋值语句和变量赋值语句 变量赋值与信号赋值的区别 1 赋值方式的不同 变量 表达式 信号 表达式 2 硬件实现的功能不同信号代表电路单元 功能模块间的互联 代表实际的硬件连线 变量代表电路单元内部的操作 代表暂存的临时数据 5 1数据对象 5 1 4进程中的信号赋值与变量赋值 例 3 有效范围不同信号 程序包 实体 结构体 全局量 变量 进程 子程序 函数 过程 局部量 4 赋值行为的不同 信号赋值延迟更新数值 时序电路 变量赋值立即更新数值 组合电路 5 信号的多次赋值a 一个进程 最后一次赋值有效b 多个进程 多源驱动多源驱动只有线与 线或 三态三种情况可以综合成硬件电路 三态用的最多 例 信号的多次赋值 architecturert1ofexissignala std logic beginprocess begina b a c endprocess endrt1 architecturert1ofexissignala std logic beginprocess begina b endprocess process begina c endprocess endrt1 例 信号赋值与变量赋值的比较 信号赋值 architecturert1ofsigissignala b std logic 定义信号beginprocess a b begina b b a endprocess endrt1 结果是a和b的值互换 变量赋值 architecturert1ofvarisbeginprocessvariablea b std logic 定义变量begina b b a endprocess endrt1 结果是a和b的值都等于b的初值 process indicator sig variabletemp std logic begintemp 0 temp tempxor sig 0 andindicator 0 temp tempxor sig 1 andindicator 1 temp tempxor sig 2 andindicator 2 temp tempxor sig 3 andindicator 3 output temp endprocess 例 变量赋值实现循环语句功能process indicator sig variabletemp std logic begintemp 0 foriin0to3looptemp tempxor sig i andindicator i endloop output temp endprocess 以上语句等效为 若改为信号 则无法实现原功能 signaltemp std logic process indicator sig temp begintemp 0 temp tempxor sig 0 andindicator 0 temp tempxor sig 1 andindicator 1 temp tempxor sig 2 andindicator 2 temp tempxor sig 3 andindicator 3 output temp endprocess 5 1数据对象 5 1 4进程中的信号赋值与变量赋值 只能放在进程内 放在进程内外均可 5 1数据对象 5 1 4进程中的信号赋值与变量赋值 例5 4 5 1数据对象 5 1 4进程中的信号赋值与变量赋值 在同一进程中对一个信号进行赋值 只有最后一个执行 并且是在endprocess结束时才执行 所以case语句不能通过判断muxval的值来选通输入 5 2VHDL设计实例及其语法内涵 5 2 1含同步并行预置功能的8位移位寄存器设计 5 2VHDL设计实例及其语法内涵 5 2 1含同步并行预置功能的8位移位寄存器设计 5 2VHDL设计实例及其语法内涵 5 2 2移位模式可控的8位移位寄存器设计 接下页 5 2VHDL设计实例及其语法内涵 接上页 5 2VHDL设计实例及其语法内涵 5 2 2移位模式可控的8位移位寄存器设计 5 2 3位矢中 1 码个数统计电路设计 为什么不能定义为信号 5 2VHDL设计实例及其语法内涵 5 2 3位矢中 1 码个数统计电路设计 5 2VHDL设计实例及其语法内涵 5 2 3位矢中 1 码个数统计电路设计 LOOP语句的常用表达方式有两种 1 单个LOOP语句 VHDL重复执行loop循环内的语句 直至遇到exit语句结束循环 特点 循环变量是loop内部自动声明的局部量 仅在loop内可见 不需要指定其变化方式 循环次数范围 离散范围 必须是可计算的整数范围 整数表达式to整数表达式整数表达式downto整数表达式 2 FOR LOOP语句 5 2VHDL设计实例及其语法内涵 5 2 3位矢中 1 码个数统计电路设计 补充 3 while loop语句例 sum 0 i 0 abcd while i 10 loopsum sum i i i 1 endloopabcd 注 循环变量i需事先定义 赋初值 并指定其变化方式 一般综合工具不支持while loop语句 标号 while循环条件loop顺序处理语句 endloop 标号 5 2VHDL设计实例及其语法内涵 5 2 4三态门设计 5 2VHDL设计实例及其语法内涵 5 2 5双向端口的设计方法 5 2VHDL设计实例及其语法内涵 5 2 5双向端口的设计方法 波形错误 5 2VHDL设计实例及其语法内涵 5 2 5双向端口的设计方法 5 2VHDL设计实例及其语法内涵 5 2 5双向端口的设计方法 5 2 6三态总线电路设计 8位4通道的三态总线驱动器 5 2VHDL设计实例及其语法内涵 5 2 6三态总线电路设计 5 2VHDL设计实例及其语法内涵 5 2 6三态总线电路设计 5 2VHDL设计实例及其语法内涵 5 2 7双边沿触发时序电路设计讨论 错误 5 3顺序语句归纳 5 3 1进程语句格式 进程说明部分 定义一些局部量 可包括数据类型 常数 变量 属性 子程序等 敏感信号参数表 多数VHDL综合器要求敏感信号表必须列出本进程中所有输入信号名 5 3顺序语句归纳 5 3 3进程要点 1 PROCESS为一无限循环语句 2 进程中的顺序语句具有明显的顺序和并行双重性 5 3顺序语句归纳 5 3 3进程要点 3 进程语句本身是并行语句 5 3顺序语句归纳 5 3 3进程要点 4 信号可以是多个进程间的通信线 5 一个进程中只允许描述对应于一个时钟信号的同步时序逻辑 即信号可以把信息带出进程 而变量不可以 5 4并行赋值语句讨论 5 5IF语句概述 5 5IF语句概述 5 5IF语句概述 5 6半整数与奇数分频电路设计 5 6半整数与奇数分频电路设计 接下页 5 6半整数与奇数分频电路设计 接上页 5 6半整数与奇数分频电路设计 5 7仿真延时 5 7 1固有延时 5 7仿真延时 5 7 2传输延时 5 7 3仿真 5 8VHDL的RTL表述 5 8 1行为描述 如果VHDL的结构体只描述了所希望电路的功能或者说电路行为 而没有直接指明或涉及实现这些行为的硬件结构 则称为行为描述 行为描述是以算法形式对系统模型 功能的描述 与硬件结构无关 抽象程度最高 5 8VHDL的RTL表述 5 8 1行为描述 5 8VHDL的RTL表述 5 8 1行为描述 以描述数据流的流向为特征 数据流描述主要使用并行的信号赋值语句 既显式表示了该设计单元的行为 又隐含了该设计单元的结构 当语句中任一输入信号的值发生改变时 赋值语句就被激活 随着这种语句对电路行为的描述 大量的有关这种结构的信息也从这种逻辑描述中 流出 认为数据是从一个设计中流出 从输入到输出的观点称为数据流风格 数据流描述方式能比较直观地表述底层逻辑行为 5 8VHDL的RTL表述 5 8 2数据流描述 一位全加器的数据流描述 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYADDER1BISPORT AIN BIN CIN INBIT SUM COUT OUTBIT ENDENTITYADDER1B ARCHITECTUREARTOFADDER1BISSUM AINXORBINXORCIN COUNT AINANDBIN OR AINANDCIN OR BINANDCIN ENDARCHITECTUREART 5 8VHDL的RTL表述 5 8 3结构描述 所谓结构描述 是指描述该设计单元的硬件结构 即该硬件是如何构成的 它主要使用元件例化语句及配置语句来描述元件的类型及元件的互连关系 结构描述建模步骤如下 1 元件说明 描述局部接口 2 元件例化 相对于其他元件放置元件 3 元件配置 指定元件所用的设计实体 一位全加器的VHDL结构化描述 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYADDER1BISPORT AIN BIN CIN INBIT SUM COUT OUTBIT ENDENTITYADDER1B ARCHITECTUREARTOFADDER1BISCOMPONENTH ADDER
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家电公司游泳活动组织办法
- 浙江省成考试题及答案
- 食管狭窄试题及答案
- 如何预防孩子手机沉迷
- ssc面试题及答案
- 福建省邵武七中2026届化学高一第一学期期末调研试题含解析
- 教孩子制定学习计划的妙招
- 家电公司服务回访管理细则
- 保安理论知识培训内容课件
- 保安物业基础知识培训课件
- 2025年甘肃省公职招录考试(省情时政)历年参考题库含答案详解(5套)
- 期末必考题检测卷(三)(含答案)高一数学下学期人教A版必修第二册
- 企业注销考试题库及答案
- 2025北京北投集团“毕业季”校园招聘17人笔试参考题库附带答案详解
- 工艺执行管理办法
- 高中特难英语题目及答案
- 体育机构推广方案模板(3篇)
- 园区改造运营方案(3篇)
- 2025年大学辅导员考试题库真题及答案
- 腮红画法教学课件
- 二零二五版便利店员工劳动合同模板
评论
0/150
提交评论