For internal memory model use case, we currently only support simulation of the ASMI IP in Intel® Arria® 10 and Intel Cyclone® 10 GX devices with the flash model for the EPCQL1024 serial configuration device.
Follow the steps below to perform the simulation with the internal EPCQL model (Note: This simulation was tested with Mentor Graphics* ModelSim* SE simulation software).
1. Create simulation model for ASMI block and set the enable_sim parameter to true in file:
<project directory>/<ASMIIP name>/<altera_asmi_parallel_<quartus_version>>/<sim>/<ip_name>altera_asmi_parallel_<quartus_version>_<unique_ip_id>.v
2. Create test bench file with initialization of ASMI block (example below):
<ip_name>_altera_asmi_parallel_<quartus_version>_<unique_ip_id> dut(
.clkin (clkin), // clkin.clk
.fast_read (fast_read), // fast_read.fast_read
.rden (rden), // rden.rden
.addr (addr), // addr.addr
.read_status (read_status), // read_status.read_status
.write (write), // write.write
.datain (datain), // datain.datain
.sector_protect (sector_protect), // sector_protect.sector_protect
.sector_erase (sector_erase), // sector_erase.sector_erase
.die_erase (die_erase), // die_erase.die_erase
.wren (wren), // wren.wren
.read_rdid (read_rdid), // read_rdid.read_rdid
.en4b_addr (en4b_addr), // en4b_addr.en4b_addr
.ex4b_addr (ex4b_addr), // ex4b_addr.ex4b_addr
.reset (reset), // reset.reset
.sce (sce), // sce.sce
.dataout (dataout), // dataout.dataout
.busy (busy), // busy.busy
.data_valid (data_valid), // data_valid.data_valid
.status_out (status_out), // status_out.status_out
.illegal_write (illegal_write), // illegal_write.illegal_write
.illegal_erase (illegal_erase), // illegal_erase.illegal_erase
.read_address (read_address), // read_address.read_address
.rdid_out (rdid_out) // rdid_out.rdid_out
);
3. Run simulation.
To simulate with an external memory model, follow these steps:
1. Create simulation model for ASMI block and set the enable_sim parameter to false in file:
<project directory>/<ASMI IP name>/<altera_asmi_parallel_<quartus_version>>/<sim>/<ip_name>altera_asmi_parallel_<quartus_version>_<unique_ip_id>.v
2. Create test bench file with initialization of ASMI block (example in above section):
3. Create wrapper for external memory
4. In a simulation project make sure that you compile the following files for your working folder:
o flash simulation model
o asmi_sim_model design wrapper
o test bench file(s)
5. Run simulation.