FlashROM memory provides the security of stored data in addition to a 128-bit AES decryption core. You can read, modify, and write to the FlashROM using the JTAG interface; however, you can only read it from the FPGA core.
FlashROM Flow
Access FlashROM from the SmartGen tool. It opens a special FlashROM core generator that enables you to configure the FlashROM functionality.
Note: FlashROM is available only for ProASIC3 and ProASIC3E devices.
ProASIC3/E devices have a flexible programming option. The FlashROM and the FPGA core fabric can be programmed independently of each other, allowing the FlashROM to be updated without changing the FPGA core fabric. The following are just a few examples of possible applications for the FlashROM feature:
Internet protocol (IP) addressing (wireless or fixed)
System-calibration settings
Device serialization and/or inventory control
Subscription-based business models (e.g. set-top boxes)
Secure key storage
Asset management tracking
Date stamping
Version management
The FlashROM is programmed using the standard IEEE1532 JTAG programming interface. Pages can be individually programmed (erased and written) and on-chip AES decryption can be used selectively to load data securely into the FlashROM (such as application-based security keys stored in the FlashROM for a design). See the FlashPoint help or user's guide for information on how to program your FlashROM-enabled devices.
The FlashROM can selectively be read back both through the JTAG programming interface or via direct FPGA core addressing. Its contents can only be updated via the JTAG interface. A seven-bit address from the FPGA core defines which of the eight pages (3 MSBs) is being read and which of the 16 bytes in the page (4 LSBs) are being read.
The FlashROM is physically organized as 8x128 bit blocks and logically organized as eight pages by 16 bytes. Only Flash FPGAs contain on-chip nonvolatile memory (NVM) and Actel's ProASIC3/E is the only FPGA to support this feature.
You can assign specific regions of the FlashROM for specific purposes by floorplanning the FlashROM and assigning properties. The content of these regions can be modified during programming time if you assign a modifiable content property to a given region. If you do not want the FlashROM content to be modified, you can fix the content in SmartGen.
When you generate a new FlashROM file the generator saves the following files for you to use throughout the design cycle:
SmartGen GEN file
Netlist file - use this file to instantiate your core, just as you would instantiate any other core in your design
UFC file - User Flash configuration file, it contains all the configuration information regarding the FlashROM data content and is used for programming. You can export a core map file that contains the core programming information and use it along with the UFC file to generate programming files. Designer software supports importing the UFC file and launching the programming file generator to merge the FPGA core map file and the FlashROM programming file.
MEM file - FlashROM specific memory initialization file. The MEM file has 128 rows of eight bits, representing the contents of the FlashROM. SmartGen will default to 0s for any unspecified locations of the FlashROM memory. This file is used exclusively for simulation.
Use the FlashROM help to:
Configure FlashROM in SmartGen
Simulate Pre/Post Synthesis
Synthesize
Place-and-Route
Run Back-Annotation and Timing Simulation
Specify security settings
Specify FlashROM content
Generate a programming file