- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]chapter3 VHDL
主讲人 曾繁泰 山东大学 VHDL程序设计教程 主讲人 曾繁泰 第3章 VHDL语法基础 第3章 语法基础 VHDL有两种类型的语句: 1. 顺序语句 2. 并发语句 顺序语句(1) VHDL语句是并发语言,大部分语句是并发执行的。但是在进程、过程、块语句和子程序中,还有许多顺序执行语句。顺序语句有两类: 一类是真正的顺序语句,一类是可以做顺序语句、又可以做并发语句、具有双重特性的语句。这类语句放在进程、块、子程序之外是并发语句,放在过程、块、子程序之内是顺序语句。 顺序语句(2) 顺序语句: 1.WAIT 语句 2.IF 语句 3.CASE 语句 4.L00P 语句 5.EXIT 语句 6.RETURN语句 7.NULL语句 8.REPORT语句 顺序语句(3) 并发/顺序 二重性语句 断言语句(ASSERT) 过程调用语句 变量赋值语句 信号代入语句 顺序语句(4) 顺序语句(Sequential Statement)具有如下特征: 顺序语句只能出现在进程或子程序、块中。 顺序语句描述的系统行为有时序流、控制流、条件分支和迭代算法等。 顺序语句用于定义进程、子程序等的算法。 顺序语句的功能有算术、逻辑运算;信号、变量的赋值;子程序调用等 。 IF语句(1) IF语句根据指定的条件来确定语句执行顺序,共有3种类型。 (1) 用于门闩控制的IF语句 这种类型的IF语句一般书写格式为: IF 条件 THEN 顺序处理语句 END IF; IF语句(2) (2) 用于二选一控制的IF语句 这种类型的语句书写格式为: IF 条件 THEN 顺序处理语句甲; ELSE 顺序处理语句乙; END IF; IF语句(3) (3) 用于多选择控制的IF语句 这种类型的IF语句书写格式为: IF 条件1 THEN 顺序语句1; ELSIF 条件2 THEN 顺序语句2; … ELSIF 条件n THEN 顺序语句n; ELSE 顺序语句n+1; END IF; IF语句(4) P1:PROCESS(clk) BEGIN IF (clkEVENT AND clk=1) THEN q = d; END IF; END PROCESS P1; CASE语句(1) CASE语句常用来描述总线行为、编码器和译码器的结构。CASE语句可读性好,非常简洁。CASE语句的一般格式为: CASE 条件表达式 IS WHEN条件表达式的值 = 顺序处理语句; END CASE; CASE语句(2) CASE sel IS --CASE语句条件表达式sel WHEN 0 = q = d0; --当条件表达式值=0时,执行代入语q=d0 WHEN 1 = q = d1; WHEN 2 = q = d2; WHEN 3 = q = d3; END CASE; CASE语句(3) IF语句是有序的,先处理最起始、最优先的条件,后处理次优先的条件。 case语句是无序的,所有表达式值都并行处理。 case语句中的条件表达式的值必须举穷尽,又不能重复。 不能穷尽的条件表达式的值用OTHERS表示。 含有任意项输入的条件表达式,对应用于任意项输出,而不能有确定输出 。 CASE语句(4) ARCHITECTURE example_others OF decoder_154 IS SIGNAL indata: STD_LOGIC_VECTOR(3 DownTO 0); BEGIN Indata = S3 S2 S1 S0; P1:PROCESS (Indata, G1,G2) IF( G1=0 AND G2=0) THEN CASE indata IS WHEN 0000= y =01 11 11 11 11 11 11 11; WHEN 0001= y =10 11 11 11 11 11 11 11; … CASE语句(5) WHEN 1110= y =11 11 11 11 11 11 11 01; WHEN 1111= y =11 11 11 11 11 11 11 10; WHEN others = y =XX XX XX XX XX XX XX XX; - -遇到任意项,y的输出不确定G1,G2 ELSE - -不等零,y高电平输出,154芯片未工作 y=1111 1111 1111 1111
文档评论(0)