Verilog经验总结__RAM模块(block ram)

在FPGA设计实现中,经常要用到RAM,这里的RAM一般指的是是静态的RAM。一般FPGA(如xilinx)中就有所谓的block RAM, 它就是现成的RAM资源,我们如果合理编写verilog代码,就可以使我们想要的RAM被综合成block RAM,从而节省逻辑资源,而且性能更优。

在书写某些模块时候,用到了特别大的RAM,比如reg   [14:0]        mem[0:9999999];通常情况下会出现无法综合的情况,这时候我们就需要自己书写一个RAM模块,然后在原来模块中调用RAM模块。

module double_ram_gclis
#(
    parameter           DATA_WDTH = 6'd15,      //输入数据的位宽
    parameter           COL = 2048,				//RAM中数据个数
    parameter           COL_BITS = 11           //地址线位数
)
(
    input                       clk,			//时钟信号
    input   [COL_BITS-1:0]      addra,			//写入数据的地址
    input   [DATA_WDTH-1:0]     dina,			//写入的数据
    input                       wea,			//写有效信号
	
    input   [COL_BITS-1:0]      addrb,			//输出数据的地址
    output  [DATA_WDTH-1:0]     doutb			//输出的数据
);

reg     [DATA_WDTH-1:0]         mem[0:COL-1];	//定义RAM

assign doutb = mem[addrb + 0];

always @ ( posedge c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值