Accessing ram logic in Verilog with an initial block gives an error
"cannot synthesize initialized RAM logic <name> "
A part of the code will be as follows (I coded using Quartus Prime Lite 18.1):
module test(input [5:0] dm_abus,dm_wr_bus, output reg [5:0] dm_rd_bus,input rd_mem,wr_mem); reg [5:0] data [0:63]; initial data = 6'd10; always @(dm_abus or rd_mem) if(rd_mem) dm_rd_bus = data[dm_abus]; always @(dm_abus or wr_mem or dm_wr_bus) if(wr_mem) data[dm_abus] = dm_wr_bus; endmodule
In this code by removing the initial block or one of the two always blocks, then the code will compile successfully.
Reading and writing of the memory and giving initial values to the array should be essential though.
What can be done about this issue?