LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Sponsors
  • Mirrors
  • Logos
  • Contact us
  •  
    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: Joachim Strömbergson<Joachim.Strombergson@I...>
    Date: Tue, 21 Jan 2003 09:48:23 +0100
    Subject: Re: [oc] Real newbie questions
    Top

    Aloha!
    
    (This turned into "Joachims 0.02 Euro of rambling on HW design"... ;-)
    
    Rudolf Usselmann wrote:
    > HDLs in general are a bit different than any "normal"
    > programming language you have used. <snip>
    
    Totally agree. I get a serious itch every tine I hear the phrase "(V)HDL 
    programming". You don't program using HDL languages, you describe hardware. A 
    *huge* difference.
    
    The "HDL programming" thinking seem to be esp pervasive in the FPGA/CPLD 
    design world. For smaller designs with low performance, this might work. But 
    as we move into SoPCs and implement larger platforms, ignoring the hardware 
    when designing have really started to bite people in their behinds.
    
    There are tons of failed HW designs out there that went belly-up because 
    people "programmed in HDL", got the correct functional behaviour in the 
    simulator and then fell on their face because the HW was unable to meet 
    requirements, didn't make sense in a physical world and got all kinds of weird 
    problems. All this because they use HDL to program a functional behaviour, not 
    describe a real, physical object that is to be implemented in an integrated 
    device.
    
    You can be an ace on the VHDL language, but it will not help you a bit (no pun 
    intended) if you think in terms of programming, not HW. You should learn 
    digital HW design and describe that in your choice of HDL language, not the 
    other way around. I'll even go so far as saying that if you need to use fancy 
    language constructs to implement your HW, then you have probably done 
    something wrong [1]. (Normally data- vs control path separation, analysis of 
    functionality.)
    
    To bring it back to the schematic vs HDL discussion; Schematic design entry in 
    the old-school sense where you actually select gates and RTL blocks from a 
    library is good simply because you actually see such things as fan-out, gates 
    etc and it's way harder to "ignore" that you are working with HW.
    
    Schematic entry in the style of Renoir, Visual HDL and similar tools are much 
    more evil. The reason for this is that you can have (and there have been 
    numerous instances of that) designers implementing large designs with a total 
    control and focus on functional behaviour, but zero knowledge or control over 
    the resulting HW [2].
    
    This is especially true for flow chart descriptions and there are several 
    reasons for this to be the case:
    
    (a) There is no natural separation of control and data. The operations 
    tranforming the data and the control mechanisms for the operations are 
    combined in the diagrams. This leads to a general mixup of the design which 
    makes physical implementation as well as testing much more complicated.
    
    (b) You work with variables, not wires. People look at variables in one 
    diagram that is being set in another diagram, and fail to realise that this 
    implies a wire/bus between the logic implementing each diagram. I've seen the 
    Routing Nests From Hell caused by this.
    
    Not all graphical representations are bad. I would go as far as saying that 
    FSM diagrams are bening, but have seen few productivity gains from them 
    compared to textual representation.
    
    Graphical connectivity representation is Really Good. Hierarchical ones that 
    allows you to work with Werner diagrams in sub blocks, and combine/create data 
    structures with symbolic widths for the block interfaces can be a real time 
    saver, especially when you use a methodology with separate deliveries and road 
    maps for the sub blocks and the interconnect structure.
    
    HDLs are great for describing things at RTL level. To get there spend lots of 
    time doing the system design work. Whiteboards with multiple colors pens are 
    great. Use graphical tools for you interconnect and finally, use a good editor 
    top write your RTL. Conservative? Yep. Does it work? Yep.
    
    Side note: Knowing OO-stuff as a HW engineer is also a Good Thing. Thinking in 
    OO-terms, use cases, classes etc when doing you system design work is the way 
    to go. Substitute "Class" with "IP-core" and off you go.
    
    
    
    Notes:
    ------
    [1] But there are advanced language constructs that *can* be extremely useful. 
    The important thing is to stay away from the trap of focusing on the tool (the 
    language) rather than the problem at hand (the HW and the design to be 
    implemented).
    
    [2] My favourite term is "code freeze". Used by some to indicate that when the 
    design meets the functional requirements (in the simulator), the design is 
    finished. All that is left is to synthesise the HDL and get HW at the other 
    end. Yeah riiight. ,-)
    -- 
    Med vänlig hälsning, Yours
    
    Joachim Strömbergson - Alltid i harmonisk svängning.
    VP, Research & Development
    ----------------------------------------------------------------------
    InformAsic AB / Hugo Grauers gata 5B / SE-411 33 GÖTEBORG / Sweden
    Tel: +46 31 68 54 90  Fax: +46 31 68 54 91  Mobile: +46 733 75 97 02
    E-mail: joachim.strombergson@i...  Home: www.informasic.com
    
    
    
    
    

    ReferenceAuthor
    [oc] Real newbie questionsNiclas Hedhman
    Re: [oc] Real newbie questionsJohn Sheahan
    Re: [oc] Real newbie questionsJoachim
    Re: [oc] Real newbie questionsNiclas Hedhman
    Re: [oc] Real newbie questionsRudolf Usselmann

    Follow upAuthor
    Re: [oc] Real newbie questionsLars Segerlund
    Re: [oc] Real newbie questionsJohn Sheahan

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