Skip to content

A resource-friendly VHDL model for large memory simulations

License

Notifications You must be signed in to change notification settings

heikoengel/sparsemem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SparseMem

SparseMem is a resource-friendly VHDL model for large memory simulations.

The package is parametrized with generic and needs to be defined when used, e.g.:

  package my_sparsemem is new work.sparsemem_pkg
    generic map(
        G_ADDR_WIDTH => 32,
        G_DATA_WIDTH => 32);

-- [...]

  variable mem : work.my_sparsemem.SparseMem;
  -- [...]

Note that each address holds one data word of the configured width. With the above example config, there's a 32 bit word stored at each address. Byte- or Word-addressing has to be implemented in the instatiating entity if needed.

Compilation

Example for Model/Questasim:

vcom pkg/sparsemem_pkg.vhd

Usage

Use sparsemem_pkg.vhd in your own design and create a new package with the address/data widths needed. An example is shown in models/simple_ram.vhd.

Simulation

A basic testbench for the sparsemem_pkg package is in tb/tb_sparsemem.vhd.

About

A resource-friendly VHDL model for large memory simulations

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages