找回密码
 注册
关于网站域名变更的通知
查看: 368|回复: 1
打印 上一主题 下一主题

verilog实现奇数次分频

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 15:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2018-11-15 10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    verilog实现奇数次分频: I- ~; U+ F/ K* v; E
    实现占空比为50%的N倍奇数分频:! q( X, s3 h" {3 v9 h' w+ y7 D
    首先进行上升沿触发进行模N计数,计数到某一个值时进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%的奇数n分频时钟。再者 同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同值时,进行输出时钟时钟翻转,同样经过(N-1)/2时,输出时钟再次翻转生成占空 比非50%的奇数n分频时钟。两个占空比非50%的n分频时钟相或运算,得到占空比为50%的奇数n分频时钟。
    " x- I3 H" u" [' ?; E! O( T+ [
    - a4 w7 x1 k9 g% ~module div5(clr,clk,clkout);: u3 q5 I  g5 t7 ~7 F
    input clr,clk;) a/ M: S+ r6 b% r8 s$ {
    output clkout;
    ( E5 w, m  b6 F( U' H$ I% [- P9 greg clkreg1,clkreg2;
    + F; H: M9 b% B* f; V; cparameter n=5;- y  K  t% B7 C7 C: T+ d
    reg[n:0] counter1,counter2;  N3 G( @- Y8 e+ q/ ]  o/ k' B
    + U" S- a& K. j2 n0 z
    assign clkout=clkreg1||clkreg2;2 g; N4 f7 E9 S

    1 G6 U1 R4 ~5 m  p% ?always @(posedge clk)
    # _3 _9 \& Q6 r  P5 U    if(clr==1) 5 ^5 U9 Z& `+ Z
        begin
    : j! Y' E5 t$ L( D# _        clkreg1=0;
    8 u5 g- S/ ~$ {5 v; L# \; w        counter1=0;3 }# s# x" u. z/ j8 S; Y! {' A1 U
        end
    & }: e) w3 X: S' v    else
    + C: z- U0 g2 f& ^4 Q. x    begin  : q: A1 F5 C; A) p
            if(counter1==n-1)
    $ @! E( k, U* u. L7 l5 o        begin * r% W( I0 o  I* x3 ]% E" V
                counter1=0;
    1 H2 h1 r+ J7 Y0 K! j9 E$ H; _            clkreg1=~clkreg1;
      |7 q" Z* R7 q9 Z" ~! _        end, z. V3 D8 h3 G
            else if(counter1==(n-1)/2)
    1 c9 q& S6 q) a6 A8 ?. V$ g        begin 9 [4 t7 D* O" f# Y0 t4 @' S
                counter1=counter1+1;+ e2 H( x6 M. E' _- S
                clkreg1=~clkreg1;
      t& z' t; @8 A0 f        end
    0 V/ @. `, r" ^        else
    * F1 L! N0 }+ p7 a' Q        begin 3 }% v* w4 v$ a
                counter1=counter1+1;
    ! w0 h" ]! t/ E4 t" E        end
    % U5 i2 C$ M2 _, V    end4 W+ |7 w1 D+ U: `0 _! t: `

    : k+ [; e, ?5 f% aalways @(negedge clk)
    5 p: E4 x+ e% _0 u/ Z  o2 Q# I8 b    if(clr==1)
    8 b( O; E) a5 X- y$ B) |  G    begin 6 H. H  N2 j2 @
            clkreg2=0;
    - H. i- E; T3 `, y+ Z        counter2=0;- n3 B. u* L( j
        end) [! X5 r( ]6 R9 s' B3 c
        else
    & U3 @/ z/ I' [! h) R4 w  p4 V    begin  
    7 y* l6 \9 c5 X2 f9 R        if(counter2==n-1) 3 b8 m% a! g- F
            begin
    2 A9 w, U( T% X( }! G5 ^1 A            counter2=0;
    3 t6 W0 I) _! R) V0 v) S# I  l            clkreg2=~clkreg2;
    / u# `6 X) d- \5 x6 z3 y        end+ B2 n+ z0 G( n
            else if(counter2==(n-1)/2)
    & |. N, ^* x$ }$ S4 J        begin / e# G, d3 Y) ]/ N- p3 t. B/ z
                counter2=counter2+1;
    ' P6 a/ m8 c0 b3 i4 R9 X; C            clkreg2=~clkreg2;
      p1 ?/ _/ V; a$ A" U9 r        end
    / e* D) L9 e' G5 t        else
    4 x7 Q+ y! n( H        begin 8 \% N9 s3 U3 M8 Y# t/ o
                counter2=counter2+1;/ G* g- s  o- L' f% G
            end* }2 @1 X9 i0 ~1 ?+ P2 O% L% i: j
        end
    5 r! u$ [) j" p+ e$ Z( x, \5 [! a0 O6 O' A; k* h0 o: S7 o7 n9 }
    endmodule
    1 ]1 F" p% u* K! C
    3 w0 `' h* Q, _% N8 @

    * {7 w6 t$ H! M' P$ I# b9 A$ R7 w8 Y- \
    ! X2 x; q; J2 {

    : ^+ e/ ^" d0 a4 ]$ U' l
    . _  b8 V$ f4 r& M! Z3 p8 P

    # L- S% W8 ^  a  R
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-23 10:35 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表