




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章VHDL基本语句与基本设计,EDA技术与VHDL设计,7.1,顺序语句,并行语句,VHDL组合逻辑电路设计,VHDL时序逻辑电路设计,7.2,7.3,7.4,VHDL基本语句与基本设计,顺序语句的执行顺序与书写顺序一致,与传统软件设计语言的特点相似。顺序语句只能用于进程和子程序中,被用来描述组合逻辑和时序逻辑。常用的顺序描述语句有:赋值语句、IF语句、CASE语句、LOOP语句、NEXT语句、EXIT语句、子程序、RETURN语句、WAIT语句和NULL语句。,7.1顺序语句,信号赋值语句:,7.1.1赋值语句,赋值目标=赋值源;,变量赋值语句:,赋值目标:=赋值源;,根据语句所设条件,if语句有选择地执行指定的语句,其语法格式由简单到复杂可以分为三种:(1)具有开关控制的IF语句(2)具有二选择控制的IF语句(3)具有多选择控制的IF语句,7.1.2IF语句,一般格式:if条件then顺序语句;endif;当条件成立,执行顺序语句,否则跳过语句。,具有开关控制的IF语句,if(EN=1)thenA=B;-当条件EN=1时,A随B变化;否则,该语句不执行endif;,具有开关控制的IF语句举例,一般格式:if条件then顺序语句;else顺序语句;endif;条件成立执行then后顺序语句;否则执行else后的顺序语句。,具有二选择控制的IF语句,ifOE=0thenY顺序语句;.whenothers=顺序语句;endcase;,7.1.3CASE语句,一般格式:(1)关键词others只能出现一次,且只能作为最后一种条件取值。使用others的目的是为了使条件句中的所有选择值能涵盖表达式的所有取值,以免综合器会插入不必要的锁存器。,使用CASE语句注意事项,一般格式:(2)条件句中的选择值必须在表达式的取值范围内。(3)case语句中每一条件句的选择值只能出现一次,不能有相同选择值的条件语句出现。(4)case语句执行必须选中,且仅能选中所列语句中的一条。,使用CASE语句注意事项,(1)WHEN取值=顺序语句:(2)WHEN取值|取值|取值=顺序语句:(3)WHEN取值TO取值=顺序语句;(4)WHEN取值DOWNTO取值=顺序语句;(5)WHENOTHERS=顺序语句;,CASE语句中WHEN字句书写格式,d0d0d1d2d310;ENDLOOPL2;,无限LOOP语句,标号:FOR循环变量IN离散范围LOOP顺序处理语句;ENDLOOP标号;注意:(1)循环变量是LOOP内部自动声明的局部量,仅在LOOP内可见。(2)离散范围必须是可计算的整数范围。循环次数范围规定LOOP语句中的顺序语句被执行的次数。,FOR_LOOP语句,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYparity_checkISPORT(a:INSTD_LOGIC_VECTOR(7DOWNTO0);y:OUTSTD_LOGIC);ENDENTITYparity_check;ARCHITECTUREoneOFparity_checkISBEGINPROCESS(a)VARIABLEtmp:STD_LOGIC;BEGINtmp:=1;FORiIN0TO7LOOPtmp:tmpxora(i);ENDLOOP;y=tmp;ENDPROCESS;END;,用FORLOOP语句描述8位奇偶校验电路,标号:WHILE循环条件LOOP顺序处理语句;ENDLOOP标号;例:sum:=0;i:=0;abcd:WHILE(i10)LOOPsum:=sum+i;i:=i+1;ENDLOOPabcd;,WHILE_LOOP语句,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYparity_checkISPORT(a:INSTD_LOGIC_VECTOR(7DOWNTO0);y:OUTSTD_LOGIC);ENDENTITYparity_check;ARCHITECTUREoneOFparity_checkISBEGINPROCESS(a)VARIABLEtmp:STD_LOGIC;VARIABLEi:INTEGER;BEGINtmp:=0;i:=0;WHILE(i8)LOOPtmp:tmpxora(i);i:=i+1;ENDLOOP;y=tmp;ENDPROCESS;END;,用WHILE_LOOP语句描述8位奇偶校验电路,在LOOP语句中,NEXT语句用来跳出本次循环。其格式分三种:(1)NEXT:无条件终止当前的循环,跳回到本次循环LOOP语句开始处,开始下次循环。(2)NEXT:标号;无条件终止当前的循环,跳转到指定标号的LOOP语句开始处,重新开始执行循环操作。(3)NEXT标号WHEN条件表达式;,7.1.5NEXT语句,L1:WHILEi10LOOPL2:WHILEj20LOOPNEXTL1WHENi=j;ENDLOOPL2;ENDLOOPL1;,NEXT语句举例,EXIT语句是LOOP语句的内部循环控制语句,作用是结束循环状态。而区别在于NEXT语句是跳向LOOP语句的起始点,EXIT语句则是跳向LOOP语句的终点。EXIT的语句格式也有3种:(1)EXIT;(2)EXITLOOP标号;(3)EXITLOOP标号WHEN条件表达式;,7.1.6EXIT语句,PROCESS(a)VARIABLEint_a:INTEGER;BEGINint_a:=a;FORiIN0TOmax_limitLOOPIF(int_a=0)THENEXIT;ELSEint_a:=int_a-1;ENDIF;ENDLOOP;ENDPROCESS;,EXIT语句举例,在进程中(包括过程中),当执行到WAIT(等待语句时),运行程序将被挂起,直到满足此语句设置的结束挂起条件后,才重新开始执行进程或过程中的程序。WAIT语句有以下四种不同的语句格式:(1)WAIT-无限等待(2)WAITON-敏感信号量变换(3)WAITUNTIL-条件满足(可综合)(4)WAITFOR-时间到,7.1.7WAIT语句,进程中其一般格式为:WAITON信号,信号;例如,以下两种描述是完全等价的:PROCESS(a,b)PROCESSBEGINBEGINy表达式);其中表达式也称为实参,它可以是一个具体的数值,也可以是一个标识符,是当前调用程序中过程形参的接受体。,过程调用,函数调用与过程调用十分类似,不同之处是调用函数将返回一个指定类型的值,函数的参量只能是输入值。函数调用的一般格式为:函数名(参数名=表达式,参数名=表达式);,函数调用,7.2并行语句,并行信号赋值语句进程语句并行过程调用语句元器件例化语句生成语句,33/38,7.2.1并行信号赋值语句,三种并行信号赋值:简单信号赋值条件信号赋值选择信号赋值,34/38,1.并行简单信号赋值语句,35/38,2.条件信号赋值语句,36/38,用when-else语句描述2选一的MUX,entitymux2to1isport(a,b:inbit;sel:inbit;y:outbit);endmux2to1;architectureoneofmux2to1isbeginy=bwhensel=1elsea;endone;,信号定义成比特类型,可取0和1。,如果把=1去掉,结果如何?,37/38,用when-else语句描述4选1的MUX,entitymux4to1isport(a,b,c,d:inbit;sel1,sel0:inbit;y:outbit);endmux4to1;architectureoneofmux4to1isbeginy=awhen(sel1=0)and(sel0=0)elsebwhen(sel1=0)and(sel0=1)elsecwhen(sel1=1)and(sel0=0)elsed;endone;,问题:如果00时选a,01时选b,10和11时都选c,怎么办?,y=awhen(sel1=0)and(sel0=0)elsebwhen(sel1=0)and(sel0=1)elsecwhen(sel1=1)and(sel0=0)elsed;,38/38,3.选择信号赋值语句,39/38,问题:如果00时选a,01时选b,10和11时都选c,怎么办?,architectureoneofmux4to1issignalsel:bit_vector(1downto0);beginsel(1)=sel1;sel(0)=sel0;withselselecty=awhen00,bwhen01,cwhenothers;endone;,entitymux4to1isport(a,b,c:inbit;sel1,sel0:inbit;y:outbit);endmux4to1;,注意:whenothers包含那些未被列出的可能。,40/38,如果信号类型换成STD_LOGIC,libraryieee;useieee.std_logic_1164.all;entitymux4to1isport(a,b,c:instd_logic;sel1,sel0:instd_logic;y:outstd_logic);endmux4to1;,architectureoneofmux4to1issignalsel:std_logic_vector(1downto0);beginsel(1)=sel1;sel(0)=sel0;withselselecty=awhen00,bwhen01,cwhenothers;endone;,41/38,VHDL模型并行信号赋值,libraryieee;useieee.std_logic_1164.all;entitycmpl_sigisport(a,b,sel:instd_logic;x,y,z:outstd_logic);endcmpl_sig;,architecturelogicofcmpl_sigisbeginx=(aandnotsel)or(bandsel);y=awhensel=0elseb;withselselectz=awhen0,bwhen1,0whenothers;endlogic;,信号赋值执行是并行的,与语句放置的位置先后无关。,42/38,7.2.2进程语句,过程语句有(1)隐含的过程:并行信号赋值语句元件语句过程的敏感信号在表达式右边。(2)直接的过程:也是并行语句只包括顺序语句,-ExplicitProcessStatementPROCESS(敏感信号表)ConstantDeclarationsTypeDeclarationsVariableDeclarationsBEGIN-顺序语句#1;-.-顺序语句#N;ENDPROCESS;,43/38,Process语句的执行,process语句靠wait语句和敏感信号表来控制语句执行次数。敏感信号表隐含着在process的后面有一个wait语句。一个process可以有多个wait语句。Process必须具有敏感信号表和wait语句中的一个。.注意:逻辑综合将对wait和敏感信号表作出限制。,process(a,b)begin-sequentialstatementsendprocess;processbegin-sequentialstatementswaiton(a,b);endprocess;,44/38,多进程语句,一个构造体可以有多个process。process之间是并发的。在process内部,语句执行是有顺序的。,构造体,process1,processN,信号,信号,45/38,VHDL模型多进程语句,process语句的执行是并行的,与位置没有关系。,在process内的语句执行是顺序的。,process语句内也可进行信号赋值。,46/38,信号赋值延时(Delay),信号赋值可以在process语句内部也可以在外部进行(如三种并行赋值语句)。信号赋值发生时会有时延,延时的类型有两种:固有(Inertial)延时(缺省的)信号在传输过程中会时间长度增加。传输延时无论距离多近,都有传输延时。在VHDL中,除此之外的延时均不考虑。,47/38,请看两个程序是否等效?,并行赋值语句右边的变量全为敏感信号。,48/38,这两个程序等效吗?,不等效!process内部时顺序语句。要从时序上看。,49/38,变量说明,变量在process内部说明变量的说明使用::=信号说明使用::=;variabletemp:std_logic_vector(7downto0);变量赋值是立即执行的,没有延时。,50/38,为变量赋值,variabletemp:std_logic_vector(7downto0);所有比特:temp:=“10101010”;temp:=x”AA”;(1076-1993)单个比特:temp(7):=1;几个比特:temp(7downto4):=“1010”;单个比特使用单引号,多个比特使用双
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023六年级数学下册 三 图形的运动第5课时 欣赏与设计说课稿 北师大版
- 建材买卖合同(墙地砖类)
- 第8课 《人间词话》十则王国维说课稿-2025-2026学年高中语文统编版 选修:中华传统文化专题研讨-统编版
- 9.1《念奴娇•赤壁怀古》教学设计 2024-2025学年统编版高中语文必修上册
- 第3课 插入图片教学设计-2023-2024学年小学信息技术(信息科技)四年级下册粤科版
- 1.3 氧化还原反应(习题)(含答案解析)-2024-2025学年高一化学同步教学教学设计+讲义(人教版2019必修第一册)
- Unit 9 Section B 2a~3c Self check说课稿-2025-2026学年人教版英语七年级上册
- 2.4 匀变速直线运动规律的应用说课稿-2025-2026学年高中物理上海科教版共同必修1-沪教版2007
- 湘潭县辅警考试题库2025
- 环保型出渣车劳务分包与生态修复合同
- 视频监控调取记录表
- 第2章 Windows 10操作系统
- 教研活动:幼儿园班级主题墙创设课件
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、异丙醇和正丁醇检验
- 酒店住宿水单模板-可修改
- SF-三福的历史与文化 v2.0
- 幼儿园故事《小红帽》PPT模板
- GB/T 6723-2017通用冷弯开口型钢
- GB/T 4456-2008包装用聚乙烯吹塑薄膜
- 葫芦丝(初学教学)-课件
- 李家小学教师绩效考核实施方案
评论
0/150
提交评论