Written by Tom on Thursday 22/02/07
FPGA’s are useful in various number crunching applications. Being able to complete 32/64 bit multiplications every clock cycle you can process a lot of data quickly. The place to store the pre-processed and processed data is the RAM block.
You can get a simple VHDL RAM block from here.
From the GTKWaveSignals.jpg you can see that when the write enabled is active the data_out is set to ‘Z’ so can not be read. What ever the address is set to, is what is on data_out so if you are not writing you can read.
Compilation instructions for GHDL and viewing with GKTWave.
ghdl -a simpleRam.vhdl
ghdl -a simpleRam_tb.vhdl
ghdl -e simpleRam_tb
ghdl -r simpleRam_tb --vcd= simpleRam.vcd --stop-time=1us
gtkwave simpleRam.vcd signals