搜索
bottom↓
回复: 4

求助!关于Verilog中always语句的事件控制

[复制链接]

出0入0汤圆

发表于 2010-2-26 16:48:40 | 显示全部楼层 |阅读模式
之前老师教的是VHDL语言,现在在自学verilolg,但在改写之前写的电子钟程序时卡壳了
程序段如下:
process(switch,correct,clock)
begin
if correct='1' and clock='1' then   --正常模式下,counter等于零
    counter<=0;
elsif switch'event and switch='1' then  --修改或闹钟模式下,每来一个脉冲,counter加1
    if correct='0' or clock='0' then
        if counter=6 then
            counter<=0;
        else
            counter<=counter+1;
        end if;
    end if;
end if;
end process;
switch为拨码开关,counter值对应相应的数码管,用于修改相应的时间位,例如小时的十位

改为如下的Verilog程序:
always @ (posedge switch)
begin
     if (correct && clock)      //--正常模式下,counter等于零
          counter<=0;
     else         //--修改或闹钟模式下,每来一个脉冲,counter加1
          if (counter==6)
              counter<=0;
          else
     counter<=counter+1'b1;
end
这样写当我进入时间修改或闹钟模式时,第一次counter是从0开始,但下一次则不一定从0开始,现在我想把correct和clock都加入事件列表,当修改和设置时间后回到正常模式时counter值要重置为0,但一直无法解决。希望大家帮帮忙

另外,我想请教大家:Verilog中如何在高频率时钟下检测信号的上升沿,就像上面的程序中我在1khz的时钟下检测switch的上升沿,switch为拨码开关控制

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-2-26 16:49:50 | 显示全部楼层
不知道程序怎么全部对齐了?

出0入0汤圆

发表于 2010-2-26 20:03:24 | 显示全部楼层
改为异步复位

wire aa;
aa= correct && clock;

always @ (posedge switch or posedge aa)
begin
     if (aa)      //--正常模式下,counter等于零
          counter<=0;  
     else         //--修改或闹钟模式下,每来一个脉冲,counter加1
          if (counter==6)
              counter<=0;
          else
     counter<=counter+1'b1;
end
不知行否,你自己试试

出0入0汤圆

发表于 2010-2-26 20:05:06 | 显示全部楼层
assign aa= correct && clock;

出0入0汤圆

 楼主| 发表于 2010-2-26 21:00:02 | 显示全部楼层
谢谢wang110!我试了下,可以的。我之前一直想怎么写三个事件控制,却没想到可以把其中两个先组合一下。那正如我上面所说的在1khz的时钟下检测switch的上升沿,switch为拨码开关控制可以实现吗,思路是怎样的?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 19:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表