LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Find Resources
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cores > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Austin Franklin<austin@d...>
    Date: Thu Jul 15 14:06:15 CEST 2004
    Subject: [oc] Why open processors are so much slower than commercial ones?
    Top
    Hi Justin,

    > Similar to if you try to compile a matrix multiple program (for example)
    > with the C compiler GCC, compared to by hand, you'll find that you get a
    > HUGE markup in execution time doing it by your self. Compilers aren't very
    > smart!!

    Not quite sure what you are saying here, it seems to be contradictory. You
    say "you get a HUGE markup in execution time doing it by your self" which,
    to me, means it runs slower... I think you meant to say the opposite, that
    you believe it will run faster if you hand compile it, as you then say
    "Compilers aren't very smart". Actually, this, in my experience, is not
    true. It is rare, these days, that you can hand compile code that runs
    faster than a compiler can, especially code of any size. Compilers have
    come a very long way over the past few decades.

    > So I suggest that maybe they have closed to hand compiled the core, making
    > sure all the blocks are laid out very cleverly to reduce clock delay and
    > skew.

    You are probably correct, but keep in mind, software does not have
    placement/routing, and FPGA hardware does...what this means, is there is yet
    another level of complexity beyond compilation that attributes to FPGA
    hardware performance. The hardware compilers are in fact reasonably good
    these days, but there have been no real improvements in placement/routing,
    algorithmically that is.

    The saving grace is that FPGA manufacturers are making faster chips with
    more resources. Kind of the same reason the PC runs so fast, even with bad
    C code. And speaking of bad code, it is really essential, for using any
    compiler, that the code writer understand what the compiler does with what
    constructs, as some will compile more "efficiently" than others. It helps
    to run a few test cases of different methods of writing the same algorithm
    and seeing what the compiler does.

    Regards,

    Austin


     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.