Tech Spotlight Summer of FPGAs:
A Field Programmable Gate Array (FPGA) is a programmable integrated circuit that works similarly to any digital circuit serving thousands of gates. An FPGA is made of logic blocks armed with a user-programmable switch matrix, and this arrangement allows it to accommodate design changes. Unlike its predecessors, programmable read-only memories (PROMs) and programmable logic devices (PLDs), an FPGA uses a re-programmable and efficient medium like Flash memory or static RAM (SRAM) to store its configuration information. Flash and SRAM are often added to boost the performance of FPGA-fitted embedded systems, utilizing this memory for a variety of tasks, such as storing software code or caches and databases that ultimately aid in hardware acceleration. This article will discuss the different types of memory used in FPGA-based applications, their advantages and disadvantages, memory issues, and embedded Flash memory design.
Types of Memory in FPGAs
The memory requirements in FPGA systems depend on the type of application. Embedded systems can accommodate the following types of memories:
- Volatile Memory: Volatile memories like RAM (SRAM), FPGA on-chip memory, and synchronous static RAM (SSRAM) can only preserve their contents as long as the memory device is connected to a power supply.
- Non-Volatile Memory: Non-volatile memories preserve their contents even after power is disconnected, making these excellent choices for information storage. Non-volatile memory typically stores processor boot-code, FPGA configuration data, and persistent application settings. Compared to volatile memory, it is slower to write. It includes all kinds of Flash, EEPROM, and EPROM. The following sections discuss specific types of memory used in embedded systems.
- External SRAM: External SRAM (static RAM) connects externally to its FPGA. The inclusion of SRAM memories in designs introduces both advantages and drawbacks. External SRAM devices offer larger storage capacities, while also providing speed. These provide high throughput and extremely low latency. External SRAM is also better able to match the size of the RAM to system requirements and provides an easier upgrade path to higher density RAM or FPGAs. When it comes to disadvantages, SRAM devices occupy a larger board space and are comparatively more expensive.
- Flash Memory: Flash memory is a variety of non-volatile memory. This low-power, highly reliable, and inexpensive hard drive substitute is external in FPGA-based embedded systems. It allows numerous erase cycles. The Flash memory's non-volatility enables it to store microprocessor boot code and any data that must be well-maintained in the event of a power failure. Contemporary embedded systems extensively use Flash memory for boot code storage, settings, and huge data blocks like video or audio streams. One possible disadvantage of flash, as compared to other storage technologies, is its write speed in certain applications.
Understanding Embedded Flash Memory Design
Flash memory is also called a Solid-state Storage Device due to its lack of moving parts. Memory cells are arranged to store data. Memory cells consist of flash transistors, which can be configured to an ON or OFF state. Compared to a standard MOSFET transistor, flash transistors include a second gate, called a “floating gate”. In an ON state, electrons are trapped on the floating gate and remain, even when the device is powered off. In the OFF states, there are no electrons on the floating gate. This is the method in which data is stored. Figure 1 illustrates the structure of FGMOS (Floating Gate MOSFET) that involves the electrical isolation of a standard MOS transistor gate to make it a floating gate (zero resistive connections). A secondary gate (multiple if there are any multiple-gate transistors) is designated as the control gate, and is deposited above the floating gate and electrically isolated from the same using any insulator, such as Si02.
Figure 1: The structure of a FGMOS, which is a typical MOSFET with the floating gate added
There are two types of flash memory: NOR and NAND, named for their different architecture. With NOR design, the memory cells are connected in parallel, while NAND design uses an array of memory cells connected in series. NOR flash memory reads data slightly quicker than NAND. It provides data buses and complete addresses to access its memory locations randomly. NAND Flash enjoys considerably increased storage densities and occupies a lesser chip area per cell, and can be sourced at a reduced cost relative to NOR. SLC NAND sees endurance of 50k-100k program/erase (P/E) cycles, while higher capacity, MLC and 3D TLC architectures range 3k-5k P/E cycles. The application usage model and operational environment must always be taken into account when predicting life cycle/endurance of any Flash storage solution. NAND is also a better storage media fit for large files like audio and video. SD cards, microSD cards, CFast cards, CFexpress cards and USB thumb drives, belong to the NAND category and are removable form factors. NAND lacks a random-access external address bus, which means that the data must be read on a block-wise basis.
Selecting Memory Cards for Specific Applications
The popularity of SD cards stems from their multiple advantages like low power, ease of integration, compact physical size, and reasonable data rates. However, the correct card must be selected for the application and its user (a maker or an OEM). Retail cards work fine for most applications, but a sudden change in the firmware or controllers may create problems for the OEM.
Industrial-grade cards have thus been developed, and are distinct from retail cards and strictly comply with all Secure Digital Association specifications. Another vital divergence between industrial-grade and retail-grade cards is the reliability and endurance of the base Flash technology. All FPGA-dependent applications like image and speech processing must be low-cost. Flash comes in three main grades: SLC (single-level cell), TLC (Triple-level cell), and MLC (multi-level cell). SLC is preferred in industrial applications that need low density (approximately 16GB maximum), but it requires mission-critical data to be stored in demanding environments. MLC comes into the picture if the requirements comprise higher densities but less critical data within industrial temperatures. TLC is generally used for consumer applications with dispensable endurance and factors permitting extreme high-density mass storage.
Most FPGA-based embedded systems encounter multiple issues concerning memory in newer models of video and audio consumer electronic devices. Real-time applications suffer from longer overall response times, due to a combination of delayed data processing speeds, storage accretion, and an undesirable increase in retrieval and communication times. Errors may crop up when the data is being read from (and writing the same in) memory. In order to prevent memory issues, modern SD cards incorporate features such as an on-card intelligent controller for interface protocol management, security algorithms, defect handling and diagnostics, clock control, data storage, retrieval, error handling, corresponding error correction code (ECC) algorithms, and power management.
Delkin's Memory Product Series
Delkin offers a range of memory products, from commercial to industrial-grade, including industrial microSD cards, secure digital memory cards, and CFast devices. These are high-endurance NAND Flash storage solutions for industrial applications, with SD and microSD utilizing the SD interface, while CFast utilizes the SATA interface, providing multiple interface options for flexibility in design. All of these cards feature a controlled Bill of Materials (BOM), Life Cycle Management, applications support, and they also adhere to the specifications set forth by the Secure Digital Association. Key characteristics such as small size, low power consumption, high reliability, and simplicity of integration also make the form factor suitable for many industrial applications with limited real estate storage.
Industrial microSD Memory Cards
Industrial microSD Memory Cards include industrial-grade high endurance SLC NAND Flash solutions in the U331C Series, as well as cost-effective MLC/Industrial 3D NAND Flash versions in the Utility and Utility+ Series. Delkin also offers the COEM Series of microSD cards, which are a cost-optimized product family ideal for OEM applications needing economical, durable, and reliable 3D NAND Flash storage.
Figure 2: (Image Source: Delkin Devices)
Industrial SD Memory Cards
Delkin Industrial SD Memory Cards include industrial-grade, high endurance SLC NAND Flash SD card solutions in the D330 Series, as well as cost-effective MLC/Industrial 3D NAND Flash versions in the Utility and Utility+ Series.
Figure 3: (Image Source: Delkin Devices)
For embedded platforms that have used Compact Flash as a boot drive or other storage medium, and now face a migration from PATA to SATA due to a processor change, the Delkin F300 Series Industrial CFast is a logical choice for new designs. Industrial CFast has all of the mechanical advantages of CF – small, rugged, cased, easily customizable – with the added benefits of the SATA interface. Delkin offers industrial temperature CFast capacities in SLC to provide the best solution for a given application, whether write-intensive requiring high endurance, or cost-sensitive.
Figure 4: (Image Source: Delkin Devices)
For Further Discussion: What Else Would You Like To Know About Memory Storage? (Please leave a comment)