xlht 发表于 2014-11-8 12:12:43

SDRAM(K4S641632)不同长度的突发设置问题

各位好:
        在参考特权同学SF-EP1C FPGA开发套件的“ex16_sd_vga_photo”时,想实现一个功能,对突发写时采取突发长度BL=1的方式,读时采取突发长度整页BL=256,目的是实现指定任意位置写显示数据,而不影响读-写屏的速度。
        但是仅简单的把突发长度进行修改到BL=1不可实现,最少得设置BL=4,否则会出现错位显示的问题。
        因此不明白了,除了突发长度进行修改外,是不是还有什么地方需要同步修改。
        请看看有没有朋友了解的,请指导一下,先谢谢了!

xlht 发表于 2014-12-5 22:07:01

最后还是调好了,修改了FIFO读写使能同步,并把SDRAM完成标志提前一个时钟打入到FIFO:)

jm2011 发表于 2014-12-6 10:46:21

顶一下,期待lz把修改后的开源和讲座

xlht 发表于 2014-12-6 21:20:26

        //锁存两拍sdram_wr_ack,用于下降沿捕获
always @(posedge clk_100m or negedge rst_n)
        if(!rst_n) begin
                        sdwrackr1 <= 1'b0;
                        sdwrackr2 <= 1'b0;
                end
        else begin
                        sdwrackr1 <= sdram_wr_ack;
                        sdwrackr2 <= sdwrackr1;                       
                end
wire neg_sdwrack = ~sdwrackr1 & sdwrackr2;        //sdram_wr_ack下降沿标志位,高有效一个时钟周期


------------上面部分没有修改过,照旧----------------
------------下面部分修改了两处,见注示----------------
//例化SDRAM写入数据缓存FIFO模块
wrfifo                        uut_wrfifo(
                                        .aclr(fifo_aclr),
                                        .data(fifo_data),
                                        .rdclk(clk_100m),//----把读写时钟改成同一个
                                        .rdreq(sdwrackr1),//-----把SDRAM写完成标志提前一个时钟周期打入
                                        .wrclk(clk_100m),//----把读写时钟改成同一个
                                        .wrreq(fifo_wrreq),
                                        .q(sys_data_in),
                                        .wrusedw(wrf_use)
                                );

这样修改后,可以正常的跑起来
页: [1]
查看完整版本: SDRAM(K4S641632)不同长度的突发设置问题