用VHDL实现RS锁存

用VHDL实现RS锁存,vhdl,Vhdl,我用VHDL编写了一个简单的RS锁存器,并尝试用ISE进行合成。合成器增加了一个D触发器,其中D输入接地,my(S)et和(R)eset输入被视为预设和清除输入。我只希望看到与非门。为什么它添加了一个触发器,而没有必要这样做?为什么D输入端接地 entity rs is Port ( r : in STD_LOGIC; s : in STD_LOGIC; q : inout STD_LOGIC); end rs; architecture Behavioral

我用VHDL编写了一个简单的RS锁存器,并尝试用ISE进行合成。合成器增加了一个D触发器,其中D输入接地,my(S)et和(R)eset输入被视为预设和清除输入。我只希望看到与非门。为什么它添加了一个触发器,而没有必要这样做?为什么D输入端接地

entity rs is
Port ( r : in  STD_LOGIC;
       s : in  STD_LOGIC;
       q : inout  STD_LOGIC);
end rs;

architecture Behavioral of rs is
begin
 process( r, s )
 begin
    if r = '1' then
        q <= '0';
    elsif s = '1' then
        q <= '1';
    else
        q <= q;
    end if;
 end process;
end Behavioral;
实体rs是
端口(r:STD_逻辑中;
s:标准逻辑;
q:inout标准逻辑);
终点站;
rs的行为体系结构
开始
过程(r,s)
开始
如果r='1',则

q你对使用触发器的观察是不正确的。该元素被标记为
ldcp
,这是一个透明闩锁。查看您的代码,闩锁就是您所描述的。
D
输入连接至接地,因为您的所有过程都是设置或清除闩锁;您没有描述“加载”操作,因此锁存器没有使用其
D
输入。

您对使用触发器的观察是不正确的。该元素被标记为
ldcp
,这是一个透明闩锁。查看您的代码,闩锁就是您所描述的。
D
输入连接至接地,因为您的所有过程都是设置或清除闩锁;您没有描述“加载”操作,因此锁存器不使用其
D
输入。

FPGA不包含与非门。尽管ISE的示意图中显示了这些门,但它们的组合功能实际上是在查找表(LUT)中实现的。仅使用LUT的闩锁函数的行为与使用NAND门实现闩锁的情况不同

为了实现锁存功能,Xilinx FPGA必须利用“存储元素”(FPGA中实际可用的物理结构)来模拟其行为。这些元素具有可预测的行为。存储元件提供设置和复位输入。结合一些逻辑,您可以创建类似闩锁的行为


你可以看看PAR输出,而不是合成输出,看看它是如何实现的。

< P> FPGA不包含NAND门。尽管ISE的示意图中显示了这些门,但它们的组合功能实际上是在查找表(LUT)中实现的。仅使用LUT的闩锁函数的行为与使用NAND门实现闩锁的情况不同

为了实现锁存功能,Xilinx FPGA必须利用“存储元素”(FPGA中实际可用的物理结构)来模拟其行为。这些元素具有可预测的行为。存储元件提供设置和复位输入。结合一些逻辑,您可以创建类似闩锁的行为

你可以看看PAR输出,而不是合成输出,看看它是如何实现的。< /P>