Vous êtes sur la page 1sur 2

10/16/13

(1) Pasquale Ferrara's answer to What are some differences and similarities between software design and integrated circuit design? - Quora

Search
Pasquale Ferrara's answer to:

Write

Home

Ashish

What are some differences and similarities between software design and integrated circuit design?
needed skills and education, target applications and capabilities, strengths and limitations in practice, etc. View All 4 Answers Pasquale Ferrara, Ph.D. student doing research in electronic design automation Votes by Arnon Ilani, Hadayat Seddiqi, Rupert Baines, Pranav Natesh, and 2 more. Similarities: 1) Build automation. You need this to manage different versions of your IC designs and software builds. Git, Mercurial, Subversion, and CVS can be used for this. They are free. 2) Test automation. Automated regression testing for software and automated regression verification for ICs help ensure that the latest additions/modifications to the design does not cause previously implemented modules/subcircuits to fail. Automated debuggers also exist for software and digital ICs. 3) System or high-level design. UML can be used for both. You can use models of computation for design ICs or software at the system-level of abstraction or for architectural design (digital VLSI architecture, RF system architecture, and software architecture). System-level design languages (such as SystemC and SystemCAMS) can be used for specifying software and/or ICs at the system level, and to facilitate design space exploration. Tools exist for software refactoring and digital VLSI refactoring. 4) Formal methods and verification. Just as you can use design by contract or contract programming for software development, you can use assertions for specifying the requirements for the IC. There also exists formal methods and verification techniques for analog and mixed-signal circuits. They are not very welldeveloped, but they do exist. 5) Process control. Techniques and methodologies based Six Sigma and design for experiments can be used for process improvement. 6) Iterative and Incremental development (IDD). Many software projects use software development processes that support IDD, since software project requirements can change rapidly over the cost of the project. Since IC design is becoming more software-like, see aforementioned point on SystemC and SystemC-AMS, you want to iterate the design cycle several times till you meet your design objectives and constraints (pass beta testing for software or arrive at design closure for ICs). 7) Fault isolation and fault-tolerant design. The same concepts are used for software design and IC design. 8) Architectural design (hierarchical and modular design) for software and ICs (especially VLSI systems) are the same, or are similar 9) Algorithm design and analysis (including computational complexity and circuit complexity with applications to logic circuits). VLSI implementation of sorting, computer vision, and video/image/signal processing algorithms requires algorithm design at TLM (transaction-level model) and RTL (register-transfer level). Circuit complexity of digital VLSI systems should be reduced. 10) Automated document generation (via documentation generators for C++, SystemC, Verilog/VHDL, MATLAB, and Perl/Tcl/Python)

Follow Question

Promote Answer to 100 People

500 Credits to Promote

Answer Author

Pasquale Ferrara

Follow

Ph.D. student doing research in Electronic Design Automation More from Pasquale Ferrara Computer Science : What tangible nonplatform-specific skills do computer scientists pick up through their undergraduate education? 16 Without a doubt, computational thinking. ... (continue) Career Advice : What are the job prospects for an engineer with a PhD? 8 It all depends on the research topic of the Ph.D. graduate. ... (continue) C++ (programming language): Which companies have significant amount of C++ code base? 6 Companies in computational science and engineering, including ... (continue)

Share Answer Twitter Facebook

Answer Stats Latest activity 26 Mar Pasquale has written 319 answers. 303 views on this answer.

Differences. 1) Testing. The way you test software and ICs are different. You can test software on a computer, but you need expensive automated test equipment for ICs. 2) Verification. IC verification involves simulation and formal verification, while software verification typically only refers to software formal verification (some people may include software profiling and software timing analysis - as in WCET analysis). 3) Software implementation involves programming at a single level of abstraction... Either a set of high-level languages, such as C++ and Python, or assembly language. You compile/assemble that to produce a working binary (executable file)... You can mix programming languages/paradigms, but you usually don't want to move between levels of abstraction (from a modeling language such as UML to high-level code and then to assembly code and finally to binary/machine code). IC design involves working at different levels of abstraction. For analog circuits and

www.quora.com/What-are-some-differences-and-similarities-between-software-design-and-integrated-circuit-design/answer/Pasquale-Ferrara

1/2

10/16/13

(1) Pasquale Ferrara's answer to What are some differences and similarities between software design and integrated circuit design? - Quora
mixed-signal, you need to implement the architectural design with transistor-level circuits, before you can move on to physical design (producing the layout). Subsequently, you need to produce the masks for the design so that the design can be manufactured. For digital IC design, you need to implement the circuits at the behavioral level, followed by the logic level. Subsequently, you need to implement the circuit at the physical level (i.e., layout) and then produce the masks. Therefore, IC design is much more complicated in terms of the number of required steps than software development. 4) Digital ICs (and analog and mixed-signal circuits) are reactive systems. Software need not be reactive. Hence, the models of computation used in their respective design process need not be the same. Comment Share (1) Thank Report 10 Jul, 2012

www.quora.com/What-are-some-differences-and-similarities-between-software-design-and-integrated-circuit-design/answer/Pasquale-Ferrara

2/2

Vous aimerez peut-être aussi