[信息与通信]第五章_VHDL设计进阶.pptVIP

  • 3
  • 0
  • 约1.21万字
  • 约 51页
  • 2018-03-01 发布于浙江
  • 举报
[信息与通信]第五章_VHDL设计进阶

EDA技术实用教程 第5章 VHDL设计进阶 实验: 含异步清零和同步时钟使能的四位加法计数器 5.4.2 双向端口设计 图5-13 例5-13的仿真波形图 control=1时,q得到赋值,仿真结果正确。 control=0时,q没有得到赋值,得不到正确仿真结果。 5.4.2 双向端口设计 【例5-14】 (以上部分同上例) process(control,q,in1) begin if (control=0) then x = q ; q = ZZZZZZZZ; else q = in1; x =ZZZZZZZZ; end if; end process; end body_tri; 图5-14 例5-14的仿真波形图 5.4.2 双向端口设计 图5-15 例5-13的综合结果 5.4.2 双向端口设计 图5-16 例5-14的综合结果 6.4.3 三态总线电路设计 设计一个8位四总线驱动电路: 5.4.3 三态总线电路设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY tristate2 IS port ( input3, input2, input1, input0 : IN STD_LOGIC_VECTOR (7 DOWNTO 0); enable : IN STD_LOGIC_VECTOR(1 DOWNTO 0); output : OUT STD_LOGIC_VECTOR (7 DOWNTO 0)); END tristate2 ; ARCHITECTURE multiple_drivers OF tristate2 IS BEGIN PROCESS(enable,input3, input2, input1, input0 ) BEGIN IF enable = 00 THEN output = input3 ; ELSE output =(OTHERS = Z); END IF ; IF enable = 01 THEN output = input2 ; ELSE output =(OTHERS = Z); END IF ; IF enable = 10 THEN output = input1 ; ELSE output =(OTHERS = Z); END IF ; IF enable = 11 THEN output = input0 ; ELSE output =(OTHERS = Z); END IF ; END PROCESS; END multiple_drivers; 【例5-15】 同一进程中的语句是顺序执行的。 同一组输出端不可能得到顺序赋值。只有最后一条if语句得到了赋值 5.4.3 三态总线电路设计 图5-17 例5-15错误的综合结果 5.4.3 三态总线电路设计 library ieee; use ieee.std_logic_1164.all; entity tri is port (ctl : in std_logic_vector(1 downto 0); datain1, datain2,datain3, datain4 : in std_logic_vector(7 downto 0); q : out std_logic_vector(7 downto 0) ); end tri; architecture body_tri of tri is begin q = datain1 when ctl=00 else (others =Z) ; q = datain2 when ctl=01 else (others =Z) ; q = datain3 when ctl=10 else (others =Z) ; q = datain4 when ctl=11 else (others =Z) ; end body_tri; 【例5-16】 四条独立并行语句,是并行运行的。 将例5-15改为多进程方式,则可以实现例5-16的功能 ……………… ARCHITECTURE multiple_drivers OF tristate2 IS BEGIN K3:PROCESS(enable,input3) BEGIN IF enable = 0

文档评论(0)

1亿VIP精品文档

相关文档