FlashROM in Actel’s Low-Power Flash Devices
v1.1
5 - 9
3. Read from File—This provides the full flexibility of FlashROM usage to the customer. If you
have a customized algorithm for generating the FlashROM data, you can specify this setting.
You can then generate a text file with data for as many devices as you wish to program, and
load that into the FlashPoint programming file generation software to get programming
files that include all the data. SmartGen will optionally pass the location of the file where
the data is stored if the file is specified in SmartGen. Each text file has only one type of data
format (binary, decimal, hex, or ASCII text). The length of each data file must be shorter
than or equal to the selected region length. If the data is shorter than the selected region
length, the most significant bits will be padded with 0s. For multiple text files for multiple
regions, the first lines are for the first device. In SmartGen, Load Sim. Value From File allows
you to load the first device data in the MEM file for simulation.
4. Auto Increment/Decrement—This scenario is useful when you specify the contents of
FlashROM for a large number of devices in a series. You can specify the step value for the
serial number and a maximum value for inventory control. During programming file
generation, the actual number of devices to be programmed is specified and a start value is
fed to the software.
SmartGen allows you to generate the FlashROM netlist in VHDL, Verilog, or EDIF format. After the
FlashROM netlist is generated, the core can be instantiated in the main design like other SmartGen
cores. Note that the macro library name for FlashROM is UFROM. The following is a sample
FlashROM VHDL netlist that can be instantiated in the main design:
library ieee;
use ieee.std_logic_1164.all;
library fusion;
entity FROM_a is
port( ADDR : in std_logic_vector(6 downto 0); DOUT : out std_logic_vector(7 downto 0));
end FROM_a;
architecture DEF_ARCH of
FROM_a is
component UFROM
generic (MEMORYFILE:string);
port(DO0, DO1, DO2, DO3, DO4, DO5, DO6, DO7 : out std_logic;
ADDR0, ADDR1, ADDR2, ADDR3, ADDR4, ADDR5, ADDR6 : in std_logic := 'U') ;
Figure 5-10 SmartGen GUI of the FlashROM