January 2017
Introduction
Memory errors can occur when high-energy charged particles alter the stored charge in a memory cell in an elec-
tronic circuit. The phenomenon first became an issue in DRAM, requiring error detection and correction for large
memory systems in high-reliability applications. As device geometries have continued to shrink, the probability of
memory errors in SRAM has become significant for some systems. Designers are using a variety of approaches to
minimize the effects of memory errors on system behavior.
SRAM-based PLDs store logic configuration data in SRAM cells. As the number and density of SRAM cells in an
PLD increase, the probability that a memory error will alter the programmed logical behavior of the system
increases. A number of approaches have been taken to address this issue, but most involve Intellectual Property
(IP) cores that the user instantiates into the logic of their design, using valuable resources and possibly affecting
design performance. The MachXO2™ devices have a hardware implemented SED circuit which can be used to
detect SRAM errors and allow them to be corrected.
This document describes the hardware-based SRAM CRC Error Detect (SED) approach taken by Lattice Semicon-
ductor for MachXO2 PLDs.
SED Overview
The SED hardware in the MachXO2 devices is part of the Embedded Functional Block (EFB) consists of an access
point to the PLD's Configuration Logic, a Controller Circuit, and a 32-bit register to store the CRC for a given bit-
stream (see Figure 1). The SED hardware reads serial data from the PLD's Configuration memory and calculates a
CRC. The data that is read, and the CRC that is calculated, does not include EBR memory or PFUs used as RAM.
The calculated CRC is then compared with the expected CRC that was stored in the 32-bit register. If the CRC val-
ues match it indicates that there has been no configuration memory corruption, but if the values differ an error sig-
nal is generated.
Figure 1. System Block Diagram
© 2017 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal. All other brand
or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
www.latticesemi.com
Configuration Clock
Divider (66MHz)
Internal OSC
266MHz
SED Clock Divider
(2.08MHz - 33MHz)
MachXO2 SED Usage Guide
EFB
Glitchless
SMCLK
Clock
MUX
1
Technical Note TN1206
Configuration
Logic
SED Control
Circuit
32-Bit CRC
Register
TN1206_2.0