Altera_Forum
Honored Contributor
15 years agoProperly Constraining Inverted Clock with TimeQuest
I have only a limited understanding of TimeQuest and timing requirements in general, so please excuse my ignorance and lack of technical vocabulary on this subject.
I have an FPGA sitting between two HDMI daughter cards (RX and TX). My modules expect the clock to be posedge based, like so:always @ (posedge pixel_clock) beautiful_color_data <= RX_RGB; However, these new HDMI daughter cards are negedge based. My code is used in other designs, so I can't replace all the posedges. To fix the problem, I do this: assign pixel_clock = !RX_PCLK;
assign TX_PCLK = RX_PCLK; That inverts the HDMI rx pixel clock, and my design works again. The clock is passed through unmodified, because the TX chip expects data to be negedge based (so giving it the inverted clock would obviously break things). However, TimeQuest throws up, and there are little timing mistakes in the output video (since timing isn't being constrained correctly). So my question is, what is the correct way to constrain this design, and make TimeQuest happy? How do I define the set_input_delay and set_output_delay? Do I define it relative to pixel_clock, and tell TimeQuest that pixel_clock is a generated inverted clock based on RX_PCLK? Please remember that I'm still new at timing, so go easy on me :) Thank you!