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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5117|回复: 6

[求助] 【已解决】verilog中定义的存储空间的初始化问题

[复制链接]
发表于 2016-12-23 19:32:42 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ningyuan198 于 2017-1-1 22:03 编辑

大家好!我用verilog代码写了一个module,该module用reg模拟了一定大小的存储空间,
如reg [7:0] memory [255:0];

现在,我想在系统复位时,将此memory清零;

因为这些reg变量,最终综合出来应该是用数字库中的dff搭建的,而dff一般都有异步复位端,因此,将这些dff的复位端都连接到系统复位信号,应该就能实现复位清零;

在verilog代码阶段,在复位时,将每个memory[x]都置0,应该能够达到相同的复位清零效果;
但是,这么写,代码就太多了;
如果在复位时,用for语句来将memory清零,综合出来,是否能够达到将各dff的复位端接系统复位信号的预期?

当然,在实际应用中,会通过通信协议将此memory写一遍,然后再使用此memory,但没有初值总让人担心。

PS:不是不想用工艺厂提供的RAM,而是,这个工艺还不太成熟,工艺厂还没有提供RAM,因此,就想通过寄存器来实现RAM,面积方面倒是不太关心。
发表于 2016-12-26 11:13:35 | 显示全部楼层
不用管复位端,综合会报warning,但没关系
 楼主| 发表于 2016-12-26 11:54:51 | 显示全部楼层
回复 2# haimo


   多谢!
发表于 2019-7-11 17:30:15 | 显示全部楼层
你好,想问一下这个问题最后是怎么解决的呢?
发表于 2019-7-12 09:58:43 | 显示全部楼层
本帖最后由 jinjz 于 2019-7-12 10:20 编辑


华胥之国 发表于 2019-7-11 17:30
你好,想问一下这个问题最后是怎么解决的呢?


可以用for句子解决初始化问题。

integer i;

always @ ( posedge clk ) begin
if ( rst == 1'b1 ) begin
  for ( i=0; i<256; i=i+1 ) begin
   memory <= 8'b0;
  end
end
else begin
   if ( wr_en == 1'b1 ) begin
     .....
     .....
   end
end
end

发表于 2019-7-14 17:04:23 | 显示全部楼层


jinjz 发表于 2019-7-12 09:58
可以用for句子解决初始化问题。

integer i;


嗯嗯,谢谢啦!我把代码敲上去试试。
发表于 2019-7-15 08:47:13 | 显示全部楼层
仅仅是初始化,直接用for循环就行了,generate for语句都没有必要。
写一个最简单的例子,综合后看看综合的结果就明白资源的问题了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-7-16 06:38 , Processed in 0.019833 second(s), 7 queries , Gzip On, MemCached On.

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