在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖
楼主: lbz053273

[求助] 怎么让计数器不循环?各位都用什么方法?

[复制链接]
发表于 2014-6-25 21:31:18 | 显示全部楼层
回复 1# lbz053273


   用不等号啊/=if x /= 7 then
x <= x +1;
end if;
发表于 2014-6-26 11:42:32 | 显示全部楼层
学习。。。。。。...
发表于 2014-6-26 23:17:52 | 显示全部楼层
计数器积到7时,让计数器的值一直为7.
if cnt=7
cnt<=cnt;
发表于 2014-6-27 13:15:37 | 显示全部楼层
试试这个可以么




  1. always@(posedge clk)
  2. begin
  3.   if (!rstn)
  4.      cnt <= 3'd0;
  5.   else if(cnt==3'd7)
  6.      cnt<=3'd7;
  7.   else if (enable) // enable is a level signal
  8.      cnt <= cnt + 3'd1;
  9. end



复制代码
(xx)?xx:xx;
这个语法一般在组合逻辑里面用,时序逻辑里面不如直接写成if..else的形式
 楼主| 发表于 2014-6-27 15:33:59 | 显示全部楼层
回复 14# huiyuanai3
其实用代码的话,我自己就可以实现,现在要用schemitic图形实现,卡的我欲生欲死,所以看看有没好的方法。。要是有人直接告诉我,那就更好了
发表于 2014-7-2 21:32:03 | 显示全部楼层
回复 15# lbz053273


   估计你对原来的要求没理解完全,我也不清楚你的描述,可以像这样:



  1. module function1(OUT,clk,rst,clk2,);
  2. input clk,rst,clk2;
  3. output OUT;

  4. reg EN;
  5. reg[2:0]q;

  6. assign OUT=EN?clk2:0;

  7. always@(posedge clk or posedge rst)
  8. begin
  9.         if(rst)begin
  10.         q<=3'b000;
  11.         EN=1;
  12.         end
  13.         else if(q>3'b110)
  14.         begin
  15.         EN=0;
  16.         q<=3'b111;    //保持这个状态
  17.         end
  18.         else
  19.         q<=q+1'b1;
  20. end

  21. endmodule


复制代码



将就看吧

将就看吧
 楼主| 发表于 2014-7-3 08:35:50 | 显示全部楼层
回复 16# quantumdot

谢谢了,我自己用传输门和触发器弄好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /3 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-24 18:27 , Processed in 0.033758 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表