在verilog中如何将数据放入到ram中去

假定我的ram是10位宽,容量是16,则:reg[9:0]ram[15:0];我如何写代码才能将我算出的数放个这个ram中?然后我又如何才能将其读出呢?... 假定我的ram是10位宽,容量是16,则:
reg [9:0] ram [15:0];

我如何写代码才能将我算出的数放个这个ram中?
然后我又如何才能将其读出呢?
展开
 我来答
oakyyds
推荐于2016-05-09 · TA获得超过638个赞
知道小有建树答主
回答量:261
采纳率:50%
帮助的人:94.1万
展开全部

如果是存数据的话,建议你把 ram 写成一个模块,比如:

module SRAM_test(
  output reg [9:0] Q ,
  input            CLK ,
  input            CEN ,
  input            WEN ,
  input      [4:0] A ,
  input      [9:0] D   
);

parameter FF_WIDTH = 10;  // 宽度 10
parameter DEPTH = 16;     // 深度 16
parameter ADDR_WIDTH = 4; // ram地址宽度 4, 2^4 = 16

reg    [FF_WIDTH - 1:0] DPRAM [DEPTH - 1:0]; 

always @(posedge CLK)
if (~WEN & (~CEN))
    DPRAM[A] <= #0.1 D;

always @(posedge CLK)
 if (~CEN)
        Q <= #0.1 DPRAM[A]; 

endmodule

这样就相当于用verilog写的RAM,和工具生成的RAM用法一致,很方便的就可以随意存取了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式