Why this segment of the market is so promising, and what you need to know to succeed in it.
If you’re planning your career in the semiconductor industry, make sure you consider processor design. Now the aspiring VLSI engineers like you can implement the open-source processor RISC-V while learning from the textbooks. But why should a VLSI engineer understand the processor design? Does everyone implement the processor as an RTL designer?
In this article, I will address these questions and explain why learning processor is essential for your long-term career in the semiconductor industry.
Any chip, a simple embedded microcontroller, or a complex system-on-a-chip (SoC), will have one or more processors. Figure 1 shows a complex electronic system composed of both hardware and software needed for electronic devices like smartphones.
Fig. 1: Electronic system.
The hardware is made up of a complex SoC that incorporates almost all the components needed for the device. In the case of the smartphone, we integrate all the hardware intellectual property (IP), such as CPUs, GPUs, DSPs, application processors, interface IPs like USB, UART, SPI, I2C, GPIO, subsystems like system controllers, memories with controllers, Bluetooth, and WiFi, etc., and create the SoC. Using SoCs helps us to reduce the size and power consumption of the device while improving its performance.
The software is composed of application software and system software. The application software provides the user interface, and the system software provides the interface to application software to deal with the hardware. In a smartphone, the application software could be mobile apps like YouTube, Netflix, and Calculator, and the system software could be the operating system like iOS or Android. The system software provides everything like firmware and the protocol stack, along with the OS needed for the application software to interface with the hardware. The OS manages multiple application threads in parallel, memory allocation, and I/O operations as a central component of the system software.
It all works together like this. When you invoke an application like a calculator on a smartphone, the operating system loads the executable binary from the storage memory into RAM. Then it immediately loads its starting address into the program counter of its processor. The processor [ARM/x86/RISC-V) executes the binary loaded in the RAM pointed by the PC [address of RAM]. This precompiled binary is nothing but the machine language of the processor, and therefore the processor executes the application in terms of its instructions [ADD/SUB/MULT/LOAD] and calculates the results.
Understating the processor Instruction Set Architecture (ISA) can help VLSI engineers deal with any complex chip at the system level. As part of the SoC implementation process, they may need to deal with various things like virtual prototyping for system modeling, subsystem and SoC functional verification, hardware-software co-verification, emulation, ASIC prototyping, post-silicon validation, etc. throughout their career. It demands a cohesive and complete knowledge and understanding of both hardware and software, especially to work independently as experts on specific things like verification or validation while communicating with software teams to deal with the software, RTOS/firmware/stacks.
So what can you do for a smooth journey in your long-term VLSI career? Answer: Implement a processor like RISC-V. It helps you to understand various things like RTL pipelined architecture and verification. Using the same processor, implement a small subsystem like an embedded microcontroller. Also, verify the same using the firmware code[C/C++ application program] on a simulator/FPGA board. It helps you to understand the complete product development cycle and deal with any chip/SoC.
For example, you may come across a complex SoC verification environment, as shown in figure 2. The SoC testbench [TB] will have all kinds of testbench components like standard UVM Verification IPs [USB/Bluetooth/WiFi and standard interfaces], legacy HDL TB components [JTAG Agent] with UVM wrappers, custom UVM agents [Firmware agents], and some monitors, in addition to the scoreboard and SystemC/C/C++ functional models. In this case, you will have to deal with both firmware and UVM sequences. As a verification engineer, you need to know how to implement this kind of hybrid verification environment using the standard VIPs, legacy HDL BFMs and firmware code, and more importantly, how to automate the simulation using EDA tools.
Fig. 2: SoC verification environment. UVM-Universal Verification Methodology UVC-UVM Verification component BFM-Bus Functional Model VIP-Verification IP RAL-Register Abstraction Layer.
Let me explain how it works. For example, if the SoC uses an ARM processor, usually we replace the ARM RTL [Encrypted Netlist] with its functional model called DSM [Design Simulation Model] that can use the firmware [Written in C] as a stimulus to initiate any operation and drive all other peripherals [RTL IPs]. So the SoC verification folks write UVM sequences to generate various directed scenarios through firmware testcases and verify the SoC functionality. During the simulation, the complete C source code is compiled as an object code[ARM Machine Language binary] which will be loaded into on-chip RAM. The ARM processor model [DSM] reads the object code from memory and initiates the operation by configuring & driving all the RTL peripheral blocks [Verilog/VHDL].
Knowing only UVM TB coding in HVL like SystemVerilog alone will not help. We need sound VLSI engineers who understand the processor and RTL well to debug the simulation failures and fix them, communicating the implementation issues effectively to both designers and software programmers. Most of the traditional verification engineers in the industry do black-box verification as testbench coders, managing the regression testing. As the application of AI in EDA will automate both RTL and testcase generation, the next generation of VLSI engineers should be ready with the complete understanding of both hardware and software to deal with the implementation of chips and SoCs, and knowing one processor well is the right way of taking the first step in their long-term career.
Leave a Reply