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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
11/13/06 00:29
Read: times


 
#127838 - Static Timing Analysis and those "young engineers"
Responding to: ???'s previous message
Richard Erlacher said:
But what about your customer?

No question, there are some things that work out in a page of code that would take longer to enter in a schematic. One popular example is a HEX-to-7-segment encoder. Then, of course, a decoder would probably be just as much trouble. I'm not totally in disagreement about what's workable or easier. I just have to work around the question of, "easier for whom?" all the time.

It's all about the documentation from where I sit. I have to have documentation that actually represents what the customer agreed to buy. As a consequence, I have to present it in a form that my customer, normally a very senior engineer, now in a management position, can readily see addresses his initial requirements, and can understand, at least to his own satisfaction. He doesn't want to become an expert on my particular implementation, but he was already an expert on what he wanted before my work started, and he wants to be assured, formally, that what he's been sold is what he agreed to buy.


OK, so if your customer requires you to provide schematics, then you provide schematics. Fair enough. Your customer is, unfortunately, still living in the stone age.

If you don't do post-fit or post-PAR timing simulations, you've no idea whether the circuit will perform as claimed.


BULLSHIT.

Routing delays can vary considerably. Most of the time spent on making FPGA's work is spent on making the routing work out so that the timing isn't all fouled up by the time it's done. Yes, you can simply say, "The $20 FPGA is too slow, so we have to use the $120 one..." but that won't please anybody, except perhaps the guy who demanded the upgrade.


The WHOLE POINT of running static timing analysis on the placed and routed design is so you KNOW that your design meets your timing constraints. If your timing constraints are incomplete, then you need to rethink how you specify them. Routing delays are taken into account. Look at any timing report -- a big part of it is detailing the worst-case routing delay. Also included is clock-to-output delays on output pins, setup and hold times for input pins (w.r.t. the clock).

And here's a good question for you. When you run your post-route simulations, what sort of models are you using for your stimulus? It's one thing to simulate the FPGA to see if its internal logic meets timing (and you already know that from the STA), but it's quite another thing to know if your FPGA meets your SDRAM's timing requirements. If you do a post-route simulation that doesn't include the peripheral timing, you're wasting your time.

I have a library of models that are functional and including timing information. A simple generic turns off timing checks and delays. This is useful because when doing a functional analysis of a fully synchronous design, you don't have to worry about timing when doing the RTL coding, and if I do, for whatever reason, want to do a post-route timing sim, I can. You do your functional simulations and ensure the logic is correct. Then you let the synthesizer and fitter tools do their work. You run the STA on the fitter results, and if you meet timing (STA tells you), you know that your design will work. If you don't meet timing, there's no point in running a post-route simulation (or worse, programming the chip on a board). The STA tells you what paths don't meet timing, and then you go back to either your synth/fitter configuration constraints (change fan-outs/fan-ins, duplicate registers for speed, etc.; there's a bunch of options). If you still can't get the code to meet timing, you can go back and look at the specific logic that fails and change your code. It may very well turn out that the FPGA doesn't go as fast as you need for particular bits of code and you have to rethink your implementation.

The worst case is that you DO have to bite the bullet and get a faster part. And here, too, the STA is helpful: you can tell the tools that you wish to analyze the logic if it was fit into a faster part. No need to re-run all of the tools.

The issue with which I'm constantly confronted is that young engineers (the ones under 40) are not really dedicated to doing the job. They're interested in (a) getting the job, (b) keeping the job, and (c) moving on to a "better" job.


Perhaps the work isn't challenging or interesting. Young engineers find that rehashing a small part of someone else's older design is useful for learning how a company's system works, but if it turns out that all that person will do is rehashing the same thing over and over, of course that person will leave!

They don't care whether their design works well over the long haul, since they've then collected their bonus


bonus? where?

and moved on to another company that wants the technology someone has already paid to have developed. That's why the managers don't like the HDL-only presentation, because they have to hire someone to translate it into terms they can understand and believe. They know they can't rely on those youngsters who were taught HDL and for whom schematics are less interesting. They know they will find omissions in the documenatation, skipped simulation efforts, and slight of hand in the presentation. They know they can't trust 'em. That's why they, the senior engineers and managers, want to get their hands around what's really been done.


That works both ways. I don't know how many times I've been handed the work of a "senior person" who left the company and been told "fix this." Schematics that don't make sense, no design notes indicating why something was done, stupid net names, you name it. And yeah, I can read a schematic. I see WHAT it does. I want to know WHY it does it.

The point is that a lazy engineer will implement a design in the laziest, least-documented fashion possible, regardless of design entry method. And blaming younger engineers for laziness is missing the point. The younger engineers need to be trained to be diligent in their work, and they really do emulate the methods of the people for whom they work. If they see that all design entry (again, regardless of format) is undocumented and slapdash, their designs will be undocumented and slapdash. If a company has rigorous coding styles and documentation requirements that senior engineers agree with and actually use, the young engineer will conform.

And if they see senior people disparaging a design entry method or work flow or documentation style, then (since they are young and don't know any better), they will adopt that attitude.

Maybe I'm the oddball, but as I gained experience, I grasped the utility of functional simulations and formal verification, even when others around me were doing burn-and-crash FPGA design. It was hard being the young guy trying to convince the elders that maybe there was a better way to do things. I'm not so young anymore (40, last I checked), but I seem to still have that problem.

-a

List of 81 messages in thread
TopicAuthorDate
Getting Started With FPGAs            01/01/70 00:00      
   A Book            01/01/70 00:00      
   Proceed with caution!            01/01/70 00:00      
   This is quite a nice deveolpment board            01/01/70 00:00      
   I like this board            01/01/70 00:00      
      I\'ve got one of these and can\'t recommend it            01/01/70 00:00      
         What are you talking about            01/01/70 00:00      
            Let me explain ...            01/01/70 00:00      
   generaly speaking            01/01/70 00:00      
      Damn, Jez, you need a spell-checker!            01/01/70 00:00      
         HDL-based design needs TEST BENCHES            01/01/70 00:00      
            I use 'em all the time, but ...            01/01/70 00:00      
               If your design is so simple            01/01/70 00:00      
                  What\'s important is the entry effort            01/01/70 00:00      
                     I dunno where you get these ideas from Richard            01/01/70 00:00      
                        Can you say ModelSim?            01/01/70 00:00      
                     Wrong            01/01/70 00:00      
                        Well, the schematic needs a little work            01/01/70 00:00      
                           more work?            01/01/70 00:00      
                              a few points ...            01/01/70 00:00      
                           ...            01/01/70 00:00      
                     HDL vs Schematics, take 1E6            01/01/70 00:00      
                        Thta may be great comfort to you ...            01/01/70 00:00      
                           Schematics? You're kidding!            01/01/70 00:00      
                              No, nor is my customer.            01/01/70 00:00      
                              both are a 'representation of Boole'            01/01/70 00:00      
                                 Yep, you're right...            01/01/70 00:00      
                                    To Clarify            01/01/70 00:00      
                                       schematic as equivalence check            01/01/70 00:00      
                                          Manual verification impossible because ...            01/01/70 00:00      
                                             schematic verification            01/01/70 00:00      
                                       Some more clarification            01/01/70 00:00      
                                          hanging problem            01/01/70 00:00      
                                             so will your post be            01/01/70 00:00      
                                    it's not fear of the unknown, but fear of its cost            01/01/70 00:00      
                           Static Timing Analysis and those "young engineers"            01/01/70 00:00      
                              It's a sign of the times, I suppose            01/01/70 00:00      
                                 And times change            01/01/70 00:00      
                                 senior?            01/01/70 00:00      
                                    That's because you've been avoiding the subject            01/01/70 00:00      
            I agree entirely. test benches are a pain but            01/01/70 00:00      
   Update from the OP            01/01/70 00:00      
      It's true ... we see things differently            01/01/70 00:00      
      the first buuk for any such venture            01/01/70 00:00      
      FPGA boards and that Cypress book            01/01/70 00:00      
         This may answer your question(s)            01/01/70 00:00      
   some of the references in the fpga faq            01/01/70 00:00      
      Good attitude            01/01/70 00:00      
   Also remeber to look at webistes like www.xilinx.c            01/01/70 00:00      
   My recommendation and opinions            01/01/70 00:00      
      I would stay away from Virtex-II            01/01/70 00:00      
         If you're going to fiddle with the 805x core ...            01/01/70 00:00      
            Something about life-cycles            01/01/70 00:00      
               No doubt about it.            01/01/70 00:00      
                  useful work            01/01/70 00:00      
                     Well, I beg to differ.            01/01/70 00:00      
                        salient point            01/01/70 00:00      
                           There's an area where that's not necessarily true            01/01/70 00:00      
                           FPGA Editor            01/01/70 00:00      
            Not necessarily            01/01/70 00:00      
               It's still too costly            01/01/70 00:00      
   Thanks to all            01/01/70 00:00      
   Update #2 from the OP            01/01/70 00:00      
   A testbench is...            01/01/70 00:00      
      I C            01/01/70 00:00      
         test bench            01/01/70 00:00      
            Makes sense            01/01/70 00:00      
   Yeah but...            01/01/70 00:00      
   Tristate buffer with propagation delays            01/01/70 00:00      
   Schematics vs. HDL            01/01/70 00:00      
      In a nutshell            01/01/70 00:00      
         it\'s been a while            01/01/70 00:00      
      Yes, but ... and there's always a but ...            01/01/70 00:00      
   Yep you can its called gate level design            01/01/70 00:00      
   Its really nothing to do with showing off            01/01/70 00:00      
      did you paraphrase this?            01/01/70 00:00      
      Jez, It\'s not \"sea of gates\" design, you know ...            01/01/70 00:00      
         Richards, it is there philosophy            01/01/70 00:00      
         Viewlogic            01/01/70 00:00      
   it is true            01/01/70 00:00      
   Here you go Richard graphical design exploration            01/01/70 00:00      

Back to Subject List