24小时热门版块排行榜    

查看: 452  |  回复: 2

cjzx0625

新虫 (初入文坛)

[求助] verilog中ram读取实验中,为什么老是滞后三个数据?

程序很简单,就是定义一个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 ??
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cjzx0625

新虫 (初入文坛)

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)
                                        );
                               
endmodule
2楼2015-01-08 10:11:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

张九林林

新虫 (初入文坛)

先写进去,再读出来,ram有三个时钟的延迟的
3楼2015-10-07 17:14:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cjzx0625 的主题更新
信息提示
请填处理意见