大神给助攻呀:ram读取实验,为什么老是滞后三位?
时间:10-02
整理:3721RD
点击:
程序很简单,就是定义一个8*16的ram,其中地址0~7中存1~8,地址8~15存的是0。将ram中的数据一次存入C,再用串口输出。可结果为什么是:00 00 00 01 02 03 04 05 06 07 08 00 00 00 00 00 ?always @ (posedge clk or negedge rst_n)//复位时,将Ram里的数据输出。
begin
if (!rst_n)
begin
wren=0;
data=0;
i=0;
C=0;
end
else
if (i<16)
begin
address=i[3:0];
C={C,8'b0};
C[7:0]=q;
i=i+1;
end
else
flag=1;
end
uart_C uart_C_O( .SYSCLK(clk), //输出数据
.RST_N(rst_n),
.UART_TX_O(uart_o),
.start(flag),
.C(C)
);
my_RAM my_ram( .address(address),
.clock(clk),
.data(data),
.wren(wren),
.q(q)
);
begin
if (!rst_n)
begin
wren=0;
data=0;
i=0;
C=0;
end
else
if (i<16)
begin
address=i[3:0];
C={C,8'b0};
C[7:0]=q;
i=i+1;
end
else
flag=1;
end
uart_C uart_C_O( .SYSCLK(clk), //输出数据
.RST_N(rst_n),
.UART_TX_O(uart_o),
.start(flag),
.C(C)
);
my_RAM my_ram( .address(address),
.clock(clk),
.data(data),
.wren(wren),
.q(q)
);
大神呀大神~你们在哪?
有人说是因为ram在生成ip核的时候,默认了打三拍,是这样吗?
仿真一看,便知原因所在了,不知道小编的问题解决了没?有没有在下能帮到的。需要的话可以加我QQ详聊:528369266。希望能够帮到你
问题解决啦,不过还是谢谢你,那我加一下你的扣扣,以后有别的问题的话也好请教一下你哈