VHDL语言基础-时序逻辑电路-锁存器

目录

锁存器的设计:

RS锁存器:

真值表:

电路结构图:

RS锁存器的仿真波形如下:

D锁存器:

D锁存器的仿真波形如下:


锁存器的设计:

为了与触发器相类比,我们先介绍锁存器。锁存器是一种电平敏感的寄存器,典型的例子有RS锁存器与D锁存器。

RS锁存器:

真值表:

电路结构图:

Library  ieee;

Use  ieee.std_logic_1164.all;

Entity  SR_latch2  is

    port ( S, R: in  std_logic ;

             Q, Qbar :out  std_logic);

End  SR_latch2;

Architecture  behav  of   R_latch2  is

Begin

 process ( R , S ) is

      variable rs: std_logic_vector(1 downto 0);

begin

      rs:=R&S;

      case rs is

          when "00" => Q<='1'; Qbar<='1';

          when "01" => Q<='1'; Qbar<='0';

          when "10" => Q<='0'; Qbar<='1';

          when others=>null;

       end case;

   end process;

end behav;

注意:顺序结构中的Null状态等同于并行结构中的Unaffected。

RS锁存器的仿真波形如下:

由图可见,由于在时序仿真中有器件的延时,锁存器的状态变化迟于输入信号的变化


D锁存器:

D锁存器与RS锁存器类似,只是在功能上实现的目的不同

Library  ieee;

Use  ieee.std_logic_1164.all;

Entity  D_latch  is

     port ( D, Enable: in  std_logic ;

               Q: out  std_logic );

End  D_latch;

Architecture  behav  of   D_latch  is

Begin

      process(D, Enable)

      begin

           if (Enable=‘1’) then  Q<=D;

           end  if;

      end  process;

End  behav;

D锁存器通过条件涵盖不完整的if语句 产生寄存器;
敏感参数表包含D、Enable,综合后  形成一个电平触发的锁存器

D锁存器的仿真波形如下:

当ENABLE=‘1’时,Q输出为D的输入值,否则Q保持不变。

猜你喜欢

转载自blog.csdn.net/weixin_50932441/article/details/128972975