Reset 信号的问题
问一个菜鸟问题:CPLD中如何上电后产生一个“Reset”信号。因为“initialize”语句不能被综合,各位大虾给个提示吧。 自己顶一下!不会都使用外部的硬件复位电路吧? 同问 initialize是仿真的时候用的,写testbench就要用到。
在时钟第一次来的时候可以reset一下呀 给变量置初值就行了。例如:
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]