This is just an intro to steps in ASIC design (meant for beginners only). If something is incorrect please feel free to let me know.
Steps
Get specifications for design -> Do a top level architecture -> Do a block level architecture -> Write spec for block level design -> Code RTL(add assertions also) -> Verify block level (check coverage also) -> Run through linting tools to check that things are fine -> Prepare synthesis script (use/derive spec based on top level system spec) and run synthesis -> Integrate block level and do system level verification (check coverage) -> Do a top level synthesis (based on your chip specs and plan) -> Do floorplanning -> Do placement and routing -> Do physical analysis (check for timing, power, congestion etc) -> Generate bit level file for fabrication lab -> Goes to ASIC foundry and comes back as chip -> Do a testing (if everything is fine, do a mass production)
Which is of growing importance today (hardware design or software design)?
My opinion, not sure. Today, there is improvement in both direction. So we have more and more software trying to mimic hardware (software modem etc) we also have more and more hardware trying to implement software (for e.g. hardware antivirus, interesting isn't it :-)). Idea with hardware antivirus is that people will not be able to tamper the original antivirus program plus it can scan packets coming in at super speed (see one story here http://gizmodo.com/5473196/patent-for-hardware-antivirus-device-granted-to-russian-inventor ) .
What do you think?
Steps
Get specifications for design -> Do a top level architecture -> Do a block level architecture -> Write spec for block level design -> Code RTL(add assertions also) -> Verify block level (check coverage also) -> Run through linting tools to check that things are fine -> Prepare synthesis script (use/derive spec based on top level system spec) and run synthesis -> Integrate block level and do system level verification (check coverage) -> Do a top level synthesis (based on your chip specs and plan) -> Do floorplanning -> Do placement and routing -> Do physical analysis (check for timing, power, congestion etc) -> Generate bit level file for fabrication lab -> Goes to ASIC foundry and comes back as chip -> Do a testing (if everything is fine, do a mass production)
Which is of growing importance today (hardware design or software design)?
My opinion, not sure. Today, there is improvement in both direction. So we have more and more software trying to mimic hardware (software modem etc) we also have more and more hardware trying to implement software (for e.g. hardware antivirus, interesting isn't it :-)). Idea with hardware antivirus is that people will not be able to tamper the original antivirus program plus it can scan packets coming in at super speed (see one story here http://gizmodo.com/5473196/patent-for-hardware-antivirus-device-granted-to-russian-inventor ) .
What do you think?
No comments:
Post a Comment