0
\$\begingroup\$

I'm creating a FSM in VHDL to implement a serial transmission module. However, whenever I synthesize it, it throws a bunch of the same error about finding a timing loop.

[Synth 8-295] found timing loop. 

However, the line it points to looks like this:

sync_proc : process (sys_clk, sys_rst, NS) 
begin
 if (sys_rst = '1') then
 PS <= FSM_RESET;
 elsif rising_edge(sys_clk) then
 PS <= NS;
 end if;
end process sync_proc;

Specifically, the error points to the "PS <= NS" line. From what I've been taught and read in VHDL standards, this is a standard way to implement the synchronous part of an FSM, but I can't find why its giving me an issue about it now. Any thoughts?

asked Aug 9, 2016 at 0:24
\$\endgroup\$
2
  • \$\begingroup\$ This code shows not the complete (timing) loop. Please follow the signal assignments in your code. Normally, Vivado should print the complete loop: See this example. \$\endgroup\$ Commented Aug 9, 2016 at 0:35
  • \$\begingroup\$ With respect to Paebbels example show us the process or concurrent statement(s) assigning NS and declarations and any signals NS depends on. \$\endgroup\$ Commented Aug 9, 2016 at 1:23

1 Answer 1

5
\$\begingroup\$

The problem is because you included NS in your sensitivity list. The first line shall look like this

sync_proc : process (sys_clk, sys_rst) 
Tom Carpenter
73.6k3 gold badges163 silver badges225 bronze badges
answered Aug 9, 2016 at 3:06
\$\endgroup\$
2
  • \$\begingroup\$ That's right! Another cuestión. Why do you use an asynchronous reset? It's really recomendable use synchronous reset. \$\endgroup\$ Commented Aug 10, 2016 at 8:35
  • \$\begingroup\$ I use asynchronous reset on assertion and I synchronize it for de-assertion. \$\endgroup\$ Commented Aug 10, 2016 at 22:59

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.