微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 大神给助攻呀:ram读取实验,为什么老是滞后三位?

大神给助攻呀: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)
                                        );

大神呀大神~你们在哪?

有人说是因为ram在生成ip核的时候,默认了打三拍,是这样吗?

仿真一看,便知原因所在了,不知道小编的问题解决了没?有没有在下能帮到的。需要的话可以加我QQ详聊:528369266。希望能够帮到你

问题解决啦,不过还是谢谢你,那我加一下你的扣扣,以后有别的问题的话也好请教一下你哈

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top