在系统可编程技术:第12讲 VHDL语言语言主要描述语句_第1页
在系统可编程技术:第12讲 VHDL语言语言主要描述语句_第2页
在系统可编程技术:第12讲 VHDL语言语言主要描述语句_第3页
在系统可编程技术:第12讲 VHDL语言语言主要描述语句_第4页
在系统可编程技术:第12讲 VHDL语言语言主要描述语句_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、在系统可编程技术第12讲 VHDL语言语言主要描述语句VHDL主要描述语句并行处理语句顺序处理语句在结构体(ARCHITECTURE)中执行的语句在进程(PROCESS)函数(FUNCTION)过程(PROCEDURE)中执行的语句硬件描述的特点高级语言的特点 VHDL顺序语句顺序语句只能出现在进程(Process)、函数(Function)和过程(Procedure)中;顺序语句像高级计算机语言一样,按其出现的先后顺序依次执行;用来描述复杂的逻辑关系及逻辑运算。常用的顺序处理语句有:信号代入语句变量赋值语句CASE语句IF语句LOOP语句 VHDL顺序语句1、信号代入语句格式:目的信号量=信

2、号量表达式;目的信号量=信号量表达式 AFTER N ns;注意:信号代入语句和关系操作符相同“=”,但其使用位置不一样,应根据上下文加以判断;信号代入语句两边信号量的数据类型及位长度必须一致。延时只在仿真时起作用,逻辑综合时被忽略。信号赋值不是立即发生,而是在进程结束时。 VHDL顺序语句例:architecture abc of example issignal c :STD_LOGIC;beginPROCESS(a,b)beginc=a and b after 10 ns;a=1;b=1;b=0;out=c;end process;end abc;注意信号定义的位置 VHDL顺序语句2、

3、变量代入语句格式:变量:=表达式;注意:变量是局部量,只能在所定义的进程、过程、和函数中使用。变量赋值是立即发生,不能加延时。在进程中描述逻辑关系及算法时最好使用变量,以避免出错。进程结束时,变量的结果只能由信号带出。 VHDL顺序语句例:architecture abc of example isbeginPROCESS(a,b)variable tmp:std_logic;begintmp:=a and b;out顺序处理语句; WHEN 选择值 =顺序处理语句; WHEN OTHERS =顺序处理语句; End case;注意:CASE语句至少包含一个条件句;CASE语句中条件表达式的值

4、必须列举穷尽,但不能重复;无法穷举,用OTHERS表达。 VHDL顺序语句例:四选一数据选择器architecture abc of example is signal sel:std_logic_vector(1 downto 0);beginsel f f f f null;end case;end process;end abc;为什么还要others? VHDL顺序语句4、IF语句格式1:IF 条件 THEN 顺序处理语句;END IF;格式2:IF 条件 THEN 顺序处理语句;ELSE 顺序处理语句;END IF;格式3:IF 条件1 THEN 顺序处理语句;ELSIF 条件2 T

5、HEN 顺序处理语句;ELSE 顺序处理语句;END IF;注意:IF 语句隐含有优先级的关系,可用来设计具有优先权的电路 。 VHDL顺序语句例:四选一数据选择器architecture abc of example is signal sel:std_logic_vector(1 downto 0);beginsel=b &a;process(sel)begin IF sel=“00” then f=i0;ELSIF sel=“01”then f=i1; ELSIF sel=“10”then f=i2; ELSIF sel=“11”then f=i3; END IF;end process

6、;end abc;不需穷尽所有情况 VHDL顺序语句5、LOOP语句FOR循环格式:标号:FOR 循环变量 IN 循环次数范围 LOOP顺序处理语句;END LOOP;注意:循环变量只是一个临时变量,由LOOP语句自动定义,不需预先定义;LOOP语句范围内不要再使用其它与该循环变量同名的标识符。循环次数完成后程序自动退出循环。 VHDL顺序语句例: 8位奇偶校验电路architecture abc of example isbeginPROCESS(a)variable tmp:std_logic;begintmp:=0;FOR i IN 0 to 7 LOOPtmp:=tmp XOR a(i

7、);END LOOP;Y=tmp;end process;end abc;能否定义为信号? VHDL顺序语句5、LOOP语句WHILE循环格式:标号:WHILE 循环控制条件 LOOP顺序处理语句;END LOOP;注意:循环控制条件没有直接给出循环次数,可以是任何条件表达式,条件为“真”,进行循环,条件为“假”,退出循环。条件表达式需初始化。 VHDL顺序语句例: 8位奇偶校验电路architecture abc of example isbeginPROCESS(a)variable tmp:std_logic;begintmp:=0;i:=0;WHILE (i8) LOOPtmp:=tm

8、p XOR a(i);i:=i+1;END LOOP;Y=tmp;end process;end abc;注意变量 I 初始化和在循环中的加1处理 VHDL并行语句并行语句是在结构体中执行的语句;语句的执行与程序书写的顺序无关,故可以颠倒书写顺序,不影响程序设计功能;它体现了硬件电路的运行特点。常用的顺序处理语句有:进程语句并发信号代入语句条件信号代入语句选择信号代入语句BLOCK语句 VHDL并行语句1、进程语句(PROCESS)语句格式:标号:PROCESS(信号1,信号2,)BEGINEND PROCESS 标号;注意:进程语句本身是并行语句,进程的内部才是顺序执行;同一结构体中,可以有

9、多个进程,它们之间是并行关系。进程之间通过信号传递信息。 VHDL并行语句例:architecture abc of example issignal c :STD_LOGIC;beginJC1:PROCESS(a,b)begin c=a and b after 10 ns;end process JC1;JC2:PROCESS(c)beginif (c=1 ) then d=1;else d=0;end process JC2;end abc;两进程通过信号C传递信息 VHDL并行语句2、信号代入语句格式:目的信号量=信号量表达式;目的信号量=信号量表达式 AFTER N ns;注意:进程中

10、出现的代入语句称为信号代入语句;结构体中出现的代入语句称为并发信号代入语句。 VHDL并行语句例:architecture abc of example issignal c :STD_LOGIC;beginx= a or b;y= a xnor b;JC1:PROCESS(a,b)begin c=a and b after 10 ns;end process JC1;end abc;并发信号代入语句信号代入语句 VHDL并行语句3、条件信号代入语句格式:目的信号量=表达式1 WHEN 条件1 ELSE表达式 2 WHEN 条件2 ELSE表达式n;注意:条件信号代入语句的功能与进程中的IF语

11、句相同;ELSE不能省略,只有最后语句才有分号;有优先级关系,第一句优先级最高;允许有重叠现象。 VHDL并行语句例: 8-3优先权编码器architecture abc of example isbeginout=“000” when input(0)=1 else “001” when input(1)=1 else“010” when input(2)=1 else“011” when input(3)=1 else“100” when input(4)=1 else“101” when input(5)=1 else“110” when input(6)=1 else“111” whe

12、n input(7)=1 else“XXX”;end abc; VHDL并行语句4、选择信号代入语句格式:WITH 表达式 SELECT目的信号量=表达式1 WHEN 条件1,表达式 2 WHEN 条件2,表达式n WHEN OTHERS ;注意:选择信号代入语句的功能与进程中的CASE语句相同;每句后是逗号,只有最后语句才有分号;无优先级关系;不允许条件有重叠现象,条件必须涵盖全部。 VHDL并行语句例: 4选1数据选择器architecture abc of example isbeginsel=a & b;with sel select f =i0 when “00”,i1 when “01”,i2 when “10”,i3 when “11”,x when others;end abc; VHDL并行语句5、BLOCK(块)语句格式:标号:BLOCKBEGIN并行处理语句;END BLOCK 标号;注意:块语句可以看成是结构体的子模块;块语句可以使结构体层次鲜明,结构明确;块内定义的数据类型

温馨提示

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

评论

0/150

提交评论