首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >技术模式中的锁存复制(vhdl)

技术模式中的锁存复制(vhdl)
EN

Stack Overflow用户
提问于 2013-11-06 22:37:14
回答 2查看 130关注 0票数 0

请注意,这是一个学习问题。

我必须用vhdl描述一个简单的d-闩锁,然后合成它.问题是它是一个“一元”的d锁存器,它的单个输入直接映射到它的输出(Q和nQ)。你可以想象它是一个经典的异步锁存器,其中clk信号总是很高.这在逻辑中是无用的元素,在大多数情况下,xilinx合成器会给出一个空的技术模式。但是保留这个元素的原因是,例如,创建硬件“水印”,它存在于模式中,但不影响其逻辑。

我想出了以下代码:

代码语言:javascript
复制
entity dLatch is
  port(
    d: in std_logic;
    q: out std_logic);
end dLatch;

architecture dLatch_beh of dLatch is  
  signal o: std_logic;
begin
  latch: process(d)
  begin
    if d = '1' then
      o <= '1';
    elsif d = '0' then
      o <= '0';
    end if;
  end process;

  q <= o;
end;

此代码生成以下技术架构

链接

但是,当我尝试添加nQ out端口时,我会获得锁存的复制。

代码语言:javascript
复制
entity dLatch is
  port(
    d: in std_logic;
    q, nq: out std_logic);
end dLatch;

architecture dLatch_beh of dLatch is  
  signal o: std_logic;
begin
  latch: process(d)
  begin
    if d = '1' then
      o <= '1';
    elsif d = '0' then
      o <= '0';
    end if;
  end process;

  q <= o;
  nq <= not o;
end;

技术模式:链接

我不明白,为什么这里有两个完全相等的闩锁。我只想再加一个“不”门。因此,我的问题是如何避免锁存的重复,或者其他方法来解决这个问题。我使用14.6进行综合。

解决方案是将合成器的标志-register_duplication设置为false。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-07 22:41:14

解决方案是将合成器的标志-register_duplication设置为false。

票数 0
EN

Stack Overflow用户

发布于 2013-11-07 13:23:29

你根本就没有门闩。您正在查看Technology视图,因此它向您展示了它映射到的Xilinx组件。首先,您应该查看RTL视图。

其次,闩锁是不好的,因为你的教授可能让你意识到。他甚至在描述中说,视图将是空白的,因为工具不会为您生成锁存器。它们不存在于织物中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19824334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档