zoukankan      html  css  js  c++  java
  • Verilog 中的奇偶分频器学习

    如有疏漏请大神不吝赐教!!!(*^__^*) 嘻嘻……

    这学期刚学了Verilog语言,觉得挺好玩,有点类似C语言,不过马上就要考试了,再看奇偶分频器时感觉有点不懂,

    所以就查找资料加深理解。。。以下是这次的学习过程。。。

    代码

    3分频

    module EVEN(clk, rst_n, clk_3);
       input clk, rst_n;
       output clk_3;
       reg [1:0]state;
       reg clk1;
       
       always @ (posedge clk or negedge rst_n)
          if(!rst_n)
             state <= 2'b00;
          else
             case(state)
                 2'b00:state <= 2'b01;
                 2'b01:state <= 2'b11;
                 2'b11:state <= 2'b00;
             endcase
       always @ (negedge clk or negedge rst_n)
          if(!rst_n)
             clk1 <= 1'b0;
          else
             clk1 <= state[0];
        assign clk_3 = state[0] & clk1;
    endmodule

    实现2、4、8、16分频

    module ODD(clk, rst_n, clk_2, clk_4, clk_8, clk_16);
       input clk;
       input rst_n;
       output clk_2, clk_4, clk_8, clk_16;
       
       reg [3:0] cnt;
       
       always @ (posedge clk or negedge rst_n)
       begin
           if(!rst_n)
              cnt <= 4'b0;
           else
              cnt <= cnt + 1;
       end
       
       assign clk_2 = !cnt[0];
       assign clk_4 = !cnt[1];
       assign clk_8 = !cnt[2];
       assign clk_16 = !cnt[3];
    endmodule

    对于偶分频(只涉及2^n,其他的还为研究,一步步来)

    具体思想:用高速时钟做一个同步计数器,然后在相应的位抽头即可。

    对于奇分频(目前还没找到合理的解释,只是看懂了代码,渣子一个~~)

  • 相关阅读:
    Transact_SQL小手册
    使用泛型的 TArray 从动态数组中查找指定元素
    使用泛型的 TArray 为动态数组排序
    使用 InputBox、InputQuery 的启发
    近况汇报
    泛型排序器 TComparer
    详测 Generics Collections TList (2): First、Last、IndexOf、LastIndexOf
    详测 Generics Collections TList (1): Add、Clear、Count、Capacity
    WindowsAPI: MulDiv
    SendTextMessage 等方便的消息发送函数
  • 原文地址:https://www.cnblogs.com/TB-Go123/p/3411437.html
Copyright © 2011-2022 走看看