TA的每日心情 | 开心 2019-11-19 15:19 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
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 |
|