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

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

日志

5分频

已有 1354 次阅读| 2006-8-15 11:05 |个人分类:备份

天气: 晴朗
心情: 高兴
5分频,奇数分频都可以类似这么做,只需要改div1和div2的参数。div1为奇数分频除2的余数。采用上升延和下降延分别触发不同波形,最后叠加的方式产生奇数分频。

module divfreq(clk, clk1x, rst, clk1xpose, clk1xnege, coutpose, coutnege);

input clk;
input rst;
output clk1x;
output clk1xpose;
output clk1xnege;
output[2:0] coutpose;
output[2:0] coutnege;

reg clk1xpose;
reg clk1xnege;
reg[2:0] coutpose;
reg[2:0] coutnege;

parameter div1 = 2 , div2 = 4;  // div1 = 5 / 2, div2 = 5 - 1

assign clk1x = clk1xpose | clk1xnege;

always@(posedge clk or negedge rst)
 begin
  if(!rst)
 
    clk1xpose = 0;
 
  else if(coutpose == div1)
    clk1xpose = ~clk1xpose;
  else if(coutpose == div2)
    clk1xpose = ~clk1xpose;
  else
    clk1xpose = clk1xpose;
 end

always@(negedge clk or negedge rst)
 begin
  if(!rst)
 
    clk1xnege = 0;
 
  else if(coutnege == div1)
   clk1xnege = ~clk1xnege;
  else if(coutnege == div2)
   clk1xnege = ~clk1xnege;
  else
   clk1xnege = clk1xnege;
 end

always@(posedge clk or negedge rst)
 begin
  if(!rst)
   coutpose = 0;
  else if(coutpose == div2)
   coutpose = 0;
  else
   coutpose = coutpose + 1;
 end

always@(negedge clk or negedge rst)
 begin
  if(!rst)
   coutnege = 0;
  else if(coutnege == div2)
   coutnege = 0;
  else
   coutnege = coutnege + 1;
 end

endmodule


点赞

评论 (0 个评论)

facelist

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

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

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 3

    粉丝
  • 1

    好友
  • 6

    获赞
  • 45

    评论
  • 3123

    访问数
关闭

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

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

GMT+8, 2024-4-26 02:01 , Processed in 0.026403 second(s), 14 queries , Gzip On, Redis On.

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