-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
Fftgen lets you choose among multiple SRAM types e.g. 1port, 2port, and dpump (double-pumped).
Existing source code uses a single parameterized Genesis2 file fftram.vp for all three SRAM types, accomplished by way of various hacks including letting Perl choose between blocking and non-blocking assignments e.g.
- 2port SRAMS (2port, dpump) write on EVERY clock edge (?), uses non-blocking assignment "<="
- 1port SRAMs only write on posedge clock, uses blocking assignment "="
Anyway, bottom line is that the code is horribly tangled up and begs for a better solution.
E.g. should probably have separate modules something like sram_1port, sram_2port, sram_dpump or something.
Here's my notes FTW
/nobackup/steveri/github/fftgen/rtl/fftram.vp
//; # Yet another terrible hack
//; # Some configs work only w blocking assignments and others w non-blocking :(
//; # $ass = "="; # ver: 1port 2port ~dpump; vcs 1port 2port dpump
//; # $ass = "<="; # ver: ~1port 2port dpump; vcs ~1port 2port dpump
//; my $ass = ($SRAM_TYPE eq "TRUE_1PORT") ? "=" : "<=";
BETTER SOLUTION?
- separate files fftram_{1port,2port,dpump} w inlined SRAM
- AND/OR? separate files sram_{1port,2port,dpump}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels