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

verilog边沿触发的疑问

1。“但我想xx不要通太长,几个clk后就要为0”,一个clk后为0还有办法,你要求几个就得要计数器了,因为“几个”是你定的,硬件不知道“几个”是多少,所以还得计数;
2。“on上升沿xx=1,否则xx=0”这个应该是实现不了的,上升沿在逻辑里面是没有长度的,你所能得到的最小信号也得是半个时钟周期那么长;
美梦成真-->噩梦降临!
现在论坛有点问题,比较不方便,对不起大家了;
“一个clk后为0还有办法”你让那个判断信号的宽度为一个时钟周期就可以了,这样的话,只有一个时钟能采到这个信号;
具体实现你可以这样:把那个判断信号延迟一个时钟周期,然后取反与未延迟的信号相与得到的信号宽度就是一个时钟周期;
美梦成真-->噩梦降临!
作为时钟,你用边沿触发得到的也不是一个边沿,而是一个有一个时钟周期宽度的信号;
你的意思是想让关机信号平时有效?开机信号来了就开机,然后再马上关机?
美梦成真-->噩梦降临!
那就是想和电脑开关一样,按一下开机,再按一下关机?
那么做个模2计数器就可以了吧?这样一来,随着ld-on来的次数,在开机和关机之间转换;
美梦成真-->噩梦降临!
我觉得lz想要实现的功能和uart中接收时检测开始位的功能差不多,uart是要检测下降沿的到来,lz是要检测上升沿的到来,我的一点想法:
平时关机信号有效(低电平),开机信号来的时候有一个上升沿,关机信号来的时候有一个下降沿,我们要做的就是把他们取出来,
ld_on---------开关机信号
ld_on_delay---开关机信号延时一个时钟周期
开机信号 = ld_on & (!ld_on_delay)
关机信号 = ld_on_delay & (!ld_on)
这样的得到的开关机信号都是一个时钟周期宽度的脉冲;
美梦成真-->噩梦降临!
返回列表