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

verilog边沿触发的疑问

verilog边沿触发的疑问

input clk,on;


output xout;


reg xx;


assign xout=xx;


always@(posedge clk)


begin


if(on)


xx=1;


else


xx=0;


end


如果on是一个连续信号,即高电平保持一段时间


按上述程序,xx要等到on边沿变低才可以为0


但我想xx不要通太长,几个clk后就要为0


应该怎样出来好?


我也不想多加一个reg 来作计数将它变回0


能否实现:on上升沿xx=1,否则xx=0?


 

╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
1。“但我想xx不要通太长,几个clk后就要为0”,一个clk后为0还有办法,你要求几个就得要计数器了,因为“几个”是你定的,硬件不知道“几个”是多少,所以还得计数;
2。“on上升沿xx=1,否则xx=0”这个应该是实现不了的,上升沿在逻辑里面是没有长度的,你所能得到的最小信号也得是半个时钟周期那么长;
美梦成真-->噩梦降临!
确实不复杂
其实在另一个程序里我想实现这个功能罢了
就是,on1为开机信号,off1为关机信号
关机信号优先
我的疑问就是图中ld-on这个信号
ld-on一直为0的话,,不就一直有关机信号拉
所以我就想用上升沿来处理这个关机的信号

或者还有其他更好方法?



╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
[upload=image/bmp]uploadImages/tt.bmp[/upload]
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
to stone :一个clk后为0还有办法
如果这样应该怎样处理?
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
现在论坛有点问题,比较不方便,对不起大家了;
“一个clk后为0还有办法”你让那个判断信号的宽度为一个时钟周期就可以了,这样的话,只有一个时钟能采到这个信号;
具体实现你可以这样:把那个判断信号延迟一个时钟周期,然后取反与未延迟的信号相与得到的信号宽度就是一个时钟周期;
美梦成真-->噩梦降临!

斑竹能看到我发的图么?
请问图中ld-on这个信号
ld-on一直为0的话,,不就一直有关机信号拉
所以我就想用上升沿来处理这个关机的信号

或者还有其他更好方法?
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
作为时钟,你用边沿触发得到的也不是一个边沿,而是一个有一个时钟周期宽度的信号;
你的意思是想让关机信号平时有效?开机信号来了就开机,然后再马上关机?
美梦成真-->噩梦降临!
不是
我想开机信号就开机
关机信号就关机
然而ld-on却既是开机信号又是关机信号
当ld-on=1开机,ld-on=0关机
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
那就是想和电脑开关一样,按一下开机,再按一下关机?
那么做个模2计数器就可以了吧?这样一来,随着ld-on来的次数,在开机和关机之间转换;
美梦成真-->噩梦降临!
不是,,其实只是一个触点而已
当触点闭合--开机
当触点断开--关机
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
我觉得lz想要实现的功能和uart中接收时检测开始位的功能差不多,uart是要检测下降沿的到来,lz是要检测上升沿的到来,我的一点想法:
平时关机信号有效(低电平),开机信号来的时候有一个上升沿,关机信号来的时候有一个下降沿,我们要做的就是把他们取出来,
ld_on---------开关机信号
ld_on_delay---开关机信号延时一个时钟周期
开机信号 = ld_on & (!ld_on_delay)
关机信号 = ld_on_delay & (!ld_on)
这样的得到的开关机信号都是一个时钟周期宽度的脉冲;
美梦成真-->噩梦降临!
启发思路中
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
返回列表