急!如何在复位时对RAM进行初始化?
系统是异步复位,复位信号有效时,要将RAM中的所有值清零,复位信号结束前,要完成对RAM的复位,这样的初始化程存用Verilog代码应该怎么写啊(可综合!)?希望大家能给点意见,急用!
如果是sram 之类的,本身不支持reset
如果用reg 实现,
.....
if( ~xx_reset ) //reset
begin:rst
integer i ;
for(i=0 ;i< MEM_NUM ;i=i+1)
mem_r[i] <=0 ;
end
else .......
是SRAM…………
如果是SRAM的话,不能另外写一段程序在复位的时候初始化吗?
在主程序当中就能对ram复位,另外调用程序不是浪费系统资源么···
是设计芯片,sram是单独做的,所以要在外面加一个复位模块,不能在ram的的代码中加入初始语句(for循环之类)
基本上是不可能的。复位阶段时钟失效,不可能对SRAM复位。
唯一的办法是在复位的时候,有一部分的电路实际上并不在复位阶段,而工作去复位SRAM,等SRAM复位了,再通知全局复位,然后全局电路工作,这部分电路休眠。
The last one will be the answer , I prefer. for SRAM( 6T ) balance, you must start a hardware proceduare to write all RAM bit to "1" before finish chip initialize.
SRAM要复位的话就只能一个单元一个单元的写0吧
学习了!
可能要像7楼说的,分步复位吧!
2楼的正确,采用for循环
RAM本就是先写后用的,为什么要复位啊
如果非要,可以用对每个单元进行一次写0操作来实现
外部复位释放后触发状态机对sram清零操作,该操作完毕后,释放系统复位。
