yuedx的个人空间 https://blog.eetop.cn/317611 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

时钟选择器的Verilog写法!

已有 2805 次阅读| 2009-3-27 17:11 |个人分类:FPGA设计

CPRI有3种数据时钟,61.44M 122.88M 245.76M,需要模块能够根据外部的速率指示信号(一个2位的输入信号,由模块外部给定)选择其中的一种时钟作为模块的工作时钟

但由于所选用的FPGA工作频率关系,不能超过400M,无法通过寄存器方式实现时钟源的选择.

使用双边触发的方式将最高的频率进行分频,代码如下,已经通过ModelSim的仿真,可以实现。

module clk_div(
                  reset,        //复位信号
                  data_rate,    //数据速率指示
                  clk2,         //245.76M的时钟输入
                  time1,        //分频计数器
                  clk           //选择后的时钟输出
                  );
input       reset;
input [1:0] data_rate;
input       clk2;
output [1:0] time1;
output      clk;

reg [1:0] time1;
reg       clk;                  
                  
always@(clk2 or reset)
if(reset)
   begin
     time1=2'b00;
     clk=1'b0;
   end
else
   begin
     time1=time1+1'b1;
     case(data_rate)
       2'b00:if(time1==2'b00)
                clk=~clk;
             else
                clk=clk;  
       2'b01:if(time1[0]==1'b1)
                clk=~clk;
             else
                clk=clk;
       2'b10:clk=clk;
       2'b11:clk=~clk;
     endcase
   end
  
endmodule      


点赞

发表评论 评论 (2 个评论)

回复 lishuanglong19 2010-3-12 08:56
:victory:
回复 gzheng 2011-7-31 12:52
:lol 请问这儿电路是否可以实用,谢谢!!!

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 13

    粉丝
  • 1

    好友
  • 35

    获赞
  • 156

    评论
  • 4698

    访问数
关闭

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

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

GMT+8, 2024-5-9 18:10 , Processed in 0.011439 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部