[an error occurred while processing this directive]
|
хочу сделать рам с начальными значениями хранящимися в отдельном файле.
ram16x16.v:
module ram16x16(
input clk, we,
input [3:0] a,
input [15:0] di,
output [15:0] do);
reg [15:0] mem [15:0];
initial $readmemh("ram.dat", mem);
always @(posedge clk) if(we) mem[a] <= di;
assign do = mem[a];
endmodule
ram.dat
1110
2220
3330
4440
5550
6660
7770
8880
9990
aaa0
bbb0
ccc0
ddd0
eee0
fff0
f1f0
log:
@N: CG364 :"D:\1\ram16x16.v":1:7:1:14|Synthesizing module ram16x16
@W:"D:\1\ram16x16.v":8:0:8:6|Initial statement will only initialize memories through the usage of $readmemh and $readmemb
@N: CL134 :"D:\1\ram16x16.v":10:0:10:5|Found RAM mem, depth=16, width=16
@N: MF235 :"d:\1\ram16x16.v":10:0:10:5|Found startup values on ram instance mem[15:0]
На что синтезатор действительно ставит 16 штук ram16x1S и выплевывает файл симуляции ram16x16.vm, но в нем нет начальных значений из ram.dat, все регистры в начальный момент времени поставленны в ххх.
В файле edf тоже нет атрибутов с начальными значениями INIT="AAA"
Кто-нибудь сталкивался с такой батвой??? что делать?
E-mail: info@telesys.ru