Vhdl 闩锁原语禁用输出?

Vhdl 闩锁原语禁用输出?,vhdl,synthesis,quartus,Vhdl,Synthesis,Quartus,所以我理解闩锁的概念,但我不明白我是如何推断闩锁的,因为我的else条件应该涵盖这个过程中所有可能的路径。Quartus告诉我,由于闩锁原语,它正在禁用绿色LED和红色LED,并且它们上有一个推断闩锁。我是不是遗漏了什么 process(current,advance,playerWins,dealerWins) begin if(advance) then case current is when START =>

所以我理解闩锁的概念,但我不明白我是如何推断闩锁的,因为我的else条件应该涵盖这个过程中所有可能的路径。Quartus告诉我,由于闩锁原语,它正在禁用绿色LED和红色LED,并且它们上有一个推断闩锁。我是不是遗漏了什么

process(current,advance,playerWins,dealerWins) begin
  if(advance) then
        case current is
          when START =>
                deal           <= '1';
                dealTo         <= '1';
                dealToCardSlot <= "00";
                greenLeds <= (others => '0');
                redLeds <= (others => '0');
          when PT1 =>
                deal           <= '1';
                dealTo         <= '1';
                dealToCardSlot <= "01";
                greenLeds <= (others => '0');
                redLeds <= (others => '0');
          when DT1 =>
                deal           <= '1';
                dealTo         <= '0';
                dealToCardSlot <= "00";
                greenLeds <= (others => '0');
                redLeds <= (others => '0');
          when PT2 =>
                deal           <= '1';
                dealTo         <= '1';
                dealToCardSlot <= "10";
                greenLeds <= (others => '0');
                redLeds <= (others => '0');
          when PT3 =>
                deal           <= '1';
                dealTo         <= '1';
                dealToCardSlot <= "11";
                greenLeds <= (others => '0');
                redLeds <= (others => '0');
          when DT2 =>
                deal           <= '1';
                dealTo         <= '0';
                dealToCardSlot <= "01";
                greenLeds <= (others => '0');
                redLeds <= (others => '0');
          when DT3 =>
                deal           <= '1';
                dealTo         <= '0';
                dealToCardSlot <= "10";
                greenLeds <= (others => '0');
                redLeds <= (others => '0');
          when DT4 =>
                deal           <= '1';
                dealTo         <= '0';
                dealToCardSlot <= "11";
                greenLeds <= (others => '0');
                redLeds <= (others => '0');
          when WIN =>
                deal           <= '0';
                dealTo         <= '0';
                dealToCardSlot <= "00";
                if(playerWins) then
                    greenLeds <= (others => '1');
                elsif(dealerWins) then
                    redLeds <= (others => '1');
                else
                    greenLeds <= (others => '0');
                    redLeds <= (others => '0');
                end if;
          when ENDGAME =>
                deal           <= '0';
                dealTo         <= '1';
                dealToCardSlot <= "00";
                greenLeds <= (others => '0');
                redLeds <= (others => '0');
          when others =>
                deal           <= '0';
                dealTo         <= '0';
                dealToCardSlot <= "00";
                greenLeds <= (others => '0');
                redLeds <= (others => '0');
          end case;
  else
    deal           <= '0';
    dealTo         <= '0';
    dealToCardSlot <= "00";
    greenLeds <= (others => '0');
    redLeds <= (others => '0');
  end if;
end process;
进程(当前、高级、播放程序、解除程序)开始
如果(提前)那么
案例电流为
何时开始=>
当赢=>
处理
      when WIN =>
            deal           <= '0';
            dealTo         <= '0';
            dealToCardSlot <= "00";
            if(playerWins) then
                greenLeds <= (others => '1');
            elsif(dealerWins) then
                redLeds <= (others => '1');
            else
                greenLeds <= (others => '0');
                redLeds <= (others => '0');
            end if;