Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
220 Views

How am I inferring latch in this code?

I'm getting warning 10631 in Quartus II (inferring latches)

Warning (10631): VHDL Process Statement warning at U6D2CPUSeq.vhd(947): inferring latch(es) for signal or variable "RST_RSMRST_N_200MS_DELAY", which holds its previous value in one or more paths through the process

Warning (10631): VHDL Process Statement warning at U6D2CPUSeq.vhd(947): inferring latch(es) for signal or variable "RST_RSMRST_N_200MS_CNT", which holds its previous value in one or more paths through the process

 

here is my code:

process(LED_500HZ_CLK, RST_RSMRST_PLD_R_N_T, RST_DEDI_BUSY_PLD_N) begin if RST_RSMRST_PLD_R_N_T = '0' or RST_DEDI_BUSY_PLD_N ='0' then RST_RSMRST_N_200MS_DELAY <= '0'; RST_RSMRST_N_200MS_CNT <= (others =>'0'); elsif rising_edge(LED_500HZ_CLK) then RST_RSMRST_N_200MS_CNT <= RST_RSMRST_N_200MS_CNT + '1'; if RST_RSMRST_N_200MS_CNT = "1100100" then RST_RSMRST_N_200MS_DELAY <='1'; end if; end if; end process;

 

0 Kudos
3 Replies
Highlighted
Moderator
17 Views

I think you want to be doing this under rising_edge:

if RST_RSMRST_N_200MS_CNT = "1100100" then RST_RSMRST_N_200MS_DELAY <='1'; else RST_RSMRST_N_200MS_CNT <= RST_RSMRST_N_200MS_CNT + '1'; end if;

Doing the count before checking the count value implies that there must already be a value in RST_RSMRST_N_200MS_CNT already to increment, causing the latch.

 

Or you could use a variable to temporarily store the count.

 

#iwork4intel

0 Kudos
Highlighted
Beginner
17 Views

Thanks, I tried this and no difference, same warning...

0 Kudos
Highlighted
Employee
17 Views

Hi,

The warning is due to you had assigned statement RST_RSMRST_N_200MS_DELAY <='1' when RST_RSMRST_N_200MS_CNT = "1100100" but you do not assign new value for RST_RSMRST_N_200MS_DELAY if RST_RSMRST_N_200MS_CNT is not equal to "1100100".

You may refer to the information as below:

https://www.intel.com/content/www/us/en/programmable/quartushelp/current/index.htm#msgs/msgs/wvrfx_l...

Thanks

0 Kudos