What makes an embedded system vs. VLSI?
When we think about integrated circuits, both from a design and implementation perspective, one tends to see the emergence of embedded systems with dedicated computational capabilities. In essence, any digital system that manipulates data using some dedicated, application-specific software is an embedded system, which can be implemented at a hardware-specific level using very large-scale integration (VLSI).
There is an element of programming in both design methodologies. Embedded systems design focuses on writing code that is implemented on a flexible piece of hardware, while VLSI focuses on translating programming instructions into a structure for an integrated circuit. Here’s what you need to know about the similarities and differences between embedded systems vs. VLSI design for digital systems.
Embedded Systems vs. VLSI Design
Explaining the difference between embedded systems and VLSI takes the right analogy: embedded systems are to software as VLSI is to hardware. An embedded system runs on the back of a dedicated programmable logic device (PLD). These integrated do not have narrowly defined functions or applications. Yes, they process data, but the programming instructions that define how these components process data need to be defined at the software level.
This is normally done with high-level programming languages, which are then compiled into machine-level byte code using a specific compiler. Different PLDs, particularly MCUs, have their own dedicated languages and compilers for translating programming instructions into machine-level code. The integrated circuit that reads and executes this code is already designed and is set in stone.
Contrast this with what happens in an integrated circuit, such as a system-on-chip (SoC), which is often built as an application-specific integrated circuit (ASIC). These integrated circuits are designed to perform very specific functions within a particular application. One great example is in car radar; transceiver ICs that integrate standardized oscillators, amplifier stages, filtration, transmission and reception functions, and signal processing functions are available from a number of component manufacturers. These SoCs fit nicely within an embedded ecosystem and help reduce the workload on a central processor.
VLSI design processes have allowed these SoCs and other ASICs to be built from groups of transistors at the integrated circuit level using a standard set of software languages and libraries. The code that is built in the VLSI design process defines the architecture of the integrated circuit that will run the code; in effect you are designing a specific hardware architecture to run your particular software instructions. In embedded systems design, the programming instructions need to be adapted to the hardware, while in VLSI, the hardware is being designed to run specific programming instructions.
Software and design for embedded systems vs. VLSI
VLSI design flows and languages can also be used to build an MCU, FPGA, or other reconfigurable logic devices for executing embedded software. Embedded systems design normally focuses on the software side, where code is developed to run on an existing platform, such as an MCU or an FPGA. Because VLSI design is closer to hardware design, it requires a careful attention to floorplanning, layout, transistor sizing, routing, clock and power distribution, and timing.
VLSI and Embedded Systems Programming
In case it isn’t obvious by this point, embedded systems design and VLSI require choosing an appropriate programming language for your next application. Embedded systems that will run on an MCU or CPU with an operating system, such as Linux kernels, can be programmed using standard languages that incorporate specialized libraries. Some examples include C/C++, Rust, Python, and many others.
Your component manufacturer will usually provide the required libraries and compilers for these languages, which will allow you to focus on functionality rather than specific translations into machine-level code. In VLSI, the programming languages for IC design are called hardware description languages (HDLs). These include VHDL, Verilog, System Verilog, C, and scripting languages like Perl and TCL. In VLSI, the development methodology a team follows is as important as the HDL used to build a new product.
This might be the product of your VLSI design process...
Once you’ve created new logic devices for use in embedded systems, you’ll need to create some basic PCB layout instructions so that designers can use your new product. This should include some recommendations on stackup design to ensure signal and power integrity, defining the signalling standard used for routing, and listing any other components required to support these products. Any data-intensive application will most likely need to interface with some external memory, which is usually implemented using microSD cards or onboard DDR memory.
Silicon IP, custom IC design companies, and large component manufacturers typically build evaluation boards to allow embedded systems developer to write and test their code on a new product. This is standard practice in the SBC, system-on-module (SoM), COM markets. There is another element of software development here; if you’re using VLSI to build custom ICs, you may need to create design libraries or an operating system that runs on your new product.
Whether you are designing for embedded systems vs. VLSI for new ICs, you’ll need the right PCB design and analysis software to build evaluation boards, SoMs, SBCs, or other finished products. Allegro PCB Designer and Cadence’s full suite of analysis tools can help you build boards for your new products and examine signal and power integrity throughout your next digital system. The Allegro FPGA System Planner package is ideal for translating your ideas into machine-level code on FPGAs.
If you’re looking to learn more about how Cadence has the solution for you, talk to us and our team of experts.