




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VHDL设计中的一些问题 一 VHDL源代码的综合 功能相同但是编写不同的代码会产生不同的综合效果 不可能依赖软件工具去综合一个编写很差的源代码 如果能很好理解所作设计的硬件结构 则会使设计有一个良好的开端 三个重要的方面 1 考虑硬件结构编写能够描述硬件拓扑结构的代码 不要编写仿真模型 2 考虑同步逻辑 同步逻辑在综合 测试 仿真和布线中都比较方便 异步逻辑需要人为操作及一些扩充的仿真功能才能进行验证 将异步逻辑划分成独立的块单元来编译 3 考虑RTL级描述 用RTL级的描述意味着描述 寄存器的结构 电路结构 寄存器之间的功能 由编译器优化寄存器之间的逻辑 但不优化寄存器的布局 IF语句的综合 IF ELSE语句隐含了一个多路选择器的硬件结构 例 IF Aflag 1 THENOutData A B ELSEOutDate C D ENDIF 多路选择器的位置取决于IF ELSE语句的结构 IF Aflag 1 THENOp1 A Op2 B ELSEOp1 C Op2 D ENDIF OutData Op1 Op2 若IF语句不带ELSE 可以表示锁存 VHDL语言的定义要求信号在没有被赋予新值前保持原来的值 锁存功能在硬件上实现了以上要求 例 LS373 PROCESS ALE ADBUS BEGINIF ALE 1 THENABUS ADBUS ENDIF ENDPROCESSLS373 一个二输入与门的设计 由于没有ELSE 综合时会被默认为其他情况时 c c PROCESS a b BEGINIF a 1 andb 1 THENc 1 ENDIF ENDPROCESS IF THEN ELSIF语句 IF THEN ELSIF语句隐含了优先级的关系 因此在电路设计中如果有优先级的要求才使用该语句 如果在没有优先级设计要求的情况下使用该语句 那么综合后的逻辑电路会比较复杂 速度较慢 例 中断优先级控制器 int0优先级最高 中断优先级控制器的实现 IF int0 1 THENactive 0 1 ELSIF int1 1 THENactive 1 1 ELSIF int2 1 THENactive 2 1 ELSEactive 3 1 ENDIF FOR LOOP语句的综合 FOR LOOP语句首先进行 翻译 然后再进行综合 PROCESS a b BEGINFORiIN0to3LOOPout i a i ANDb 3 i ENDLOOP ENDPROCESS out 0 a 0 ANDb 3 out 1 a 1 ANDb 2 out 2 a 2 ANDb 1 out 3 a 3 ANDb 0 实现奇偶校验的例子 PROCESS data VARIABLEsum INTEGER BEGINsum 0 FORIIN0to7LOOP 数1的个数sum data i sum ENDLOOP odd parity summod2 校验奇偶性ENDPROCESS 综合后 操作符对综合结果的影响 VHDL编译器对表达式从左至右进行语法分析 圆括号可以改变编译的顺序 例1 ADD A B C D 1 ADD A B C D 2 综合后结果 ADD A B C D 综合后结果 ADD A B C D 例2 SUM A B C D E F G 综合后结果 改变顺序或加括号来改变结构 SUM E F G C D A B SUM A B C D E F G 二 可综合代码的设计特点 1 比较综合和仿真的结果VHDL语言是一种硬件描述和仿真语言 一些仿真结构在综合器中不被支持 2 避免使用 WAITFORxxns语句 AFTERxxns语句 信号和变量的赋初值语句 3 使用CASE和IF ELSE语句 IF ELSE描述一个优先级编码的逻辑 CASE语句描述一种对称平衡的行为 仿真结果一致 综合出来的设计速度会有不同 4 遵循一定的编代码规则 选择使用大小写字母的规则 文件名与实体名匹配 给程序添加标号 注释 使用代码缩进 空行 空格等 建议使用std logic类型 5 例子 设计实现一个2 4译码器 方法一 结构描述法 基于元件例化和GENERATE语句 建立层次结构 可用简单的逻辑门和复杂的元件来描述系统 互连通过端口实现 调用两个元件 与门ANDGate 调用4次 非门Inverter 调用2次 方法二 数据流描述 采用并发代入语句实现 通过输入信号值的改变来激活代入语句 采用并发代入语句 方法三 行为描述法 描述的是电路的功能 而不是电路的结构 采用PROCESS和CASE语句 三 FPGA中的一些设计方法 竞争和冒险现象清除和置位信号触发器和锁存器同步设计延时电路的产生多时钟系统 1 竞争和冒险 信号在FPGA中传送会有不一样延迟 当多个输入信号同时发生变化时 其组合逻辑就可能发生 毛刺 毛刺会向下一级传送 毛刺会影响电路的稳定性 毛刺 的例子 解决毛刺问题的方法 改变设计 比如采用格雷码计数器代替普通的二进制计数器 因为格雷码计数器的输出每次只有一位跳变 采用同步电路 毛刺在时钟的上升沿不能形成有效的操作 采用对毛刺不敏感的D触发器输出信号 2 清除和置位信号 清除和置位信号对毛刺很敏感 有时可以使用同步置位的方法来代替异步清零 3 触发器和锁存器 触发器在时钟沿锁存数据 锁存器是用电平来锁存数据 建议尽量使用触发器 锁存器 4 同步设计 异步设计不是总能满足建立和保持时间的要求 异步设计常常会将错误的数据锁存到触发器中 导致触发器出现亚稳态 不能识别1或0 尽量采用同步设计 以全局时钟为基准 FPGA中的时钟树 FPGA中的时钟树 全局时钟为布局布线的延时参数提取 分析提供了基准 如果不使用时钟树的时钟 则延时数据将不准确 设计中应注意以全局时钟为参考 分频器的例子 不规范 分频器的例子 正确 clk Shift reg 5 延时电路的产生 有时候需要对信号进行延时处理来适应外接端口的时序关系 可综合的延时方法有 使信号通
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025房地产项目认筹合作开发与分成协议
- 2025标准托盘租赁与智能化调度服务合同
- 2025版私人餐厅连锁经营区域代理承包合同
- 2025年不良资产投资分析与风险评估服务合同范本
- 2025年新型防雷设施维护与保养服务合同
- 贵州省剑河县2025年上半年事业单位公开遴选试题含答案分析
- 2025版水电工程水电材料采购与运输服务合同范本
- 2025版汽车油箱配件供应协议
- 2025版创新科技行业员工劳动合同模板
- 2025版连锁便利店店铺承包合作协议书
- 2025年北京高端商务车租赁及全程安全保障合同
- 2025版电商平台入驻及佣金分成合作协议
- 中国黄金集团招聘面试经典题及答案
- 2025年智能家居产业互联互通标准与产业发展现状及问题研究报告
- 感染性心内膜炎术后护理查房
- 家校携手同行砥砺奋进未来高二下学期期中家长会
- 2025年领导干部政治理论知识必考题库及答案
- 2025年提取公积金租房合同范本
- 推理能力题目及答案
- 2025年湖南省社区工作者招聘考试(公共基础知识和写作)历年参考题库含答案详解(5套)
- 2025年部编版新教材语文七年级上册教学计划(含进度表)
评论
0/150
提交评论