4. Hardware, Firmware, Software
After reading this summary in full, the reader could review Table 1, and now he/she should understand all its content. Building from the lowest level, the electron, the different levels of abstraction with which we work in each specialty of electronics have been explained. This perspective also serves to understand other terminology that is typically used in the industry to differentiate the elements that make up an electronic product. We refer to hardware, firmware and software:
- Hardware: it is made up of physical and tangible elements, which can be touched. They include the card on which all the components are soldered and the components themselves, whether active, passive or integrated circuits. At an electronic level, they are the parts designed at the lowest level, either at the level of integration of materials or taking into account voltages and currents.
- Software: is the set of instructions that are executed in a device, typically uP or uC. Each high-level application has its own software. It is, therefore, a completely intangible element. Programming at a high level achieves the highest level of abstraction with respect to logic, circuits, currents and voltages, and the electron. Although sometimes it is not optimal, a programmer can design applications without knowing or understanding anything that is underneath, beyond the programming language.
- Firmware: typically, the lowest-level software that provides control for certain hardware has been called firmware. From this perspective, it is a permanent, non-changing software, that is stored in read-only non-volatile memory and allows high-level application software to use the device. The term firmware is also used to refer to the HDL, or associated configuration file, used to program an FPGA. With this second perspective, firmware could be seen as somewhere between the tangible and the intangible. It is associated with a description language, but it also represents digital hardware that is implemented and executed physically. In this perspective, the level of abstraction of the firmware is also high, designing with ‘1’s and‘ 0’s, but not as much as in the case of high-level software.
5. Practical Case
Finally, Figure 13 shows a complex electronic product. It is an evaluation board developed by the manufacturer Alinx, specifically the AX7450 [1]. The core of this product is a Xilinx Zynq family [2] chip.
This sophisticated product allows us to observe the tangible result of the conjunction of the technologies explained in this article. The core of the card is the Zynq-7000 family chip, colored gray in the center. It incorporates an FPGA and microprocessors inside. Therefore, the device can implement Boolean digital circuits while executing the processor instructions. Around this element, black rectangular components can be seen. These are memories to store data. Besides, it is possible to interact with other devices and elements through the connectors on the edge of the board (SD card, USB and Ethernet links, PCI express lines) and the vertical black connector on the left of the Zynq-7000. The PCI express lanes, mentioned above, are the yellow tracks on the bottom of the card. These lines can operate at very high speeds and are a good example of work in the area of signal integrity. The power supply of the card, + 12V, enters through the lower right corner connector, and is subsequently converted to lower levels to adapt to the working voltages of the different elements of the card. For this purely analog function, as for many others, discrete active and passive components are used, which are the tiny elements that are distributed throughout the entire product area.
Bibliography (Sponsored)
[1]: Alinx, ALINX AX7450C: Zynq-7000 SoC XC7Z100 PCIe (FPGA Development Board + USB Downloader).
[2]: Crocket, Louise, The Zynq Book: Embedded Processing with the Arm Cortex-A9 on the Xilinx Zynq-7000 All Programmable Soc, 2014.
Subscription
If you liked this contribution, feel free to subscribe to our newsletter: