zoukankan      html  css  js  c++  java
  • 每天进步一点点------任意整数分频,占空比50%

     1 /*********************************************************************************
     2 * Company                    : 
     3 * Engineer                    :     绌烘皵寰�噳
     4 * 
     5 * Create Date                :     00:00:00 22/03/2013 
     6 * Design Name                : 
     7 * Module Name                :         
     8 * Project Name                :  
     9 * Target Devices            : 
    10 * Tool versions            : 
    11 * Description                :  
    12 *                                   http://www.cnblogs.com/kongqiweiliang/             
    13 * Dependencies                : 
    14 *
    15 * Revision                    : 
    16 * Revision                    :     0.01 - File Created
    17 * Additional Comments    : 
    18 ********************************************************************************/
    19 `timescale 1ns/100ps
    20 `define    UD  #1
    21 /****************************任意整数分频模块,占空比50%****************************/
    22 module Int_DIV  
    23 (
    24     input                             iCLK                ,//输入时钟
    25     output                             oCLK_DIV             //输出时钟
    26 );
    27 //参数--分频系数
    28 parameter F_DIV = 6              ; //分频系数<<<<-----修改这里
    29 parameter F_DIV_WIDTH = 32     ;//分频计数器宽度
    30 
    31 reg    [F_DIV_WIDTH - 1:0]        timer_p,timer_n;/* 上升、下降沿脉冲计数器 */
    32 reg    clock_p,clock_n;/* 上升、下降沿脉冲 */
    33 
    34 always @(posedge iCLK)begin/* 上升沿脉冲计数器 */
    35     if(timer_p < F_DIV - 1'b1)
    36         timer_p <= timer_p + 1'b1;
    37     else
    38         timer_p <= 0;
    39 end
    40 
    41 always @(negedge iCLK)begin/* 下降沿脉冲计数器 */
    42     if(timer_n < F_DIV - 1'b1)
    43         timer_n <= timer_n + 1'b1;
    44     else
    45         timer_n <= 0;
    46 end
    47 
    48 always @(posedge iCLK)begin/* 上升沿脉冲 */
    49     if(timer_p == (F_DIV>>1) - 1'b1)
    50         clock_p <= 1'b0;
    51     else if(timer_p == F_DIV - 1'b1)
    52         clock_p <= 1'b1;
    53 end
    54 
    55 always @(negedge iCLK)begin/* 下降沿脉冲 */
    56     if(timer_n == (F_DIV>>1) - 1'b1)
    57         clock_n <= 1'b0;
    58     else if(timer_n == F_DIV - 1'b1)
    59         clock_n <= 1'b1;
    60 end
    61 
    62 assign oCLK_DIV = (F_DIV[0] == 1) ? (clock_p | clock_n) : clock_p;
    63 
    64 endmodule 
  • 相关阅读:
    [LeetCode 1029] Two City Scheduling
    POJ 2342 Anniversary party (树形DP入门)
    Nowcoder 106 C.Professional Manager(统计并查集的个数)
    2018 GDCPC 省赛总结
    CF 977 F. Consecutive Subsequence
    Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)
    Poj 2337 Catenyms(有向图DFS求欧拉通路)
    POJ 1236 Network of Schools (强连通分量缩点求度数)
    POJ 1144 Network (求割点)
    POJ 3310 Caterpillar(图的度的判定)
  • 原文地址:https://www.cnblogs.com/kongqiweiliang/p/3499278.html
Copyright © 2011-2022 走看看