大神给助攻呀:ram读取实验,为什么老是滞后三位?

2019-07-16 00:13发布

程序很简单,就是定义一个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)
                                        );
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。