文档详情

7章VHDL基本语句与基本设计.ppt

发布:2017-03-23约8.49千字共56页下载文档
文本预览下载声明
第7章 VHDL基本语句与基本设计 VHDL基本语句与基本设计 7.1 顺序语句 7.1.1 赋值语句 7.1.2 IF语句 具有开关控制的IF语句 具有开关控制的IF语句举例 具有二选择控制的IF语句 用IF语句描述三态非门 具有多选择控制的IF语句 7.1.3 CASE语句 使用CASE语句注意事项 使用CASE语句注意事项 CASE语句中WHEN字句书写格式 CASE语句应用举例 7.1.4 LOOP语句 无限LOOP语句 FOR_LOOP语句 用FOR LOOP语句描述8位奇偶校验电路 WHILE_LOOP语句 用WHILE_LOOP语句描述8位奇偶校验电路 7.1.5 NEXT语句 NEXT语句举例 7.1.6 EXIT语句 EXIT语句举例 7.1.7 WAIT语句 1. WAIT ON语句 2. WAIT UNTIL语句 7.1.8 子程序调用语句 过程调用 函数调用 7.2 并行语句 7.3 VHDL组合逻辑电路设计 7.4 VHDL时序逻辑电路设计 函数调用与过程调用十分类似,不同之处是调用函数将返回一个指定类型的值,函数的参量只能是输入值。 函数调用的一般格式为: 函数名([参数名=]表达式{,[参数名=]表达式}); 并行信号赋值语句 进程语句 并行过程调用语句 元器件例化语句 生成语句 */38 7.2.1 并行信号赋值语句 三种并行信号赋值: 简单信号赋值 条件信号赋值 选择信号赋值 */38 1. 并行简单信号赋值语句 */38 2. 条件信号赋值语句 */38 用when-else语句描述2选一的MUX entity mux2to1 is port(a,b:in bit; sel:in bit; y:out bit); end mux2to1; architecture one of mux2to1 is begin y=b when sel=1 else a; end one; 信号定义成比特类型,可取0和1。 如果把=‘1’去掉,结果如何? */38 用when-else语句描述4选1的MUX entity mux4to1 is port(a,b,c,d:in bit; sel1,sel0:in bit; y:out bit); end mux4to1; architecture one of mux4to1 is begin y=a when (sel1=0) and (sel0=0) else b when (sel1=0) and (sel0=1) else c when (sel1=1) and (sel0=0) else d; end one; 问题:如果00时选a,01时选b,10和11时都选c,怎么办? y=a when (sel1=0) and (sel0=0) else b when (sel1=0) and (sel0=1) else c when (sel1=‘1’) and (sel0=‘0’) else d; */38 3. 选择信号赋值语句 */38 问题:如果00时选a,01时选b,10和11时都选c,怎么办? architecture one of mux4to1 is signal sel:bit_vector(1 downto 0); begin sel(1)=sel1; sel(0)=sel0; with sel select y=a when 00, b when 01, c when others; end one; entity mux4to1 is port(a,b,c:in bit; sel1,sel0:in bit; y:out bit); end mux4to1; 注意:when others包含那些未被列出的可能。 */38 如果信号类型换成STD_LOGIC library ieee; use ieee.std_logic_1164.all; entity mux4to1 is port(a,b,c:in std_logic; sel1,sel0:in std_logic; y:out std_logic); end mux4to1; architecture one of mux4to1 is signal sel:std_logic_vector(1 downto 0); begin sel(1)
显示全部
相似文档