打印

检测边沿问题

[复制链接]
2092|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
廊桥拾梦|  楼主 | 2013-2-26 19:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家帮忙比较下面两种边沿信号的检测程序那个好,优势何在
reg [1:0] SCKr;                          //内部寄存器
always @(posedge clk)
SCKr <= {SCKr[1], SCK}; //内部寄存器对SCK计数

wire SCK_risingedge = (SCKr[1:0]==2'b01);  //检测出SCK的上升沿
wire SCK_fallingedge = (SCKr[1:0]==2'b10);  //检测出SCK的下降沿
还有下面这种方法



reg [2:0] SCKr;                          //内部寄存器
always @(posedge clk)
SCKr <= {SCKr[2:1], SCK}; //内部寄存器对SCK计数

wire SCK_risingedge = (SCKr[2:1]==2'b01);  //检测出SCK的上升沿
//wire SCK_fallingedge = (SCKr[2:1]==2'b10);  //检测出SCK的下降沿

相关帖子

沙发
廊桥拾梦|  楼主 | 2013-2-27 08:11 | 只看该作者
怎么都是过来看帖没人回帖的啊

使用特权

评论回复
板凳
wangqiyin| | 2013-2-28 15:36 | 只看该作者
老兄,呵呵,刚开始学FPGA吧。那种写的都不好。第一种:会引入很多毛刺,不提倡这么写。第二种:在你的技术上稍改会好些
reg [2:0] SCKr;                          //内部寄存器
always @(posedge clk)
SCKr <= {SCKr[1:0], SCK}; //内部寄存器对SCK计数

wire SCK_risingedge = (SCKr[2:0]==3'b011);  //检测出SCK的上升沿
//wire SCK_fallingedge = (SCKr[2:1]==2'b10);  //检测出SCK的下降沿

使用特权

评论回复
地板
廊桥拾梦|  楼主 | 2013-3-14 15:19 | 只看该作者
wangqiyin 发表于 2013-2-28 15:36
老兄,呵呵,刚开始学FPGA吧。那种写的都不好。第一种:会引入很多毛刺,不提倡这么写。第二种:在你的技术 ...

你的方法很好啊学习了!

使用特权

评论回复
5
GoldSunMonkey| | 2013-3-14 19:32 | 只看该作者
廊桥拾梦 发表于 2013-3-14 15:19
你的方法很好啊学习了!

嗯嗯,不错

使用特权

评论回复
6
wmsk| | 2013-3-14 19:56 | 只看该作者
方法不错啊

使用特权

评论回复
7
oucchina| | 2013-3-27 12:57 | 只看该作者
如果采样时钟比检测信号频率高很多的话,最好每三个以上的采样时钟检一次。

使用特权

评论回复
8
ifpga| | 2013-3-27 13:36 | 只看该作者

使用特权

评论回复
9
GoldSunMonkey| | 2013-3-27 23:27 | 只看该作者
ifpga 发表于 2013-3-27 13:36

怎么了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

104

帖子

2

粉丝