我用CPLD实现过单脉冲的输出,改用FPGA后不成功,苦思不得其解,希望大家给予指点。谢谢啦
基本思路是用一个计数器+一个译码器实现 如图,在第二个上升沿来时,输出为高,第一个,第三个时钟来时为低,第三个时钟到时停止计数器
如果一直允许的话,输出有连续脉冲,证明可以输出脉冲
但想不明白为何单个脉冲不出来 STOP模块中程序很简单 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; ENTITY stop is PORT(clk: IN std_logic; stop:OUT std_logic); END stop; ARCHITECTURE hello OF stop IS BEGIN process(clk) begin if(clk='1' and (clk'last_value ='0')) then stop <= '0'; else stop <= '1'; end if; end process; END hello;
|