原创 N倍偶数分频器.(Verilog)

2008-8-17 15:12 8365 9 16 分类: FPGA/CPLD
N_even_divider.v / Verilog




module N_bit_even_divider (

  output reg  o_clk,


  input       i_clk,
  input       rst_n
);

 

parameter N = N_even// 设置偶数倍分频

parameter M = ?;      // M="N/2-1" 

 

// bit_of_N: N_even的二进制位宽
reg [(bit_of_N - 1):0] cnt; // 计数器单元

 

// 上升沿计数: 0~(N-1)
always @ (posedge i_clk, negedge rst_n)
begin
  if (!rst_n)
   cnt <= 0;
  else
  begin
    if (cnt == N-1)
      cnt <= 0;
    else
      cnt <= cnt + 1'b1;
  end
end

 

// 生成上升沿时钟
// 0~(N/2-1) ↑ -> 1; (N/2)~(N-1) ↑ -> 0

always @ (posedge i_clk, negedge rst_n)
begin
  if (!rst_n)
    o_clk <= 0;
  else
  begin
    if (cnt <= M)

      o_clk <= 1;
    else
      o_clk <= 0;
  end
end

 

endmodule




仿真波形

点击看大图
图1. N_bit_even = 2, (bit_of_N - 1)取1或0)

 

点击看大图

图2. N_even = 2, (bit_of_N - 1)取2)

 

点击看大图

图3. N_even = 4

 

点击看大图

图4. N_even = 6

 

 

另见


 

文章评论7条评论)

登录后参与讨论

用户1498859 2010-3-30 10:10

原来是<=是小于等于 而不是过程付值

用户1498859 2010-3-30 09:27

if (cnt <= M) 这个不对把 怎么判断是1还是0

用户171203 2008-10-8 13:51

顶!

ilove314_323192455 2008-9-5 21:42

二楼的所谓的奇数倍分频,我给个思路:这个要用到下降沿,就是要生成两个相差半个时钟周期的占空比为1/3的信号,然后把这两个信号相或即可

用户485340 2008-9-5 16:38

收藏

用户124183 2008-8-18 20:28

楼上的,100Hz怎么9分频?

southcreek 2008-8-18 13:18

不错,假如要求输出的分频时钟与输入时钟在相位上一致。或是要求产生奇数倍分频。有没有兴趣挑战一下?
相关推荐阅读
用户1373959 2009-11-17 22:44
本博客地址迁移.(公告)
迁移至:http://yuphone.cnblogs.com/...
用户1373959 2009-10-16 13:10
七段数码管动态显示IP的研究及设计.(Nios II)(SOPC Builder)
这两个礼拜整理的,欢迎大家抓虫。...
用户1373959 2009-10-16 13:00
sizeof()和strlen()的区别.(C)
#include <stdio.h>int main(void){  char msg[] = "Hello Nios!";    printf("sizeof(msg) = %ld", ...
用户1373959 2009-10-16 12:56
HAL的不同方式访问字符器件的空间开销简单比较.(Nios II)
Unix类型 #include "system.h"#include "fcntl.h"#include "unistd.h"int main(void){  int fd; // file desc...
用户1373959 2009-10-16 12:49
几个的Ubuntu 9.04好源.(Ubuntu)
新加坡国立大学理学院 - 全国通用deb http://ftp.science.nus.edu.sg/ubuntu/ jaunty main restricted universe multivers...
用户1373959 2009-05-05 10:43
NI Multisim 基础电路范例.(Multisim)
NI官网提供的NI Multisim Fundamental Circuits, 内容涵盖RLC电路, 二极管, 晶体管, 放大器, 运放, 滤波器和混合电路. 这些内容不仅可作为初学者的学习范例, ...
我要评论
7
9
关闭 站长推荐上一条 /2 下一条