- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6次课 _VHDL顺序语句(下)20121023
第6次课 VHDL顺序语言;IF 条件句 THEN --第一种IF语句,用于门控制
顺序语句;
END IF;;IF语句特点;4.2.2 CASE语句;CASE 语句特点;4.4.3 LOOP语句;3. WHILE_LOOP语句;LOOP 语句总结;本次内容;4.4.4 NEXT语句;【例4-39】第三种NEXT语句的使用实例。
…
L1: FOR n IN 1 TO 8 LOOP
s1: a(n):=0;
NEXT WHEN (b=c);
s2: a(n+8):=0;
END LOOP L1;;【例4-40】
…
L_x: FOR n IN 1 TO 8 LOOP
s1: a(n):=0;
k:=0;
L_y: LOOP
s2: b(k):=0;
NEXT L_x WHEN(e>f);
s3: b(k+8):=0;
k:=k+1;
END LOOP L_y;
END LOOP L_x;
…;4.4.5 EXIT语句;【例4-41】两元素位矢量值比较程序
SIGNAL a, b: STD_LOGIC_VECTOR (1 DOWNTO 0);
SIGNAL a_less_then_b: BOOLEAN;
…
a_less_then_b=FALSE; --设初始值
FOR i IN 1 DOWNTO 0 LOOP (循环2次)
IF (a(i)=1 AND b(i)=0) THEN
a_less_then_b=FALSE; --ab
EXIT;
ELSIF (a(i)=0 AND b(i)=1) THEN
a_less_then_b=TRUE; --ab
EXIT;
ELSE
NULL;
END IF;
END LOOP; --当i =1时返回LOOP语句继续比较;WAIT 语句;4.4.6 WAIT等待语句;PROCESS --未列出任何敏感信号
BEGIN
…
WAIT ON s1, s2; --进程将在此处被挂起,直到s1或s2中
--任一信号发生改变时,进程才重新开始
END PROCESS;
等价于
PROCESS(s1,s2) --有敏感信号s1,s2;当其任一信号发
生改变时,进程才重新开
BEGIN
…
END PROCESS;;4.4.7 NULL空操作语句;VHDL顺序语句总结;【例1】
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY control IS
PORT (a, b, c: IN BOOLEAN;
output: OUT BOOLEAN);
END control;
ARCHITECTURE example OF control IS
BEGIN
PROCESS (a, b, c)
VARIABLE n: BOOLEAN;
BEGIN
IF a THEN n:=b;
ELSE n:=c;
END IF;
output=n;
END PROCESS;
END example;;例4-29二选一选择器对应的硬件电路;例4-32:4选1多路选择器;【例 3】
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY LOOP_stmt IS
PORT ( a: IN BIT_VECTOR (0 TO 3);
out1: OUT BIT_VECTOR (0 TO 3));
END LOOP_stmt;
ARCHITECTURE example OF LOOP_stmt IS
BEGIN
PROCESS (a)
VARIABLE b: BIT;
BEGIN
b:=1;
FOR i IN 0 TO 3 LOOP
b:=a(3-i)AND b;
out1(i)=b;
END LOOP;
END PROCESS;
END example;; 补充
Quartus II应用向导 ;步骤:
1.在D /
文档评论(0)