数字系统课程设计VHDL.ppt
- 文档编号:1725536
- 上传时间:2022-10-23
- 格式:PPT
- 页数:72
- 大小:580.50KB
数字系统课程设计VHDL.ppt
《数字系统课程设计VHDL.ppt》由会员分享,可在线阅读,更多相关《数字系统课程设计VHDL.ppt(72页珍藏版)》请在冰豆网上搜索。
数字系统课程设计,东南大学信息科学与工程学院2012年8月,VHDL语法与使用,VHDL简单介绍VHDL学习提示VHDL语法及实例VHDL设计数字系统的方法设计提示,VHDL简单介绍,VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年.1987底,VHDL被IEEE和美国国防部确认为标准硬件描述语言.此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言.现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言.在新的世纪中,VHDL和Verilog语言将承担起大部分的数字系统设计任务.,VHDL简单介绍,VHDL主要用于描述数字系统的结构,行为,功能和接口.VHDL具有强大的行为描述能力,是系统设计领域最佳的硬件描述语言.强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证.,VHDL简单介绍,VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟.VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计.,VHDL学习提示,了解HDL的可综合性问题:
HDL有两种用途:
系统仿真和硬件实现.如果程序只用于仿真,那么几乎所有的语法都可以使用.但如果程序是用于硬件实现(例如:
用于FPGA设计),那么我们就必须保证程序“可综合”(程序的功能可以用硬件电路实现).不可综合的HDL语句在软件综合时将被忽略或者报错.应当牢记:
“所有的HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件实现.”,VHDL学习提示,用硬件电路设计思想来编写HDL:
学好HDL的关键是充分理解HDL语句和硬件电路的关系.编写HDL,就是在描述一个电路,写完一段程序以后,应当对生成的电路有一些大体上的了解,而不能用纯软件的设计思路来编写硬件描述语言.要做到这一点,需要我们多实践,多思考,多总结.,VHDL学习提示,语法掌握贵在精,不在多:
30%的基本HDL语句就可以完成95%以上的电路设计,很多生僻的语句并不能被所有的综合软件所支持,在程序移植或者更换软件平台时,容易产生兼容性问题,也不利于其他人阅读和修改.建议多用心钻研常用语句,理解这些语句的硬件含义,这比多掌握几个新语法要有用的多.,用VHDL替代原理图设计,VHDL便于修改VHDL语言描述能力更强VHDL重用性强,便于移植-VHDL不依赖实际器件-VHDL格式统一,方便移植和共享,VHDLVSGraphic,Graphicis“Whatyoudrawiswhatyouget”“TellmewhathardwareyouwantandIwillgiveittoyou”VHDLis“Whatyouwriteiswhatfunctionyouget”“TellmehowyourcircuitshouldbehaveandtheVHDLcompilerwillgiveyouthehardwarethatdoesthejob”Thedesignercannotcontrolhowthecircuitimplement,VHDL语法及实例,VHDL基本结构VHDL描述方法常用电路描述状态机设计,VHDL基本结构,库(LIBRARY)用来存储可编译的设计单元.实体(ENTITY)描述设计模块的输入输出端口类型.结构体(ARCHITECTURE)描述电路的具体功能.,库,库调用语句放在程序的最前面,最常用的库调用语句为:
LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;,实体,实体定义设计的全部输入输出信号.格式如下:
ENTITY实体名ISPORT(输入输出信号列表);END实体名;,实体,一个计数器的实体部分ENTITYcount_m16-实体名必须与设计文件同名PORT(reset:
INstd_logic;clk:
INstd_logic;co:
OUTstd_logic;count:
BUFFERstd_logic_vector(3DOWNTO0);ENDcount_m16;,实体,上述计数器实体对应的原理图符号:
实体,端口模式IN输入信号,不能给输入端口赋值OUT输出信号,不能在内部反馈使用INOUT双向信号(谨慎使用)BUFFER输出信号,可在内部反馈,实体,数据类型1.标准定义的数据类型不必使用USE语句说明而直接使用,这些标准定义数据类型在标准程序包STANDARD中定义。
常用的有Integer(整数)、Real(实数)、Character(字符)等;2.IEEE预定义标准数据类型std_logic:
四种取值:
0(0),1
(1),Z(高阻态),X(不定).std_logic_vector:
std_logic的矢量形式,表示多位信号.3.用户自定义数据类型枚举类型、数组类型等TYPE数据类型名IS(枚举文字,枚举文字);,标识符,描述VHDL语言中端口、信号、常数、变量以及函数等的名称的字符串。
VHDL标识符书写规则如下:
使用的字符由26个英文字母、数字0-9以及下划线组成;标识符必须以英文字母开始,不区分大小写;不能以下划线结尾;标识符中不能有空格;标识符不能与VHDL的关键字重名;,结构体,结构体描述实体的结构或行为,格式为:
ARCHITECTURE结构体名OF实体名IS定义语句内部信号、常数、数据类型、函数BEGIN并行处理语句;进程语句(PROCESS);END结构体名;,结构体,上述计数器的结构体部分ARCHITECTUREbehaveOFcount_m16ISBEGINPROCESS(clk);BEGINIF(clkeventandclk=1)THENIF(reset=1)THENcount=“0000”;co=0;ELSIF(count=“1111”)count=“0000”;co=1;ELSEcount=count+1;co=0;ENDIF;ENDIF;ENDPROCESS;ENDbehave;,结构体,另一个加法器结构体的例子ARCHITECTUREbehaveOFadder8ISBEGINSUM1=ADD_A+ADD_B;SUM2=ADD_C+ADD_D;SUM3=ADD_E+ADD_F;ENDbehave;,数据对象,数据对象包括:
常量、信号、变量1.常量在设计描述中保持特定值不变.CONSTANT常量名:
数据类型:
=表达式;如CONSTANTwidth:
integer:
=8;2.信号用于声明内部信号,在元件之间起互连作用.SIGNAL信号名:
数据类型;如SIGNALcount:
std_logic_vector(3downto0);3.变量用于声明进程或子程序中的局部值;VARIABLE变量名:
数据类型;如VARIABLEa:
std_logic;,数据对象,信号VS变量1.信号是全局量,常在结构体中声明:
ARCHITECTUREbehaveOFEntity_NameISSIGNALsig_temp:
std_logic;变量是局部量,常在进程中声明:
ARCHITECTUREbehaveOFEntity_NameISBEGINPROCESS()VARIABLEvar_temp:
std_logic;,数据对象,信号VS变量2.信号赋值的符号为“=”SIG_temp=1;变量赋值的符号为“:
=”VAR_temp:
=1;,数据对象,信号VS变量3.在进程中,信号赋值在进程结束时更新,如果一个进程中多次对同一个信号赋值,最后一个赋值有效.SIGNALd:
std_logic;PROCESS(a,b,c)BEGINd=a;此赋值被忽略x=candd;d=b;此赋值有效y=candd;ENDPROCESS;,数据对象,信号VS变量执行结果x=candb;y=candb;以下是综合器的综合结果.,数据对象,信号VS变量在进程中,变量赋值是立即生效的,没有延时.PROCESS(a,b,c)VARIABLEd:
std_logic;BEGINd:
=a;x=candd;d:
=b;y=candd;ENDPROCESS;,数据对象,信号VS变量执行结果x=canda;y=candb;以下是综合器的综合结果.,VHDL描述方法,VHDL中三种描述语句1.顺序语句(SequentialStatement)只存在于进程(PROCESS)和子程序内部,每一条语句的执行按书写顺序进行.2.并行语句(ConcurrentStatement)所有并行语句在结构体中同时执行,与书写顺序无关.3.进程语句(ProcessStatement),顺序语句(Sequential),IF语句PROCESS(s,a0,a1,a2,a3)BEGINIFs=“00”THENy=a0;ELSIFs=“01”THENy=a1;ELSIFs=“10”THENy=a2;ELSEy=a3;ENDIF;ENDPROCESS;,顺序语句(Sequential),CASE语句PROCESS(s,a0,a1,a2,a3)BEGINCASEsISWHEN“00”=yyyy=a3;ENDCASE;ENDPROCESS;,并发语句(ConcurrentStatement),所有的并发语句都是并行执行并发语句不关心在程序中的位置并发语句的输出依赖于输入,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;,并发语句,c=aandb;d=aorb;,d=aorb;c=aandb;,C=AandB,D=AORB,并行语句(Concurrent),赋值语句1.简单信号赋值语句赋值目标=表达式;如c=a+b;c=aandb;c=a;,并行语句(Concurrent),2.条件赋值语句目标=表达式WHEN赋值条件ELSE表达式WHEN赋值条件ELSE表达式;如:
y=a0WHENs=“00”ELSEa1WHENs=“01”ELSEa2WHENs=“10”ELSEa3;,并行语句(Concurrent),3.选择信号赋值语句WITH选择表达式SELECT赋值目标信号=表达式WHEN选择值,表达式WHEN选择值;如:
WITHsSELECTy=a0WHEN“00”,a1WHEN“01”,a2WHEN“10”,a3WHENOTHERS;,进程语句(Process),进程语句进程语句由一段程序构成,各个进程是并行执行的.进程内部都是顺序执行的.一个结构体可以包含多个进程语句.PROCESS语句是VHDL中最常用、最基本的语句.PROCESS(敏感信号表)声明区;-此处声明局部变量等.BEGIN-进程开始顺序语句;END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 系统 课程设计 VHDL