并置运算符.ppt
并置运算符、并置运算符、case语句语句1并置运算符&表示将操作数(如逻辑位0或1)或是数组合并起来形成新的数组。n=a&b,设,设a和和b都为标准逻辑位,则必须都为标准逻辑位,则必须在结构体中定义信号在结构体中定义信号n为为std_logic_vector(1 downto o),即两位的标准逻辑矢量。,即两位的标准逻辑矢量。n=a&b 的作用是令:的作用是令:n(1)=a,n(0)=b。当当 a=0 and b=0 时,即时,即n=”00”;当当a=0 and b=1时,即时,即n=”01”;当当a=1 and b=0时,时,即即n=”10”;当当a=1 and b=1时,即时,即n=”11”.24选1数据选择器library ieee;use ieee.std_logic_1164.all;entity mux41 is port(n0,n1,n2,n3,a,b:in std_logic;y:out std_logic);end mux41;architecture one of mux41 is signal s:std_logic_vector(1 downto 0);begin s=a&b;y=n0 when s=“00”else n1 when s=“01”else n2 when s=“10”else n3 when s=“11”else X;end one;3signal信号定义和数据对象信号定义和数据对象 signal Q1:std_logic;在结构体中定义信号Q1,实际上,Q1相当于器件内定义的内部节点信号,它可以如一根连线一样在整个结构中传如一根连线一样在整个结构中传递信息递信息。数据的进出不像端口信号那样受限制,因此无需定义其端口模式(如IN,OUT)。signal为数据对象。4 数据对象包括三类:信号(signal)、变量(variable)、常量(constant)。数据对象相当于一种容器,它接受不同数据类型的赋值。数据对象中各个类型的用途:(1)、常量:恒定逻辑值。全局量。(2)、变量:暂存某些值的载体。局部量,只能用于process、function、procedure,不能把信息带出所定义的当前结构。(3)、信号:硬件连接线,包括输入/输出端口。全局量,用于entity、architecture、package。后续详细讲解。5一位半加器的设计library ieee;use ieee.std_logic_1164.all;entity h_adder isport(a,b:in std_logic;so,co:out std_logic);end h_adder;architecture one of h_adder issignal n:std_logic_vector(1 downto 0);begin process(a,b)begin n so=0;co so=1;co so=1;co so=0;co null;end case;end process;end one;6case语句:1、顺序语句,必须放在进程语句中使用。表达式为:case 表达式 is when 表达式的选择值=顺序语句;顺序语句;when 表达式的选择值=顺序语句;顺序语句;end case;72、case语句使用说明:首先计算的值,然后根据when条件句中与之相同的选择值,执行后面对应的顺序语句,最后以以end case 结束结束。语句中的“=”相当与“then”。83、注意事项:(1)、when 条件句中的选择值所代表的值必须在表达式的取值范围内。(2)、除非所有条件句中的选择值能完整覆盖case语句中表达式的取值,否则最末一个条件句中的选择必须用others表示以上已列的所有条件句中未能列出的其他所有可能的取值。others只能出现一次,相当于IF语句中的else,如果不加上不加上others,则为不完整的条件语句,只能,则为不完整的条件语句,只能用来表示时序电路。当描述组合逻辑电路时,必须加上用来表示时序电路。当描述组合逻辑电路时,必须加上others,成为一个完整的条件语句。,成为一个完整的条件语句。4、case 语句中的选择值只能出现一次,不允许有相同选择值的条件语句出现。9实验:一位全加器的设计内容:用VHDL语言设计一位全加器并进行功能仿真。10111213