首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教:FPGA输出单个脉冲

请教:FPGA输出单个脉冲

我用CPLD实现过单脉冲的输出,改用FPGA后不成功,苦思不得其解,希望大家给予指点。谢谢啦

fll7qRoC.bmp

基本思路是用一个计数器+一个译码器实现

如图,在第二个上升沿来时,输出为高,第一个,第三个时钟来时为低,第三个时钟到时停止计数器

如果一直允许的话,输出有连续脉冲,证明可以输出脉冲

但想不明白为何单个脉冲不出来

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;

或者更简单的说:如何实现以下功能

输入一个上升沿,输出一个脉冲~~~~~

我想了另外一个办法证明脉冲存在
在脉冲输出端接了个计数器,结果计数值发生了相应变化!OH`````YEAH

这个完全没有必要搞这些,你直接用一个assign语句赋值,然后延迟一段时间,再赋值回来,以后不循环不就得了!!

返回列表