I've always wondered the steps involved in designing a microcontroller. Let's say one wanted to design a dedicated motion control chip, would this be "hard wired" into the chip? What kind of software is generally used for the design of these chips? And is this a lengthy, complex process which requires multiple PHDs?


closed as too broad by pjc50, Matt Young, PeterJ, Leon Heller, Scott Seidman Jun 25 '15 at 14:02

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ possible duplicate of How are CPUs designed? \$\endgroup\$ – pjc50 Jun 25 '15 at 12:59
  • \$\begingroup\$ For dedicated chip, you can look for ASIC (application specific IC) \$\endgroup\$ – GmodCake Jun 25 '15 at 12:59
  • 2
    \$\begingroup\$ Software used: products of Cadence, Synopsys, etc. Lengthy: product cycle is 6-18 months. PHDs: not required, but digital logic design is a sub-specialty of EE. \$\endgroup\$ – pjc50 Jun 25 '15 at 13:00

An experienced engineer could hack this together in an FPGA fairly quickly using a hard or soft core for the micro. A good design would take longer because of documentation, CDRs and other parts of a proper design process.

The design of the control algorithms is more mathematically challenging than the chip that runs them, especially if you have to calculate inverse kinematics and such like.

Once proven in an FPGA it could be transferred to an ASIC process at a foundry, given enough time and money. That would be more of a business decision where the volume has to justify the up-front costs.

Software would be the FPGA tools such as Vivado, and MATLAB/Simulink for the control algorithm design (there exist open source alternatives to the latter, which is very expensive).


Not the answer you're looking for? Browse other questions tagged or ask your own question.