第五章并行语句(Concurrent).pptVIP

  • 5
  • 0
  • 约1.39万字
  • 约 43页
  • 2018-10-11 发布于河北
  • 举报
第五章并行语句(Concurrent)

第五章 并行语句(Concurrent) 并行语句 VHDL语言与传统软件描述语言最大的不同 有多种语句格式,包括:并行信号赋值语句、进程语句、块语句、并行过程调用语句、 元件例化语句、生成语句 各种并行语句在结构体中的执行是同步进行的,或者说是并行运行的,其执行方式与书写的顺序无关。 在执行中,并行语句之间可以有信息往来,也可以是互为独立、互不相关、异步运行的(如多时钟情况)。 每一并行语句内部的语句运行方式可以有两种不同的方式,即并行执行方式(如块语句)和顺序执行方式(如进程语句)。 一、并行信号赋值语句 1、简单并行信号赋值语句 信号 = 表达式; y = a OR b OR c; x =(a AND NOT(s(1)) AND NOT(s(0))) OR (b AND NOT(s(1)) AND s(0)) OR (c AND s(1) AND NOT(s(0))) OR (d AND s(1) AND s(0)) ; 2、条件信号赋值语句( When_Else ) 格式:目的信号量=表达式1 WHEN 条件1 ELSE 表达式2 WHEN 条件2 ELSE 表达式3 WHEN 条件3 : ELSE 表达式n; When_Else语句举例 x = a when (s = “00”) else b when (s = “01”) else c when (s = “10”) else d ; When_Else语句举例 j = w when (a = ‘1’) else x when (b = ‘1’) else y when (c = ‘1’) else z when (d = ‘1’) else ‘0’ ; 优先级编码器 encode = “111” when D(7) = ‘1’ else “110” when D(6) = ‘1’ else “101” when D(5) = ‘1’ else “100” when D(4) = ‘1’ else “011” when D(3) = ‘1’ else “010” when D(2) = ‘1’ else “001” when D(1) = ‘1’ else “000” when D(0) = ‘1’ else “000”; WITH 表达式样 SELECT 目的信号量=表达式1 WHEN 条件1, 表达式2 WHEN 条件2, : 表达式n WHEN 条件n; With_Select_Then语句举例 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY cmpl_sig IS PORT ( a, b,c,d,s : IN STD_LOGIC; x : OUT STD_LOGIC); END cmpl_sig; ARCHITECTURE logic OF cmpl_sig IS BEGIN WITH s SELECT x =a WHEN “00”, b WHEN “01”, c WHEN “10”, d WHEN OTHERS; With_Select_Then语句举例 每个WHEN子句可以包含多个条件: WITH s SELECT x = a WHEN ”000” | “001” | “010”, b WHEN 101 | 111, c WHEN OTHERS; 并行语句中的条件赋值语句和选择赋值语句分别等价于只含有条件结构(if)和选择结构(case)的进程。 要注意并行语句中没有if和case语句的形式

文档评论(0)

1亿VIP精品文档

相关文档