Altera_Forum
Honored Contributor
13 years agoHow are timing assignments set?
I have a signal which is very slow to change to the new value each clock cycle. Can I solve this problem with timing assignments? If so, how?
I have a case statement similar to the one below: always @* case (b) 0 : c <= d0; 1 : c <= d1; 2 : c <= d2; 3 : c <= d3; endcase b is the output of a register that changes immediately on the rising edge of the clock like it should. But c doesn't start changing until nearly an entire clock cycle after b changes. When it does start to change, it takes about half a clock cycle to settle to its new value. Although they are not all stable at the same time, d0 is stable well before b becomes 0, d1 is stable well before b becomes 1, et cetera. I think that there might be some way to get c to update immediately upon d changing using timing assignments, but I don't know how to do this. Can I solve this problem with timing assignments and if so, how do I implement a timing assignment? I have never implemented a timing assignment before and cannot find any documentation that explains how to do it. Also, could I use timing assignments to solve the c-is-slow-to-settle-to-d problem? I am using Quartus II 5.0 and the clock frequency is 80 MHz.