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

verilog实现奇数次分频

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    verilog实现奇数次分频6 H2 c$ b! p0 f& L
    实现占空比为50%的N倍奇数分频:
    , Z! A  D' h( b首先进行上升沿触发进行模N计数,计数到某一个值时进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%的奇数n分频时钟。再者 同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同值时,进行输出时钟时钟翻转,同样经过(N-1)/2时,输出时钟再次翻转生成占空 比非50%的奇数n分频时钟。两个占空比非50%的n分频时钟相或运算,得到占空比为50%的奇数n分频时钟。/ J0 N  T7 B. v& F( t8 l- G1 q1 C$ N
    + B9 j- u% O' }; y# {
    module div5(clr,clk,clkout);
    8 W, C# u4 ]1 {$ i2 dinput clr,clk;
    . L% N2 Y3 b; V$ Coutput clkout;
    1 S( [* v) u6 T# h0 e  _reg clkreg1,clkreg2;
    $ U& C' @/ I& Uparameter n=5;& P# p% Y7 y% @
    reg[n:0] counter1,counter2;+ p6 A4 N, u, W; R

    ) o7 P7 v: @% y8 e2 A$ J% U# A3 [assign clkout=clkreg1||clkreg2;2 s) t! H6 R+ i8 G

    5 X* `7 i. A# ^* A) `2 `always @(posedge clk)
    2 h& D5 Q  _  O/ Y% o    if(clr==1)
    + d8 t* E# K6 a- ?$ I1 [    begin
    & y, C2 F- c# U6 c. M- t4 @        clkreg1=0;( F9 F  F( j1 ?6 e6 M; n
            counter1=0;8 w: h4 W/ U% [9 q. t( P
        end- l' r! ~& v9 q8 v, I2 b+ V
        else " [' Y+ p5 ~) [1 |, Q% n, i0 V% N
        begin  
    9 N$ Q6 y8 R7 t" q; H        if(counter1==n-1) * {$ V; v) i, k/ s- d
            begin
    * j  l* S4 s% {, \            counter1=0;
    - X, _* h' U" ^9 O" Y3 L            clkreg1=~clkreg1;
    9 h$ p& p% v( O' C) O/ x% u        end
    * u9 p8 Y& ^% V) @' P, q! u& ?% v+ m        else if(counter1==(n-1)/2)
    + Q. q+ H* S! {1 P, ^, L9 G) p        begin
    & l5 u; G) {4 _6 w1 g8 }" s7 Y            counter1=counter1+1;: M0 O2 f) B# m/ e. c3 T) v
                clkreg1=~clkreg1;7 v3 }0 N8 Q% {- l- H
            end& I7 |/ q0 }- j3 W
            else
    8 \& o% U  f6 S3 d3 y& P        begin
    5 d- ~2 n3 e8 g+ ]& o8 h' a, g            counter1=counter1+1;; X7 Z5 ]5 C* Q4 B
            end1 G$ ]. F9 J& c4 V9 e1 a1 I
        end
    ) ^5 @( `% O) e' {& B4 s6 [* C9 Y) c
    always @(negedge clk)1 x! {) \6 w  k# V- a
        if(clr==1) 0 P& j6 g4 k& p2 p0 L' t9 }
        begin # W; E/ l3 A* k; A) C" L+ E% u
            clkreg2=0;4 @; z8 `. T+ u. t/ e. J3 X
            counter2=0;/ R7 l  [5 g  A/ j2 e/ A) |& u
        end
    & B" U9 \& o# s" G$ ^5 p" \( d9 n    else $ x6 K) W: X+ Q# G# k: c$ S" F
        begin  + x7 ]0 Z, j! t( X! T- S
            if(counter2==n-1)
    ; b5 H$ s  _& d3 ~2 f; j        begin , E7 w. o% c' Z: @. ?. y! D4 M
                counter2=0;. ]; s$ p7 N; r! o' j& [3 }
                clkreg2=~clkreg2;- x& o, T" b! ~; b' z
            end0 u$ W6 Q( z: G7 \2 C0 z# f; F
            else if(counter2==(n-1)/2)
    2 L; H! m8 O3 R0 Q; w        begin 9 v$ l2 \" H! O# X* o
                counter2=counter2+1;
    ) y0 m0 V+ [' s, L0 w% W            clkreg2=~clkreg2;
    ' a6 f4 v6 C# g" c" ?" u) `! w% z        end
    + s. }' l; q* c  [* R6 ?" w        else ( `# F- H4 a/ v; p0 ?4 O
            begin
      M# c* g( c  W+ R1 ~8 S            counter2=counter2+1;
    1 P. ?8 ^* m& i8 u6 g1 G8 H        end
    ( s; ^4 R4 ?9 k' F    end
    ; g  S& E; R7 E9 z7 Z( a% w
    & v2 M  u$ s! O  y8 _! E1 U, k0 dendmodule
    2 A9 m1 B# z% z7 w$ A! E

    ' x+ u/ v$ ~/ L# \( M3 E, N/ R/ v) Y
    " x5 [3 }5 W( p
    $ h5 Z" C8 [0 F. a- F6 j( E
    4 w3 U' m5 x1 `/ L  m, J/ \& Y

    + `- }! x; j7 x. H* M

    ( A& ]9 }0 W1 e* }
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-23 13:50 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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