




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章 VHDL设计深入 7 1进程中的信号赋值与变量赋值 对进程中的赋值行为要注意三点 1 信号的赋值需要一个 延时 2 进程中赋值特点是 所有赋值语句 包括信号赋值和变量赋值 都必须在一个 延时内完成 变量在 延时前即已经完成赋值 在进程中的顺序赋值是以并行的方式 同时 完成的 因此是在执行到ENDPROCESS语句时才发生的 执行赋值操作和完成赋值是两个不同的概念 3 当在进程中存在同一信号有多个赋值源 即对同一信号发生多次赋值 时 实际完成赋值 即赋值对象的值发生更新的信号是最接近ENDPROCESS语句信号 7 1进程中的信号赋值与变量赋值 7 1进程中的信号赋值与变量赋值 7 1进程中的信号赋值与变量赋值 7 1进程中的信号赋值与变量赋值 e1执行赋值在前 c1执行赋值在后 但完成赋值时 变量c1获得0011值的时刻比e1获得1010值的时间早一个 7 1进程中的信号赋值与变量赋值 muxval 0和muxval muxval 1没有得到赋值 只有muxval muxval 2得到赋值 因此muxval始终是一个未知值 结果只能被综合成随a和b变动的时序电路 导致muxval成为一个不确定的信号 7 1进程中的信号赋值与变量赋值 首先执行muxval 0 muxval即刻被更新 从而使if语句的muxval都能得到确定的初始值 尽管if语句从表面上看很像不完整的条件语句 但都不可综合时序电路 而综合成为纯组合电路 7 2含高阻输出的电路设计 三态电路是一种重要的总线接口电路 三态 是指它的输出既可以是一般二值逻辑电路的正常的 0 状态和 1 状态 又可以保持特有的高阻抗状态 第三种状态 高阻状态的门电路 处于高阻抗状态时 其输出相当于断开状态 没有任何逻辑控制功能 三态门是一种扩展逻辑功能的输出级 也是一种控制开关 主要是用于总线的连接 因为总线只允许同时只有一个使用者 通常在数据总线上接有多个器件 每个器件通过OE CE之类的信号选通 如器件没有选通的话它就处于高阻态 相当于没有接在总线上 不影响其它器件的工作 在VHDL中 设计三态门时 用std logic数据类型对 Z 变量赋值 即引入三态门 在控制下使其输出呈高阻状态 就等效于禁止输出 7 2含高阻输出的电路设计 7 2 1三态门设计 要注意的是 Z在综合中是一个不确定的值 不同的综合器会给出不同的结果 对于关键词VHDL不区分大小写 但是高阻 Z 需要大写 在设计中 如果使用std logic数据类型的 Z 对一个变量赋值 即会引入三态门 并在控制下可使其输出呈现高阻态 这等效于使三态门禁止输出 7 2含高阻输出的电路设计 7 2 2双向端口的设计方法 用inout端口模式设计双向端口也必须考虑三态的使用 因为双向端口的设计与三态端口的设计十分相似 都必须考虑端口的三态控制 这是由于双向端口在完成输入功能时 必须使原来呈输出模式的端口呈高阻态 否则 待输入的外部数据势必会于端口处原电平发生 线与 导致无法将外部数据正确地读入以实现 双向 功能 7 2含高阻输出的电路设计 7 2 2双向端口的设计方法 把x定义为三态门输出口 图7 6显示 尽管在程序的实体部分已经明确地定义了q为双向端口 但在显示电路中的综合结果却只有一个输出端口 而且在电路中还插入了一个锁存器 利用q的输入功能将q端口的数据读入并传输给x 即执行x q 时 没有将q的端口设置成高阻态 从而导致这样一个错误的逻辑电路 7 2含高阻输出的电路设计 7 2 2双向端口的设计方法 三态门在双向端口中运用时 设置Z为控制项 当Z 1时 上面的管子开通 此时数据可以从上面的短脚输出 这时双向端口就作为输出口 当Z 0时 上面的三态门被置为高阻态 数据不能从上面的短脚输出 此时数据只可以从下面的短脚由外部向内输入 这时的双向端口是输入口 1 使q在IF语句中有了完整的条件描述 从而解决了时序元件的引入 2 在q履行输入功能时 将其设定为高阻态输出 使q成为真正的双向端口 图7 7中未见时序模块 control对两个三态门进行反相控制 q是双向端口 而x呈三态输出 7 2含高阻输出的电路设计 7 2 3三态总线电路设计 输出信号output在任何条件下都有四个激励源 即赋值源 他们不可能都被顺序赋值更新 这是因为在进程中 顺序等价的语句 包括赋值语句和if语句等 当他们列于同一进程敏感表中的输入信号同时变化时 只可能对进程结束前的那一条赋值语句 含if语句等 进行赋值操作 而忽略了其上所有的等价语句 也就是说7 11虽然语法正确 却不能实现原有的设计意图 7 2含高阻输出的电路设计 7 2 3三态总线电路设计 7 12表明 设计出能产生独立控制的多通道的电路结构 使用并行语句结构更加方便 直观 正确 注意 此例中 在else后使用了高阻态赋值 others Z 高阻态 线与 是没有关系的 但如果将 others Z 改成 others 0 或其它 综合必定无法通过 7 3资源优化 FPGA CPLD资源的优化具有一定的实用意义 1 通过优化 可以使用规模更小的可编程器件 从而降低系统成本 提升性价比 2 对于某些PLD器件 当耗用资源过多时严重影响优化的实现 3 为以后的技术升级 留下更多的可编程资源 方便添加产品的功能 4 对于多数可编程逻辑器件 资源耗用太多会使器件功耗显著上升 面积优化的实现有多种方法 其中比较典型的是资源共享优化 7 3资源优化 7 3 1资源共享 对于多位乘法器 快速进位加法器等算术模块 使用资源共享技术往往能大大优化资源 现在某些高级的HDL综合器 比如Quartus的SynplifyPro等 通过设置就能自动识别设计中需要资源共享的逻辑结构 自动进行资源共享 对数据通路中耗费逻辑资源比较多的模块 通过选择 复用的方式共享使用该模块 以减少该模块的使用个数 达到减少资源利用 优化面积的目的这也对应HDL特定目标的编码风格 7 3资源优化 7 3 1资源共享 并不是在任何情况下都能实现资源优化的 图中使用与门之类的模块使用资源共享共享 通常是毫无意义的 有时会增加资源的使用 多路选择器的面积显然要大于与门 7 3资源优化 7 3 2逻辑优化 使用优化后的逻辑进行设计 可以明显减少资源的占用 定义信号量 存在延时特性 因此 7 15相比7 16要耗费更多的逻辑资源 串行优化是指把原来耗用资源巨大 单时钟周期内完成的并行执行的逻辑块分割开来 提出相同的逻辑模块 一般为组合逻辑块 在时间上复用该逻辑块 用多个时钟周期完成相同的功能 其代价是工作速度大为降低 7 3资源优化 7 3 3串行化 乘法累加器 7 3资源优化 7 3 3串行化 乘法累加器 7 3 3串行化 7 3资源优化 7 4速度优化 7 4 1流水线设计 工作原理 一个信号从输入到输出需要经两个寄存器 不考虑输入寄存器 共需时间位T1 T2 2Treg Treg为寄存器延时 时间约为Ta 但是每隔T1时间 输出寄存器就输出一个结果 输入寄存器输入一个新的数据 这时两个逻辑块处理的不是一个信号 资源被优化利用了 而寄存器对信号数据做了暂存 对大多数设计来说 速度优化比资源优化更重要 需要优先考虑 在设计中加入流水线 并不会减少原设计中的总延时 有时甚至还会增加插入的寄存器的延时即信号同步的时间差 但却可以提高总体的运行速度 总耗时Ta 总耗时约T1 T1 Ta 2 7 4速度优化 7 4 1流水线设计 7 4速度优化 7 4 1流水线设计 7 4速度优化 7 4 1流水线设计 7 4速度优化 7 4 2关键路径法 关键路径法 是指设计从输入到输出经过的延时最长的逻辑路径 优化关键路径是一种提高设计工作速度的有效方法 一般地 从输入到输出延时取决于信号所经过的延时最大 或称最长 路径 而与其它延时小的路径无关 减少该模块的延时 从输入到输出的总延时就能得到改善 在优化设计的过程中关键路径法可以反复使用直到不可能减少关键路径延时为止 HDL综合器及设计分析器通常都提供关键路径的信息以便设计者改进设计 提高速度 图中 Td1 Td2 Td1 Td3 所以关键路径为延时Td1的模块 7 5仿真延时 在行为仿真中的两类延时模型 固有延时和传输延时 功能仿真或行为仿真中的 延时 时序仿真中的延时信息是对选定的FPGA或CPLD进行适配后所得的时序仿真文件的信息 延时是VHDL仿真需要的重要特性设置 为设计而建立精确的延时模型 可以使用VHDL仿真器得到接近实际的精确结果 在FPGA开发过程中 源文件一般不需要建立延时模型 因为EDA软件可以使用门级仿真器对选定的FPGA适配器所得的时序仿真文件进行精确仿真 7 5仿真延时 7 5 1固有延时 固有延时模型的赋值语句中A的维持时间小于20ns 固有延时 InertialDelay 也称为惯性延时 是任何电子器件都存在的一种延时特性 固有延时的主要物理机制是分布电容效应 在惯性延时模型中 器件的输出都有一个固有的延时 为了使器件对输入信号的变化产生响应 就必须使信号变化后的维持时间足够长 即信号的脉冲宽度必须大于器件的固有延时 例 z xXORy 表示xXORy的值在 时间后才赋给z 例 z xXORyAFTER5ns 表示此赋值电路的惯性延时为5ns 当xXORy的值发生变化 经过5ns后才赋给z 要求xXORy变化后的稳定时间不能少于5ns 当没有指明固有延时量 在VHDL仿真器中 有一个默认的固有延时量 仿真器的最小分辨时间 被称为 延时 大多数情况下 这一固有延时量近似地反映了实际器件的行为 7 5仿真延时 7 5 2传输延时 传输延时是信号传输时在器件和连线上的延时 传输延时与固有延时相比 其不同之处在于传输延时表达的是输入与输出之间的一种绝对延时 不必考虑信号的持续时间 仅表示信号传输推迟一个时间段 注意 虽然传输延时和固有延时的物理机制不一样 但在行为仿真中 传输延时与固有延时造成的延时效应是一样的 在综合过程中 综合器将忽略AFTER后的所有延时设置 而对TRANSPORT语句也仅作普通赋值语句处理 例 B AAFTER20ns 例 B TRANSPORTAAFTER20ns 7 5仿真延时 7 5 3仿真 综合器不支持延时语句 在综合后的功能仿真中 仿真器好像仅对系统的逻辑行为进行了模拟测定 而没有把器件的延时特性考虑进去 仿真器给出的结果仅是逻辑功能 按理说 功能仿真就是假设器件间的延迟时间为零的仿真 然而事实并非如此 由于无论是行为仿真还是功能仿真 都是利用计算机进行软件仿真 即使在并行语句的仿真执行上也是有先后的 在零延时条件下 当作为敏感量的输入信号发生变化 并行语句执行的次序无法确定 而不同的执行次序会得出不同的结果 最后将导致错误的仿真结果 这种错误仿真的根本原因在零延时假设在客观世界是不存在的 VHDL仿真器和综合器将自动为系统中的信号赋值配置一足够小而又能满足逻辑排序的延时量 即仿真软件的最小分辩时间 这个延时量就称为仿真 SimulationDelta 或称 延时 从而使并行语句和顺序语句中的并列赋值逻辑得以正确执行 1 在行为仿真 功能仿真乃至综合中 引入 延时是必需的 2 仿真中 延时的引入由EDA工具自动完成 无需设计者介入 习题 习题 实验与设计 7 14X4阵列键盘键信号检测电路设计 实验与设计 7 2乐曲硬件演奏电路设计 实验与设计 7 2乐曲硬件演奏电路设计 实验与设计 7 2乐曲硬件演奏电路设计 实验与设计 7 2乐曲硬件演奏电路设计 实验与设计 7 2乐曲硬件演奏电路设计 实验与设计 7 3PS2键盘控制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高级月嫂基础知识培训
- 2.2.4细胞-生命活动的基本单位 分层练习(有答案) 高一生物学苏教版必修一
- 高空坠落现场处理课件
- 北京幼师考试笔试真题及答案
- 北京初三政治中考试卷及答案
- 电焊工常规知识培训课件
- 6-Benzylaminopurine-suitable-for-plant-cell-culture-生命科学试剂-MCE
- 高温消防知识培训方案课件
- 保定高一期末考试试题及答案
- 高校地理考试题及答案
- 现代化智能仓储物流中心建设的项目解决的方案课件
- 艾滋病检测筛查实验室申请表
- 媒介批评导论课件
- 畜牧兽医法规课件
- 文化政策与法规课件
- 木栈道专项施工方案
- 露天矿开采技术课件汇总全套ppt完整版课件最全教学教程整套课件全书电子教案
- 部编人教版九年级上册初中历史 第1课 古代埃及 教案(教学设计)
- 钢结构钢梁计算(PPT33张)
- 新中式餐厅设计答辩PPT
- 幼儿教师——散文诗
评论
0/150
提交评论