数字系统课程设计—VHDLPPT课件.ppt

上传人:优*** 文档编号:128165346 上传时间:2020-04-08 格式:PPT 页数:72 大小:486KB
返回 下载 相关 举报
数字系统课程设计—VHDLPPT课件.ppt_第1页
第1页 / 共72页
数字系统课程设计—VHDLPPT课件.ppt_第2页
第2页 / 共72页
数字系统课程设计—VHDLPPT课件.ppt_第3页
第3页 / 共72页
数字系统课程设计—VHDLPPT课件.ppt_第4页
第4页 / 共72页
数字系统课程设计—VHDLPPT课件.ppt_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《数字系统课程设计—VHDLPPT课件.ppt》由会员分享,可在线阅读,更多相关《数字系统课程设计—VHDLPPT课件.ppt(72页珍藏版)》请在金锄头文库上搜索。

1、数字系统课程设计 东南大学信息科学与工程学院2012年8月 VHDL语法与使用 VHDL简单介绍VHDL学习提示VHDL语法及实例VHDL设计数字系统的方法设计提示 Slide 2 VHDL简单介绍 VHDL的英文全名是Very High SpeedIntegratedCircuitHardwareDescriptionLanguage 诞生于1982年 1987底 VHDL被IEEE和美国国防部确认为标准硬件描述语言 此后VHDL在电子设计领域得到了广泛的接受 并逐步取代了原有的非标准的硬件描述语言 现在 VHDL和Verilog作为IEEE的工业标准硬件描述语言 又得到众多EDA公司的支持

2、 在电子工程领域 已成为事实上的通用硬件描述语言 在新的世纪中 VHDL和Verilog语言将承担起大部分的数字系统设计任务 Slide 3 VHDL简单介绍 VHDL主要用于描述数字系统的结构 行为 功能和接口 VHDL具有强大的行为描述能力 是系统设计领域最佳的硬件描述语言 强大的行为描述能力是避开具体的器件结构 从逻辑行为上描述和设计大规模电子系统的重要保证 Slide 4 VHDL简单介绍 VHDL丰富的仿真语句和库函数 使得在任何大系统的设计早期就能查验设计系统的功能可行性 随时可对设计进行仿真模拟 VHDL对设计的描述具有相对独立性 设计者可以不懂硬件的结构 也不必管理最终设计实现

3、的目标器件是什么 而进行独立的设计 Slide 5 VHDL学习提示 了解HDL的可综合性问题 HDL有两种用途 系统仿真和硬件实现 如果程序只用于仿真 那么几乎所有的语法都可以使用 但如果程序是用于硬件实现 例如 用于FPGA设计 那么我们就必须保证程序 可综合 程序的功能可以用硬件电路实现 不可综合的HDL语句在软件综合时将被忽略或者报错 应当牢记 所有的HDL描述都可以用于仿真 但不是所有的HDL描述都能用硬件实现 Slide 6 VHDL学习提示 用硬件电路设计思想来编写HDL 学好HDL的关键是充分理解HDL语句和硬件电路的关系 编写HDL 就是在描述一个电路 写完一段程序以后 应当

4、对生成的电路有一些大体上的了解 而不能用纯软件的设计思路来编写硬件描述语言 要做到这一点 需要我们多实践 多思考 多总结 Slide 7 VHDL学习提示 语法掌握贵在精 不在多 30 的基本HDL语句就可以完成95 以上的电路设计 很多生僻的语句并不能被所有的综合软件所支持 在程序移植或者更换软件平台时 容易产生兼容性问题 也不利于其他人阅读和修改 建议多用心钻研常用语句 理解这些语句的硬件含义 这比多掌握几个新语法要有用的多 Slide 8 用VHDL替代原理图设计 VHDL便于修改VHDL语言描述能力更强VHDL重用性强 便于移植 VHDL不依赖实际器件 VHDL格式统一 方便移植和共享

5、 Slide 9 VHDLVSGraphic Graphicis Whatyoudrawiswhatyouget TellmewhathardwareyouwantandIwillgiveittoyou VHDLis Whatyouwriteiswhatfunctionyouget TellmehowyourcircuitshouldbehaveandtheVHDLcompilerwillgiveyouthehardwarethatdoesthejob Thedesignercannotcontrolhowthecircuitimplement Slide 10 VHDL语法及实例 VHDL基

6、本结构VHDL描述方法常用电路描述状态机设计 Slide 11 VHDL基本结构 库 LIBRARY 用来存储可编译的设计单元 实体 ENTITY 描述设计模块的输入输出端口类型 结构体 ARCHITECTURE 描述电路的具体功能 Slide 12 库 库调用语句放在程序的最前面 最常用的库调用语句为 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC UNSIGNED ALL Slide 13 实体 实体定义设计的全部输入输出信号 格式如下 ENTITY实体名ISPORT 输入输出信号列表 END实体名 Slide 14 实体

7、一个计数器的实体部分ENTITYcount m16 实体名必须与设计文件同名PORT reset INstd logic clk INstd logic co OUTstd logic count BUFFERstd logic vector 3DOWNTO0 ENDcount m16 Slide 15 实体 上述计数器实体对应的原理图符号 Slide 16 实体 端口模式IN输入信号 不能给输入端口赋值OUT输出信号 不能在内部反馈使用INOUT双向信号 谨慎使用 BUFFER输出信号 可在内部反馈 Slide 17 实体 数据类型1 标准定义的数据类型不必使用USE语句说明而直接使用 这些

8、标准定义数据类型在标准程序包STANDARD中定义 常用的有Integer 整数 Real 实数 Character 字符 等 2 IEEE预定义标准数据类型std logic 四种取值 0 0 1 1 Z 高阻态 X 不定 std logic vector std logic的矢量形式 表示多位信号 3 用户自定义数据类型枚举类型 数组类型等TYPE数据类型名IS 枚举文字 枚举文字 Slide 18 标识符 描述VHDL语言中端口 信号 常数 变量以及函数等的名称的字符串 VHDL标识符书写规则如下 使用的字符由26个英文字母 数字0 9以及下划线组成 标识符必须以英文字母开始 不区分大小

9、写 不能以下划线结尾 标识符中不能有空格 标识符不能与VHDL的关键字重名 Slide 19 结构体 结构体描述实体的结构或行为 格式为 ARCHITECTURE结构体名OF实体名IS定义语句 内部信号 常数 数据类型 函数 BEGIN并行处理语句 进程语句 PROCESS END结构体名 Slide 20 结构体 上述计数器的结构体部分ARCHITECTUREbehaveOFcount m16ISBEGINPROCESS clk BEGINIF clk eventandclk 1 THENIF reset 1 THENcount 0000 co 0 ELSIF count 1111 coun

10、t 0000 co 1 ELSEcount count 1 co 0 ENDIF ENDIF ENDPROCESS ENDbehave Slide 21 结构体 另一个加法器结构体的例子ARCHITECTUREbehaveOFadder8ISBEGINSUM1 ADD A ADD B SUM2 ADD C ADD D SUM3 ADD E ADD F ENDbehave Slide 22 数据对象 数据对象包括 常量 信号 变量1 常量在设计描述中保持特定值不变 CONSTANT常量名 数据类型 表达式 如CONSTANTwidth integer 8 2 信号用于声明内部信号 在元件之间起互

11、连作用 SIGNAL信号名 数据类型 如SIGNALcount std logic vector 3downto0 3 变量用于声明进程或子程序中的局部值 VARIABLE变量名 数据类型 如VARIABLEa std logic Slide 23 数据对象 信号VS变量1 信号是全局量 常在结构体中声明 ARCHITECTUREbehaveOFEntity NameISSIGNALsig temp std logic 变量是局部量 常在进程中声明 ARCHITECTUREbehaveOFEntity NameISBEGINPROCESS VARIABLEvar temp std logic

12、Slide 24 数据对象 信号VS变量2 信号赋值的符号为 SIG temp 1 变量赋值的符号为 VAR temp 1 Slide 25 数据对象 信号VS变量3 在进程中 信号赋值在进程结束时更新 如果一个进程中多次对同一个信号赋值 最后一个赋值有效 SIGNALd std logic PROCESS a b c BEGINd a 此赋值被忽略x candd d b 此赋值有效y candd ENDPROCESS Slide 26 数据对象 信号VS变量执行结果x candb y candb 以下是综合器的综合结果 Slide 27 数据对象 信号VS变量在进程中 变量赋值是立即生效的

13、没有延时 PROCESS a b c VARIABLEd std logic BEGINd a x candd d b y candd ENDPROCESS Slide 28 数据对象 信号VS变量执行结果x canda y candb 以下是综合器的综合结果 Slide 29 VHDL描述方法 VHDL中三种描述语句1 顺序语句 SequentialStatement 只存在于进程 PROCESS 和子程序内部 每一条语句的执行按书写顺序进行 2 并行语句 ConcurrentStatement 所有并行语句在结构体中同时执行 与书写顺序无关 3 进程语句 ProcessStatement

14、Slide 30 顺序语句 Sequential IF语句PROCESS s a0 a1 a2 a3 BEGINIFs 00 THENy a0 ELSIFs 01 THENy a1 ELSIFs 10 THENy a2 ELSEy a3 ENDIF ENDPROCESS Slide 31 顺序语句 Sequential CASE语句PROCESS s a0 a1 a2 a3 BEGINCASEsISWHEN 00 yyyy a3 ENDCASE ENDPROCESS Slide 32 并发语句 ConcurrentStatement 所有的并发语句都是并行执行并发语句不关心在程序中的位置并发语

15、句的输出依赖于输入 Entitytest1IsPort a b inbit c d outbit endtest1 architecturetest1 bodyoftest1isbegind aorb c aandb endtest1 body Entitytest1IsPort a b inbit c d outbit endtest1 architecturetest1 bodyoftest1isbeginc aandb d aorb endtest1 body Slide 33 并发语句 c aandb d aorb d aorb c aandb C AandB D AORB Slide

16、 34 并行语句 Concurrent 赋值语句1 简单信号赋值语句赋值目标 表达式 如c a b c aandb c a Slide 35 并行语句 Concurrent 2 条件赋值语句目标 表达式WHEN赋值条件ELSE表达式WHEN赋值条件ELSE 表达式 如 y a0WHENs 00 ELSEa1WHENs 01 ELSEa2WHENs 10 ELSEa3 Slide 36 并行语句 Concurrent 3 选择信号赋值语句WITH选择表达式SELECT赋值目标信号 表达式WHEN选择值 表达式WHEN选择值 如 WITHsSELECTy a0WHEN 00 a1WHEN 01 a2WHEN 10 a3WHENOTHERS Slide 37 进程语句 Process 进程语句进程语句由一段程序构成 各个进程是并行执行的 进程内部都是顺序执行的 一个结构体可以包含多个进程语句 PROCESS语句是VHDL中最常用 最基本的语句 PROCESS 敏感信号表 声明区 此处声明局部变量等 BEGIN 进程开始 顺序语句 ENDPROCESS 进程结束 Slide 38 进程语句 U

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号