HK168 发表于 2009-8-26 13:29:39

Reset 信号的问题

问一个菜鸟问题:CPLD中如何上电后产生一个“Reset”信号。因为“initialize”语句不能被综合,各位大虾给个提示吧。

HK168 发表于 2009-8-27 08:50:13

自己顶一下!
不会都使用外部的硬件复位电路吧?

R28FA 发表于 2009-8-27 08:53:24

同问

wangli1013 发表于 2009-8-27 09:04:09

initialize是仿真的时候用的,写testbench就要用到。
在时钟第一次来的时候可以reset一下呀

holycat 发表于 2009-8-27 14:58:51

给变量置初值就行了。例如:

entity RESET is
port (
    CLK_IN:    instd_logic;
    RESET_OUT: out std_logic
);
end RESET;

architecture rtl of RESET is
constant RST_PERIOD: integer := 50;
signal   INIT_CNT:   integer range 0 to RST_PERIOD := RST_PERIOD;

begin
process(CLK_IN)
begin
    if (CLK_IN'event and (CLK_IN = '1')) then
      if (INIT_CNT /= 0) then
      INIT_CNT <= INIT_CNT - 1;
      RESET_OUT <= '1';
      else
      RESET_OUT <= '0';
      end if;
    end if;
end process;
end rtl;

设时钟频率为1kHz,计数器RST_PERIOD初值设为50,则复位输出RESET_OUT的宽度为50ms。(附仿真结果)

http://cache.amobbs.com/bbs_upload782111/files_17/ourdev_475203.GIF
页: [1]
查看完整版本: Reset 信号的问题