Vhdl 这段代码将产生多少触发器?

Vhdl 这段代码将产生多少触发器?,vhdl,flip-flop,Vhdl,Flip Flop,所以我马上就要考试了,我要解决tutes。其中一个问题很基本,但我不认为我有确切的逻辑。它只给了我一小段代码,并询问这将产生多少触发器。你能帮我弄清楚我是怎么找到这个的吗?谢谢 Architecture rtl of ex is signal a,b,q, int: bit_vector(3 downto 0); begin process(clk) begin If clk = '1' and clk'event then i

所以我马上就要考试了,我要解决tutes。其中一个问题很基本,但我不认为我有确切的逻辑。它只给了我一小段代码,并询问这将产生多少触发器。你能帮我弄清楚我是怎么找到这个的吗?谢谢

Architecture rtl of ex is
    signal a,b,q, int: bit_vector(3 downto 0);
begin
    process(clk)
    begin
        If  clk = '1' and clk'event then 
            int <= int +1;     
            q <=int;
            a <= b xor q;
        end if;
    end process; 
    b <= int
end;
ex的架构rtl是 信号a、b、q、int:位_向量(3向下至0); 开始 过程(clk) 开始 如果clk='1'和clk'事件,则
好的,这里有一个正确但刺耳的答案,但需要注意的是,这几乎肯定不是问题所要求的

鉴于上述架构声明,很明显,除了内部信号之外,没有任何其他赋值。我们没有看到实体声明,但从架构来看,我们可以假定至少有一个名为
clk
Input
端口。可能有输出,也可能没有输出;我们不知道,但是它们是不相关的,因为没有分配给它们的任务


因此,上述体系结构不会影响任何输出,因此在合成的逻辑最小化阶段,它将被完全修剪,并且不会产生任何触发器。

您有多少进展?解释一下你认为答案是什么以及为什么,你可能会对这个答案有一个很好的批评。@BrianDrummond好吧,我理解因为在这个过程中有一个“如果”的陈述,它需要涵盖所有可能的情况,否则会有锁。现在if语句只涉及clk信号,而不涉及'a,b,q和int',所以我认为总共应该有4个锁存器?反正这是我的想法。我还怀疑,由于有3个信号分配语句,4个锁存器将再重复2次,总共12次。但我不确定。@bzrk89,你有点困惑。这里有一条规则:锁存永远不会在连续过程(使用时钟进行上升沿检测的过程)中生成。上述关于覆盖IF语句所有可能情况的规则对于组合进程(不使用时钟的进程)都是正确的。这里有更多关于@Russell的信息,所以这段代码中不会有任何锁存?我还被告知,所有进程都是顺序的,但它们包含并发语句,所以请您解释一下这会产生多少锁存,以及为什么?所有进程代码都是按顺序读取的,但称之为“顺序进程”可能还有其他含义。说“进程包含并发语句”也不一定正确。从技术上讲,进程包含顺序语句,其中一些可能与并发语句具有相同的形式。这是正确的,并且在任何测试中肯定会被标记为错误。不过我确实喜欢。