3452|4

112

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

主时钟clk的分频信号 能在always中 作为被检测的时钟么? 下面是我遇到的问题 [复制链接]

module music(clk,ret,fm,fm1,fm2);
  input clk;
  input ret;
  output fm,fm1,fm2;
  reg clk1;
  reg clk2;
  reg h,fm;
  reg [9:0] cnt;
  reg [5:0] cnt1;
  reg [2:0] cnt2;
  reg [2:0]  cnt3;
  reg  [5:0] div;
  parameter a=6'd50,
            b=6'd40,
            c=6'd30,
            d=6'd20,
            e=6'd10,
            f=6'd5;
 
 
  always @(posedge clk or posedge ret)
  if(!ret)
    begin
      clk1<=0;
      cnt1<=0;
    end
  else
    if(cnt1==6'b111111)
      begin
        clk1<=~clk1;
        cnt1<=0;
      end
    else
      cnt1<=cnt1+1;
    
    
     always @(posedge clk or posedge ret)
     if(!ret)
       begin
          clk2<=0;
          cnt2<=0;
       end
     else
       if(cnt2==3'b111)
         begin
           clk2<=~clk2;
           cnt2<=0;
           end
      else
        cnt2<=cnt2+1;
       
       
   always @(posedge clk1  or posedge ret)
    if(!ret)
      begin
        fm<=0;
        cnt<=0;
      end
    else if(cnt==10)
       begin
         fm<=~fm;
         cnt<=0;
       end
     else
       cnt<=cnt+1;
     
      
      
 /* always @( posedge clk2 or posedge ret)
    begin
      if(!ret)
          begin
           cnt3<=0;
          end
      else
          if(cnt3==3'b101)
            cnt3<=0;
          else
            cnt3<=cnt3+1;
            case(cnt3)
              0: div=a;
              1: div=b;
              2: div=c;
              3: div=d;
              4: div=e;
              5: div=f;
              default : div=0;
            endcase
    end */
             
       
         
      assign fm1=clk1;
      assign fm2=clk2;
     // assign fm=h;
     
     
   endmodule

 

整个程序中 为什么 红色的部分 我用clk产生的分频信号 clk1 去做被检测的时钟  fm 就没有输出;

而如果 我把 clk1 换成 clk 输出就是正常的  求教 !!

此帖出自FPGA/CPLD论坛

最新回复

使用使能时钟  详情 回复 发表于 2011-11-22 14:30
点赞 关注
个人签名无一事而不学,无一时而不学
 

回复
举报

2734

帖子

0

TA的资源

裸片初长成(初级)

沙发
 
在你的程序里clk1只是对clk进行二分频,在fm1对于clk1的输出,应该不会有问题。
此帖出自FPGA/CPLD论坛
个人签名我爱电子!
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

板凳
 

这个就是跨时钟域问题。

为了避免亚稳态出现和传递,在FPGA系统设计采用系统时钟触发。而不能用门控时钟触发!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

112

帖子

0

TA的资源

一粒金砂(高级)

4
 

回复 板凳 eeleader 的帖子

我找到了问题的关键原因:我always中检测的是ret 的上升沿; 但是下面的 if()中用的ret;矛盾了;
这里你提到跨时钟域问题,我想学习一下在,
门控时钟?   是指的ret么? 不同步的时钟都是门控时钟么?

题外话:
南京华为 这周叫我去面试 自己说想做逻辑设计 但是 依照现在我这水平 心里没底啊!!我做到什么样子 能很自信的 去找一份满意的工作呢
此帖出自FPGA/CPLD论坛
个人签名无一事而不学,无一时而不学
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

5
 
使用使能时钟
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表