Forum Discussion
Altera_Forum
Honored Contributor
7 years agoThanks for your reply HRZ! The compiler inserting a copy of the function in place (like a macro) makes a lot of sense from the compiler standpoint. I probably can't archive and attach the full reports folder. Right now I can force the ii to 1 by using "#pragma ii 1" and take the fmax hit. I'm avoiding doing that in hopes of writing the loop that is easier for the compiler to pipeline. As I add more logic I think I'll get to a place where forcing the ii to 1 errors out.
Thanks for the information about how the case is implemented in logic. I guess that could have the same affect I'm looking for, with the state variable acting like the mux selection. Unfortunately that's probably inferring a larger and larger mux every time I add a state - driving up the ii if the first stage compiler decides it's better to up the ii rather than decrease the fmax. I may also be inferring latches if I don't explicitly assign each output in every case. Your suggesting of using multiple kernels and using blocking channel calls to stall might be the way to go to stall the loop effectively