复习资料VHDL大题课件市公开课一等奖省赛课微课金奖课件_第1页
复习资料VHDL大题课件市公开课一等奖省赛课微课金奖课件_第2页
复习资料VHDL大题课件市公开课一等奖省赛课微课金奖课件_第3页
复习资料VHDL大题课件市公开课一等奖省赛课微课金奖课件_第4页
复习资料VHDL大题课件市公开课一等奖省赛课微课金奖课件_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硬件描述语言(HardwareDescriptionLanguage,HDL):即能够描述硬件电路功效、信号连接关系及定时关系一个语言。当前,VHDL和VerilogHDL已先后成为IEEE标准硬件描述语言。1复习资料VHDL大题课件第1页第1页硬件描述语言VHDL:

VHDL英文全名是VHSIC

(VeryHighSpeedIntegratedCircuits)

HardwareDescriptionLanguage,即超高速集成电路硬件描述语言。2复习资料VHDL大题课件第2页第2页VHDL设计文件两个基本组成部分实体(Entity)结构体(Architecture)配置(Configuration)包集合(Package)库(Library)一个完整VHDL程序库用于存放已编译实体、结构体、包集合和配置VHDL程序基本结构实体部分描述设计系统外部接口信号(即输入/输出信号)结构体用于描述系统内部电路配置用于从库中选取所需元件安装到设计单元实体中包集合存放各设计模块能共享数据类型、常数、子程序等3复习资料VHDL大题课件第3页第3页标识符规则是VHDL语言中符号书写普通规则。不但对电子系统设计工程师是一个约束,同时也为各种各样EDA工具提供了标准书写规范,使之在综合仿真过程中不生产生歧义,易于仿真。VHDL语言有两个标准版:VHDL’87版和VHDL’93版。VHDL’87版标识符语法规则经过扩展后,形成了VHDL’93版标识符语法规则。前一部分称为短标识符,扩展部分称为扩展标识符。VHDL’93版含有短标识符和扩展标识符两部分。标识符4复习资料VHDL大题课件第4页第4页短标识符规则:短标识符由字母、数字以及下划线字符组成,且含有以下特征要求:●第一个字符必须是字母;●最终一个字符不能是下划线;●不允许连续两个下划线;●在标识符中大、小写字母是等效。●VHDL中注释文字一律为2个连续连接线“--”,能够出现在任一语句后面,也能够出现在独立行;●VHDL保留字(关键字)不能用于标识符;5复习资料VHDL大题课件第5页第5页以下标识符是非法:_tx_clk8B10Blarge#numberlink__barselectrx_clk_比如:以下标识符是正当: tx_clk Three_state_Enable sel7D HIT_1124--标识符必须起始于字母--只能是字母、数字、下划线--不能有连续两个下划线--关键字(保留字)不能用于标识符--最终字符不能是下划线6复习资料VHDL大题课件第6页第6页扩展标识符规则:

扩展标识符是VHDL’93版增加标识符书写规则:(1)扩展标识符用反斜杠来定界。比如:\multi_screens\,\eda_centrol\等都是正当扩展标识符。(2)允许包含图形符号、空格符。比如:\modeA,\$100\,\p%name\等。(3)反斜杠之间字符能够用保留字。比如:\buffer\,\entity\,\end\等。(4)扩展标识符界定符两个斜杠之间能够用数字打头。如:\100$\,\2chip\,\4screens\等。(5)扩展标识符中允许多个下划线相连。比如:\Four_screens\,\TWO_Computer_sharptor\等。(6)扩展标识符区分大小写。比如:\EDA\与\eda\不一样。(7)扩展标识符与短标识符不一样。比如:\COMPUTER\与Computer不一样。

7复习资料VHDL大题课件第7页第7页信号和变量主要区分:1.

变量是一个局部量,只能用于进程或子程序中;

信号是一个全局量,它能够用来进行进程之间通信。2.变量赋值马上生效,不存在延时行为;

信号赋值含有非马上性,信号之间传递含有延时性。4.信号赋值能够出现在进程中,也能够直接出现在结构体中,但它们运行含义不一样:前者属次序信号赋值,此时赋值操作要视进程是否已被开启;后者属并行信号赋值,其赋值操作是各自独立并行发生。3.变量用作进程中暂存数据单元;

信号用作电路中信号连线。8复习资料VHDL大题课件第8页第8页5.在进程中变量和信号赋值形式与操作过程不一样:

在变量赋值语句中,该语句一旦被执行,其值马上被赋予变量。在执行下一条语句时,该变量值即为上一句新赋值。

在信号赋值语句中,该语句即使被执行,其值不会使信号马上发生代入,在下一条语句执行时,仍使用原来信号值。直到进程结束之后,全部信号赋值实际代入才次序进行处理。所以,实际代入过程和赋值语句执行是分开进行。如例a所表示。9复习资料VHDL大题课件第9页第9页例a信号和变量值代入区分举例

PROCESS(a,b,c,d)

BEGIN d<=a; x<=b+d; d<=c; y<=b+d;

ENDPROCESS;结果: x<=b+c; y<=b+c;

PROCESS(a,b,c)

VARIABLEd:std_logic_vector(3downto0);

BEGIN d:=a; x<=b+d; d:=c; y<=b+d;

ENDPROCESS;结果: x<=b+a; y<=b+c;当进程运行时,信号赋值将自上而下次序执行,但第一项赋值操作并不会发生,这是因为信号赋值是在进程结束时才起作用。因为在进程结束更新时,d最终一个赋值为c,所以执行结果为该式。10复习资料VHDL大题课件第10页第10页数据类型含义整数整数32位,取值范围:-(231-1)~(231-1)实数浮点数,取值范围:-1.0e+38~1.0e+38位逻辑’0’或’1’位矢量位矢量,用双引号括起来一组数据布尔量逻辑“真”或“假”,用TRUE和FALSE标识字符ASCII字符字符串字符矢量时间时间单位fs,ps,ns,μs,ms,sec,min,hr自然数、正整数整数子集:自然数取值范围为0~(231-1);正整数是大于0整数错误等级Note,warning,error,failure标准数据类型11复习资料VHDL大题课件第11页第11页

IEEE库STD_LOGIC_1164程序包中定义STD_LOGIC类型和STD_LOGIC_VECTOR类型。(VHDL’93标准)STD_LOGIC类型数据能够含有九种取值,其含义以下:

’U’:初始值

’X’:不定态

’0’:强制0

’1’:强制1 ’Z’:高阻态

’W’:弱信号不定态

’L’:弱信号0

’H’:弱信号1

’_’:不可能情况(可忽略值)

其中,“X”方便了系统仿真,“Z”方便了双向总线描述。12复习资料VHDL大题课件第12页第12页STD_LOGIC_VECTOR类型定义以下:

TYPESTD_LOGIC_VECTORISARRAY(NATURALRANGE<>)OFSTD_LOGIC;13复习资料VHDL大题课件第13页第13页次序语句信号代入语句变量赋值语句WAIT语句IF语句CASE语句LOOP语句NEXT语句EXIT语句RETURN语句NULL语句

次序语句用在进程或子程序中,用来定义进程或子程序行为

。次序语句每一条语句执行(指仿真执行)都是按语句排列次序执行。14复习资料VHDL大题课件第14页第14页例a设计4选1多路选择器ENTITYmux4_1IS

PORT(d :IN STD_LOGIC_VECTOR(3DOWNTO0); sel:IN STD_LOGIC_VECTOR(1DOWNTO0); y :OUT STD_LOGIC);ENDmux4_1;ARCHITECTURErtlOFmux4_1ISBEGIN

PROCESS(d,sel)

BEGIN

IF(sel="00")THEN y<=d(0);

ELSIF(sel="01")THEN y<=d(1);

ELSIF(sel="10")THEN y<=d(2);

ELSE y<=d(3);

ENDIF;

ENDPROCESS;ENDrtl;次序语句15复习资料VHDL大题课件第15页第15页并行语句并发语句主要包含:进程语句BLOCK语句并发代入语句条件代入语句选择信号语句ASSERT(并行断言)语句COMPONENT(元件调用)语句GENERATE(生成)语句16复习资料VHDL大题课件第16页第16页条件信号代入语句

条件信号代入语句也是并发描述语句。条件信号赋值语句格式为:

目标信号<=表示式1WHEN条件1ELSE 表示式2WHEN条件2ELSE …… 表示式n;并发描述语句17复习资料VHDL大题课件第17页第17页例a:4选1多路选择器ENTITYwmux4_1IS PORT(i0,i1,i2,i3,a,b :IN STD_LOGIC; q :OUT STD_LOGIC);ENDwmux4_1;ARCHITECTURErtlOFwmux4_1IS SIGNALsel:STD_LOGIC_VECTOR(1downto0);BEGIN sel<=b&a; q<=i0WHENsel="00"ELSE i1WHENsel="01"ELSE i2WHENsel="10"ELSE i3WHENsel="11"ELSE 'X';ENDrtl;并发描述语句18复习资料VHDL大题课件第18页第18页PROCESS语句关键点:PROCESS语句结构由三个关键部分组成,即进程说明语句部分、次序描述语句部分和敏感信号参数表(可能有多个敏感信号).(2)即使PROCESS语句结构括号内容,如“进程标号”、“敏感信号表”能够省略,但普通都需标明最少一个敏感信号。这是因为当进程中定义任一敏感信号发生改变时,进程马上“开启”,即进程中次序语句就立刻次序执行一次,当进程中最终一个语句执行完成后,执行过程将返回到第一个语句,以等候下一次敏感信号改变,如此循环往复以至无限。不然若不标明敏感信号,除了初始化阶段,进程永远不会被再次激活。19复习资料VHDL大题课件第19页第19页(3)进程说明语句部分主要定义一些局部变量,可包含数据类型、常数、属性、子程序等。但需注意,在进程说明语句中不允许定义信号。(4)在进程中,只能将信号列入敏感信号表,而不能将变量列入敏感信号表,即进程只对信号敏感,而对变量不敏感。(5)进程开启是由敏感信号表中敏感信号改变激活,但也可用WAIT语句(有四种书写格式),替换敏感信号表功效。20复习资料VHDL大题课件第20页第20页WAIT语句WAIT语句有以下四种形式:

WAIT --无限等候

WAITON敏感信号表;--敏感信号量改变,进程开启

WAITUNTIL条件表示式;--表示式成立时,进程开启

WAITFOR时间表示式;--时间到,进程开启WAIT语句是进程(含过程)同时语句,是进程开启点。在进程(或过程)中,当执行到WAIT等候语句时,运行程序将被挂起,直到满足此语句结束挂起条件后,将重新开始执行进程(或过程)中程序。WAIT作为进程体一条语句同进程体内其它语句次序执行。未设置挂起条件,表示永远挂起,即无限等候。2.敏感信号等候语句,即敏感信号一旦发生改变将结束挂起,再次开启进程。VHDL要求,已列出敏感信号表进程中不能使用任何形式WAIT语句。普通,WAIT语句可用于进程中任何地方。3.条件等候语句。被此语句挂起进程需满足以下两个条件才能结束挂起状态,重新开启:条件表示式中所含信号发生了改变;此信号改变后,且满足WAIT语句所设条件。两条件缺一不可,且必须依照以上次序完成。4.超时等候语句(此语句不可综合,故不再讨论)。例

1:利用WAIT语句设计与非门电路。nandx: PROCESS BEGIN y<=aNANDb; WAITONa,b; ENDPROCESSnandx;次序语句21复习资料VHDL大题课件第21页第21页并发描述语句3.2.9COMPONENT语句

元件例化语句使我们能够把原来设计好VHDL功效模块看成元件一样用在其它VHDL文件中。元件说明语句书写格式为:

COMPONENT元件名 [GENERIC说明;]

PORT说明;

ENDCOMPONENT;元件例化语句格式为:标号:元件名GENERICMAP(参数,…)标号:元件名PORTMAP(连接端口,…)元件例化:即引入一个连接关系,它将预先设计好设计实体定义为一个元件,然后利用特定语句将此元件与当前设计实体中指定端口相连接,从而为当前设计实体引入一个新低一级设计层次。元件例化是使VHDL设计实体组成自上而下层次化设计一个主要路径。元件例化能够是多层次。22复习资料VHDL大题课件第22页第22页例1:半加器ENTITYh_adderIS PORT(a,b :IN STD_LOGIC; s,c :OUT STD_LOGIC);ENDh_adder;ARCHITECTURErtlOFh_adderISBEGIN c<=aANDb; s<=aXORb;ENDrtl;例2:全加器abcsh_adderabcsh_adderacibscoc1c2s1u1u2并发描述语句23复习资料VHDL大题课件第23页第23页例2:全加器ENTITYf_adderIS PORT(a,b,ci :IN STD_LOGIC; s,co :OUT STD_LOGIC);ENDf_adder;ARCHITECTUREarcOFf_adderIS

COMPONENTh_adder PORT(a,b :IN STD_LOGIC; s,c :OUT STD_LOGIC); ENDCOMPONE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论