在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 2617|回复: 1

[求助] 小白求助,如何用verilog实现一个Sram 阵列。

[复制链接]
发表于 2021-8-20 12:27:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
比如实现一个256X256的SRAM cell阵列。
sramcells.jpg
发表于 2021-8-20 12:58:04 | 显示全部楼层
本帖最后由 轩辕志瑜 于 2021-8-20 13:07 编辑

把一个单元模块实例化256次,每个单元就是一比特。比如:
  DReg_wEnable
        d0 (.clk(clk), .reset(reset), .e(dec_out[0]),  .D(data_in), .Q(d0_out)),
        d1 (.clk(clk), .reset(reset), .e(dec_out[1]),  .D(data_in), .Q(d1_out)),
        d2 (.clk(clk), .reset(reset), .e(dec_out[2]),  .D(data_in), .Q(d2_out)),
        d3 (.clk(clk), .reset(reset), .e(dec_out[3]),  .D(data_in), .Q(d3_out)),
        d4 (.clk(clk), .reset(reset), .e(dec_out[4]),  .D(data_in), .Q(d4_out)),
        d5 (.clk(clk), .reset(reset), .e(dec_out[5]),  .D(data_in), .Q(d5_out)),
        d6 (.clk(clk), .reset(reset), .e(dec_out[6]),  .D(data_in), .Q(d6_out)),
        d7 (.clk(clk), .reset(reset), .e(dec_out[7]),  .D(data_in), .Q(d7_out)),
        d8 (.clk(clk), .reset(reset), .e(dec_out[8]),  .D(data_in), .Q(d8_out)),
        d9 (.clk(clk), .reset(reset), .e(dec_out[9]),  .D(data_in), .Q(d9_out)),
        d10 (.clk(clk), .reset(reset), .e(dec_out[10]),  .D(data_in), .Q(d10_out)),
        d11 (.clk(clk), .reset(reset), .e(dec_out[11]),  .D(data_in), .Q(d11_out)),
        d12 (.clk(clk), .reset(reset), .e(dec_out[12]),  .D(data_in), .Q(d12_out)),
        d13 (.clk(clk), .reset(reset), .e(dec_out[13]),  .D(data_in), .Q(d13_out)),
        d14 (.clk(clk), .reset(reset), .e(dec_out[14]),  .D(data_in), .Q(d14_out)),
        d15 (.clk(clk), .reset(reset), .e(dec_out[15]),  .D(data_in), .Q(d15_out)),
        d16 (.clk(clk), .reset(reset), .e(dec_out[16]),  .D(data_in), .Q(d16_out)),
        d17 (.clk(clk), .reset(reset), .e(dec_out[17]),  .D(data_in), .Q(d17_out)),
        d18 (.clk(clk), .reset(reset), .e(dec_out[18]),  .D(data_in), .Q(d18_out)),
        d19 (.clk(clk), .reset(reset), .e(dec_out[19]),  .D(data_in), .Q(d19_out)),
        d20 (.clk(clk), .reset(reset), .e(dec_out[20]),  .D(data_in), .Q(d20_out)),
        d21 (.clk(clk), .reset(reset), .e(dec_out[21]),  .D(data_in), .Q(d21_out)),
        d22 (.clk(clk), .reset(reset), .e(dec_out[22]),  .D(data_in), .Q(d22_out)),
        d23 (.clk(clk), .reset(reset), .e(dec_out[23]),  .D(data_in), .Q(d23_out)),
        d24 (.clk(clk), .reset(reset), .e(dec_out[24]),  .D(data_in), .Q(d24_out)),
        d25 (.clk(clk), .reset(reset), .e(dec_out[25]),  .D(data_in), .Q(d25_out)),
        d26 (.clk(clk), .reset(reset), .e(dec_out[26]),  .D(data_in), .Q(d26_out)),
        d27 (.clk(clk), .reset(reset), .e(dec_out[27]),  .D(data_in), .Q(d27_out)),
        d28 (.clk(clk), .reset(reset), .e(dec_out[28]),  .D(data_in), .Q(d28_out)),
        d29 (.clk(clk), .reset(reset), .e(dec_out[29]),  .D(data_in), .Q(d29_out)),
        d30 (.clk(clk), .reset(reset), .e(dec_out[30]),  .D(data_in), .Q(d30_out)),
        d31 (.clk(clk), .reset(reset), .e(dec_out[31]),  .D(data_in), .Q(d31_out));
或者这样
parameter RAM_WIDTH = 32;                  // Specify RAM data width
parameter RAM_DEPTH = 512;                  // Specify RAM depth (number of entries)

reg signed [RAM_WIDTH-1:0] memory [0:RAM_DEPTH-1];
直接定义一个这么大的reg然后像操作矩阵一样操作就ok了。
这玩意本就是堆资源的,别想得那么复杂。



回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-8-22 13:17 , Processed in 0.012592 second(s), 4 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表