九江论坛网

标题: 【讨论|求助】verilog怎么写能综合出异步的RAM [打印本页]

作者: 若放弃    时间: 2020-4-8 19:37:36     标题: 【讨论|求助】verilog怎么写能综合出异步的RAM

先把代码貼出来,一段很簡单的代码

   

         

            
module asyn_ram

#(parameter DWIDTH=4,//data width

                                AWIDTH=10)//address width

(

        input wr_clk,

        input[DWIDTH-1:0] wr_data,

        input wr_en,

        input[AWIDTH-1:0] wr_addr,

        

        input  rd_clk,

        output [DWIDTH-1:0] rd_data,

        input  rd_en,

        input[AWIDTH-1:0] rd_addr

);



reg[DWIDTH-1:0] rw_mem [2**AWIDTH-1:0];//define the memory

reg[AWIDTH-1:0] raddr;

always@(posedge wr_clk )

begin

        if(wr_en) begin

                rw_mem[wr_addr]<=wr_data;

        end

end



always@(posedge rd_clk)

begin

        if(rd_en) begin

                raddr<=rd_addr;

        end

end

assign rd_data=rw_mem[raddr];

endmodule


        

   

    复制代码

在quartus中综合后的RTL视图是这样的:
   


这个和我的逻辑对不上呢,读时钟不是驱动数据的输出的
在technology map viewer中是这样的
   


这个是在FPGA中实际生成的,应该是对的,可是RTL为什么是错的呢?有朋友知道原因吗?


作者: 853    时间: 2020-4-8 19:37:39

1# fucong_59
用modelsim仿真结果也是正确的





欢迎光临 九江论坛网 (http://www.ganzw.com/) Powered by Discuz! X2