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