Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/22/06 12:51
Read: times


 
#122767 - High speed logic woe
Responding to: ???'s previous message
As Ive had my holiday set back by stupid flight delays caused by terrorists trying to blow me up even after I told them not too, I thought would write about a nasty bug which showed up in a high speed fpga coupled to a 8052.
The problem was a large logic design successfully placed and routed into an Altera cyclone fpga,both the behavioural and functional simulations looked good,the static timing tool showed that the setup and hold times where being met, there were no asynchronous signals and yet the thing gave incorrect answers when it was tried out in a live FPGA, so what was going wrong ?
The answer was clock skew, which is where the clock shared between adjacent registers is delayed by more than the propagation delay of the logic between the source register and the sink register, the clock was arriving late at the sink register so corrupt data was being read by the sink register.This is a problem which occurs more frequently with even higher clock frequencies and faster logic,high clock fanout and very high clock frequencies cause the dedicated clock distribution channels to behave more and more as transmission lines within the FPGA. Manufactures are keen to tell you how fast their logic is but they are not so keen to tell you about the problems this might cause.Its not a problem which is easy to spot because it doesnt always get flagged as a setup/hold violation in a simulator, if your fault coverage isnt too good then you are going to miss it,most static timing tools cannot calculate clock skew so setup/hold times are going to be misleading at higher clock frequencies.
There are several ways to prevent clock skew causing reliability problems in fast logic, the first and simplest is to insert delays into the logic between the source and sink registers so that the propagation delay matches the clock skew,but estimating clock skew between registers isnt easy and is highly dependant on things like supply voltage,temperature,device technology and so on.
A second solution is to clock source and sink registers with different clock phases which does give you about half a clock cycle more time for the clock to sort itself out.
A third solution is to arrange the clock tree so that the clock source feeds the sink register before the source register, this is something which isnt always easy to achieve in practice.
the fourth solution,and possibly the best is where they are available use clock phase locked loops which automatically adjust the clock phase to compensate for clock skew throughout the entire device, most FPGA manufacturers include some form of clock manager module which includes a phase locked loop or delay locked loop and it was this which sorted out the problem device which is now running happily with no problems.
if only i could get my holiday sorted I would be happy.

List of 70 messages in thread
TopicAuthorDate
stand alone fpga            01/01/70 00:00      
   Whose FPGA?            01/01/70 00:00      
      thanks            01/01/70 00:00      
         The answer is...            01/01/70 00:00      
            needed to hear it from the horse's mouth            01/01/70 00:00      
               Who is the horse in this instance?            01/01/70 00:00      
                  The Stallion            01/01/70 00:00      
         or if you are feeling brave..            01/01/70 00:00      
         which Altera            01/01/70 00:00      
            No Altera or Xilinix yet            01/01/70 00:00      
               the first book to teach by            01/01/70 00:00      
                  Altera development boards            01/01/70 00:00      
                     Jez, Mahmood If you want            01/01/70 00:00      
                        ive got baseband version 10.2            01/01/70 00:00      
                  Logic book            01/01/70 00:00      
                     It assumes you know about that            01/01/70 00:00      
                        Skahill's VHDL book            01/01/70 00:00      
                           Exactly!            01/01/70 00:00      
               Why not yet?            01/01/70 00:00      
                  Deadline            01/01/70 00:00      
   RTFDS            01/01/70 00:00      
      datasheet for what device?            01/01/70 00:00      
         There are "family" data sheets that are adequate            01/01/70 00:00      
      Kittens are cute, but ...            01/01/70 00:00      
         awww poor Tiddles            01/01/70 00:00      
            The best cat            01/01/70 00:00      
               ha ha didnt work            01/01/70 00:00      
                  He didn\'t do anything to stop me when...            01/01/70 00:00      
   Why oh why didn\'t the Horse tell me?            01/01/70 00:00      
      This particular horse thought you knew            01/01/70 00:00      
      This "horse" doesn't want you to notice            01/01/70 00:00      
         This horse won the race!            01/01/70 00:00      
            Every bit of it is on their website!            01/01/70 00:00      
         been there, done that            01/01/70 00:00      
            do they still make FPGA's that small?            01/01/70 00:00      
               Small FPGAs            01/01/70 00:00      
                  a colleague said, \"the gates are free\"            01/01/70 00:00      
                     maybe for small parts            01/01/70 00:00      
                        depends on where you get pricing            01/01/70 00:00      
                     yield            01/01/70 00:00      
                  small fpga---try altera acex            01/01/70 00:00      
                     What I like to compare is a 33-bit AND gate            01/01/70 00:00      
                     CycloneII is the way to go            01/01/70 00:00      
                        Well, most 805x's run at 5 Volts ...            01/01/70 00:00      
                           well, nope            01/01/70 00:00      
                              depends on how you use 'em.            01/01/70 00:00      
                                 do you read the posts or just the titles?            01/01/70 00:00      
                                    Yes, I read 'em, but that doesn't make it so ...            01/01/70 00:00      
                                       rubbish            01/01/70 00:00      
                                          Don't be so sure ...            01/01/70 00:00      
                                             ...are you?            01/01/70 00:00      
                                                we've drifted            01/01/70 00:00      
                                             FPGA usage            01/01/70 00:00      
                                 how many do you need?            01/01/70 00:00      
                           High speed logic woe            01/01/70 00:00      
                              seen them all            01/01/70 00:00      
                              FPGA clock skew            01/01/70 00:00      
                                 I agree...but            01/01/70 00:00      
                                    WOW            01/01/70 00:00      
                        yeah well            01/01/70 00:00      
               other choices            01/01/70 00:00      
                  and there's Altera's MAX-II, too            01/01/70 00:00      
                     all different manufacturers            01/01/70 00:00      
                        ah ha well portablitly yes and no,            01/01/70 00:00      
                        crawl before you walk            01/01/70 00:00      
                           I'd get the belly even closer to the floor            01/01/70 00:00      
                              the problem with them is programming            01/01/70 00:00      
                        Multibrand HDL is like multiplatform in C            01/01/70 00:00      
                        code portability            01/01/70 00:00      
      since the beginning of time            01/01/70 00:00      

Back to Subject List