gpt4 book ai didi

vhdl - VHDL(使用 Xilinx)中的简单 SR 锁存器仿真不会振荡

转载 作者:行者123 更新时间:2023-12-02 13:47:44 25 4
gpt4 key购买 nike

我了解到,在以下电路 VHDL 代码中,当 S 和 R 均为“1”后,SR-Latch 确实会振荡。

这是SRLATCH的VHDL

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity SRLATCH_VHDL is
port(
S : in STD_LOGIC;
R : in STD_LOGIC;
Q : inout STD_LOGIC;
NOTQ: inout STD_LOGIC);
end SRLATCH_VHDL;

architecture Behavioral of SRLATCH_VHDL is
begin

process(S,R,Q,NOTQ)
begin
Q <= R NOR NOTQ;
NOTQ<= S NOR Q;
end process;

end Behavioral;

以下为Testbench代码流程及其仿真结果

   -- Stimulus process
stim_proc: process
begin
S <= '1'; R <= '0'; WAIT FOR 100NS;
S <= '0'; R <= '0'; WAIT FOR 100NS;
S <= '0'; R <= '1'; WAIT FOR 100NS;
S <= '0'; R <= '0'; WAIT FOR 100NS;
S <= '1'; R <= '1'; WAIT FOR 500NS;
end process;

我完全不知道为什么模拟不能反射(reflect)......

Xilinx Simul of SR LATCH
(点击放大)

最佳答案

有人教你错误的知识!

SR 和 RS 基本触发器(也称为锁存器)不会振荡。 S = R = 1上的问题(禁止)就是你不知道你离开后的状态S = R = 1因为你永远不能去S = R = 0 (保存)同时。您将过渡为S = R = 1S = R = 0通过S = 1; R = 0 (设置)或S = 0; R = 1 (重置)。这将在您到达保存状态之前触发设置重置操作。

请注意,VHDL 使用离散时间进行模拟,并且在每次运行时都会重现相同的模拟结果。您无法(轻松)模拟导致每次模拟运行不同信号延迟的物理效应。

顺便说一句。你的VHDL描述也是错误的。 QNOTQ模式为out ,不是inout 。使用支持 VHDL-2008(允许读回输出端口)的适当模拟器或使用中间信号。

关于vhdl - VHDL(使用 Xilinx)中的简单 SR 锁存器仿真不会振荡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46745951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com