process(ub_clk_12m8)
begin
if ub_clk_12m8'event and ub_clk_12m8='1' then
m_pulse_delay <= m_pulse_add_in;
if m_count_flag = '1' then
if m_pulse_count >= "00101101110001101101100100000000" then
m_count_flag <= '0'; --关闭计数
else
m_pulse_count <= m_pulse_count + '1';
end if;
end if;
end if;
if m_pulse_delay = '1' and m_pulse_add_in = '0' then
if m_pulse_count >= "00101101110001101010011100000000" then
m_pulse_flag <= '1'; --标志捕捉到合法分脉冲
end if;
m_count_flag <= '1'; --打开计数器
m_pulse_count <= "00000000000000000000000000000000";
else
m_pulse_flag <= '0';
end if;
end process;
m_pulse_flag 信号有时候能及时发出上升沿,有时候延后发出上升沿,有时候连上升沿都出不来
分成两个process写,每个都是时序逻辑
没有输出的应该是分脉冲线路那边接触不良,只能这么猜测了