newt Posted March 8, 2017 Share Posted March 8, 2017 My UART receiver utilizes a finite state machine to keep track of the receive data and its protocol, including start bit, 8-bit data, and stop bit. When I compiled it in vivado, it created an error message : combinatorial logic loop. I guess it did not like the state variable tracking the data as it goes from state to state in a circular manner. The resolution is to change it, but if it is understood, I could simply declare it in the *.xdc file as "set_property ALLOW_COMBINATORIAL_LOOPS TRUE [net_nets <myHier/myNet>". I tried that but it did not recognize the command net_nets. It said the command is not supported in the xdc constraint file. Why? Is it because I got the student discount version or something else? By the way what is <myHier/myNet>? The name of the variable that created the issue? Link to comment Share on other sites More sharing options...
D@n Posted March 8, 2017 Share Posted March 8, 2017 @newt, You get out of combinatorial loops by insisting that logic transition on the positive edge of a clock. Any thing transitioning on a clock will break a loop. Otherwise, if you have a variable, we'll call it A (perhaps it's your state variable), that depends upon the last value of A--but without a clock in between--you will get a logic loop. In general, a logic loop means things are broken--put the clock back in and it should fix it. Dan Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.