微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于信号上升沿的检测,,没有头绪

关于信号上升沿的检测,,没有头绪

时间:10-02 整理:3721RD 点击:
在检测到输入信号的上升沿时,输出一个脉冲,其它时间输出为零。没有思路,诚向老鸟们请教

思路: 两个时钟域。 一个是准备输出脉冲一直工作的时钟。 另一个是上升沿信号看作一个时钟。
reg isTriggered, output;
always @ (posedge edge)
isTriggered <= ~isTriggered;
reg [1:0] shift_reg;
always @ (posedge clk)
begin
     shift_reg      <= {shift_reg[0], shift_reg[1]};
     shift_reg[0] <= isTriggered;
     if (shift_reg[0] != shift_reg[1])
          output <= 1;
     else
          output <= 0;
end

你的第一个always的敏感量是啥呀? 2# iceyo

你要检测的信号

那isTriggered是啥呀?  初学者,见笑了
4# iceyo

变量名称,你随便命名。 你可以看看入门的HDL语言的书。如果你还没有学过数字系统,要看看数字系统。

我的意思是这个变量的含义 6# iceyo

数字电路最基本的电路之一
两个D触发器+一个门

好,谢谢!

最基础问题;
采用一个时钟周期小于 你要检测的输入信号持续为高电平时间的这样一个检测时钟;(目的是能够采样到检测信号变高)
遵循异步时钟域采样规则, 打三拍,第三拍信号取反和第二拍相与即可。
不理解的话,画一下波形。

你检测到上升沿到产生脉冲信号中间的时间间隔是多少?如果是简单的同步产生,那么做一个简单的抓沿程序就好;如果是需要有一定的时间间隔,那就一个抓沿信号,然后做一个单稳态触发器,用此抓沿信号做单稳态触发器的触发信号就OK了

时钟域打拍是什么意思呀?

时钟域打拍ms就是加一级寄存器。
always @(...)
...
   r2 <= r1;
...

11# 潇湘月色
没有规定脉冲宽度,,你说的抓沿程序是什么思路呀,,

上一篇:求助一小程序
下一篇:一个基础问题

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top