Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Regular Contributor
airturk
Posts: 70
Registered: ‎09-12-2011
0

Timing Constraints for Output Data and Clock

Dear Members;

 

 I have a question related to required timing constraints for

  • sending data and clock out from the FPGA to a processor and 
  • receiving data back from the processor. 

This is, in fact, for the JTAG communication between FPGA and the processor while the FPGA creates and sends the clock/data and receives data with the same clock. 

 

The figure below shows the 4 I/Os:

  • 3 outputs sent to the processor -> Clock, Data Out and Control (each 1 bit)
  • 1 Input is received from the processor -> Data In (1 bit)



comm

 

 

CLK is internally generated by dividing incoming clock (input to the FPGA, SYS_CLK) using combinational logic.

SYS_CLK -> PLL -> combinational logic -> CLK

 

As an additional information, combinational logic divides the incoming clock with any number between 3 to 16 and sends it out as an output. 

 

What type of constraints are required for these to function correctly?

 

Any recommendation is appreciated.

 

Regards, 

Expert Contributor
eteam00
Posts: 7,505
Registered: ‎07-21-2009
0

Re: Timing Constraints for Output Data and Clock

I sincerely hope you are not using purely combinatorial logic for dividing clocks.

 

The only timing constraint you should need is for defining the operating frequency of your internal clock.  Of course, if you don't use registers in your FPGA design, then there is no need to use timing constraints for your internal clock.

 

A properly designed FPGA JTAG (IEEE 1149.1 Standard Test Access Port) controller design should have very little use for timing constraints.  The biggest 1149.1 design hasard is a signal integrity issue due to poor circuit board layout of the JTAG clock.

 

Have you done state machine design before?

Are you familiar with IEEE1149.1 (JTAG) signal timing and protocol?

 

-- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
Regular Contributor
airturk
Posts: 70
Registered: ‎09-12-2011
0

Re: Timing Constraints for Output Data and Clock

This is purely combinatorial...

 

But I know that there are more stable ways of doing it, mainly the methods mentioned here: http://forums.xilinx.com/t5/Timing-Analysis/Two-clock-frequencies/td-p/230867

 

Have you done state machine design before? 

Are you familiar with IEEE1149.1 (JTAG) signal timing and protocol?

Yes, I am, in general, familar with the JTAG Timing and protocol. And sure, with the state machine design.

 

The JTAG design was tested throughly and it was working without an error for a pretty long time. However, the FPGA device utilization has increased lately (~%80 slices) and I started to have some problems with the JTAG communication.

 

These problems are very rare when I divide the clock with 16 (low frequencies), however the number of errors increases while the divide_value decreases such as 3 (high frequencies). 

 

I was looking for some recommendations before going in for detailed testing/debugging. 

 

I am currently looking into its functionality using SP605 so I wouldn't worry about the circuit board layout (well hopefully).

 

Regards, 

Regular Contributor
airturk
Posts: 70
Registered: ‎09-12-2011
0

Re: Timing Constraints for Output Data and Clock

I should rephrase this

"These problems are very rare when I divide the clock with 16 (low frequencies), however the number of errors increases while the divide_value decreases such as 3 (high frequencies). "

I meant its more likely to get an error when it is running at a higher frequency. It does not create an error when it is running using the slowest frequency. And this likelihood increases when the divide_value decreases.
Expert Contributor
rcingham
Posts: 2,010
Registered: ‎09-09-2010
0

Re: Timing Constraints for Output Data and Clock

"I meant its more likely to get an error when it is running at a higher frequency."

So, run it at a frequency you prove to be reliable during temperature testing.

------------------------------------------
"If it don't work in simulation, it won't work on the board."
Xilinx Employee
ajmirg
Posts: 100
Registered: ‎05-14-2008
0

Re: Timing Constraints for Output Data and Clock

Hi,

 

This sounds like your design is not fully constrained. When you change the divide_by value, it is possible that some setup or hold time violation occur at the interface or internally.

 

Do you think that the data corruption occured while the FPGA receives data from the processor or the other way around?

 

I would suggest that you LOC down the PLL, associated BUFGs, the whole divider circuit as per the working design...and let us know if you see improved consistency.

Expert Contributor
eteam00
Posts: 7,505
Registered: ‎07-21-2009
0

Re: Timing Constraints for Output Data and Clock

 

I sincerely hope you are not using purely combinatorial logic for dividing clocks.

 

This is purely combinatorial...

 

But I know that there are more stable ways of doing it, mainly the methods mentioned here: http://forums.xilinx.com/t5/Timing-Analysis/Two-clock-frequencies/td-p/230867

 

The divider discussed in the linked thread is not combinatorial.

 

-- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.