欢迎来到天天文库
浏览记录
ID:46948985
大小:382.50 KB
页数:41页
时间:2019-12-01
《VHDL语言应用基础2(描述语句)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PART4TheBasicStatementsinVHDLCode一、SequentialAssignmentStatements顺序语句——在进程(PROCESS)或子程序(PROCEDURE)、函数(FUNCTION)中使用,按程序书写的顺序自上而下、一个一个语句地执行;并行语句——出现在结构体中,各语句并行(同步)执行,与书写的顺序无关。1.IFStatement顺序语句用于进程过程或函数之中,为算法描述提供了IF语句、CASE语句、LOOP语句。可以用于实现两种或两种以上的条件分支判断。Theform:IFBoolea
2、nexpressionTHENstatement;[ELSIFBooleanexpressionTHENstatement;]…ENDIF1)IFexpressionTHENstatement;ENDIFThegeneralform:2)IFexpressionTHENstatement;ELSEstatement…ENDIF3)IFexpressionTHENstatementELSIFexpressionTHENstatement]…ENDIF4)IFexpressionTHENIFexpressionTHENstatem
3、ent…ENDIFENDIF2.CASEStatementCASE语句用于两路或多分支判断结构,它以一个多值表达式为判断条件,依条件式的取值不同而实现多路分支。格式为:CASEexpressionISWHENconstant_value=>statement;[WHENOTHERS=>statement;]ENDCASE不是运算符,只表示一种对应关系。上述CASE语句中的条件表达式可以有如下4种不同的表示形式:当CASE和IS之间的表达式的取值满足指定的条件表达式的值时,程序将执行后面的,由符号=>所指的顺序处理语句。条件表达
4、式的值可以是一个值;或者是多个值的“或”关系;或者是一个取值范围;或者表示其它的缺省值。使用CASE语句时应注意:条件句的选择值应在表达式的取值范围内.除非所有条件句中的选择值能完全覆盖case语句中表达式的取值,否则最后一个条件句中的选择必须用“others”表示.case语句中每一条件句的选择值只能出现一次,不能有相同选择值的条件语句出现.case语句执行中必须选中且只能选中所列条件语句中的一条.LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcoderISPORT(I:INSTD
5、_LOGIC_VECTOR(0TO7)Y:OUTSTD_LOGIC_VECTOR(1TO3));ENDcoder;EntityDesign功能:设计元件外观ARCHITECTUREa1orcoderISBeginIF(I(7)=‘1’)THENY<=“111”;ELSIF(I(6)=‘1’)THENY<=“110”;ELSIF(I(5)=‘1’)THENY<=“101”;ELSIF(I(4)=‘1’)THENY<=“100”;ELSIF(I(3)=‘1’)THENY<=“011”;ELSIF(I(2)=‘1’)THENY<=“
6、010”;ELSIF(I(1)=‘1’)THENY<=“001”;ELSEY<=“000”;ENDa1;ArchitectureDesign功能:描述输入和输出之间的逻辑关系ENDIF;PROCESS(I)BEGINENDPROCESS;AbouttheDon’tCaresDon’tcarescanbeusedtoadvantageinthedesignoflogiccircuits.Sincetheinputvaluationswillneveroccur,thedesignermayassumethatthefunctio
7、nvalueforthesevaluationsiseither1or0,whicheverismoreusefulintryingtofindaminimum-costimplementation.010X01X00X010101Infact,thereisnowaysinVHDLcodesaboutthedon’tcares.IF与CASE比较IF语句中条件句之间是相与的关系,CASE语句中条件句之间是相或的关系。2.CASE条件语句必须将所有情况列出而IF则不必。3.IF语句可实现优先级,CASE语句则不可以。3.LOO
8、PStatement用于循环控制,与LOOP有关的五种语法其格式如下:(1)[循环标号:]LOOP顺序语句;ENDLOOP[循环标号];(2)[循环标号:]FOR循环变量IN循环次数范围LOOP顺序语句;ENDLOOP[循环标号];(3)[循环标号:]WHILE条件LOOP顺
此文档下载收益归作者所有