微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 急!如何在复位时对RAM进行初始化?

急!如何在复位时对RAM进行初始化?

时间:10-02 整理:3721RD 点击:

系统是异步复位,复位信号有效时,要将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清零操作,该操作完毕后,释放系统复位。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top