TA的每日心情 | 开心 2019-11-19 15:19 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
verilog实现奇数次分频3 q8 z1 h) [( a, t) Q0 m
实现占空比为50%的N倍奇数分频:
, ^1 I: `6 ~9 L7 n. V首先进行上升沿触发进行模N计数,计数到某一个值时进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%的奇数n分频时钟。再者 同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同值时,进行输出时钟时钟翻转,同样经过(N-1)/2时,输出时钟再次翻转生成占空 比非50%的奇数n分频时钟。两个占空比非50%的n分频时钟相或运算,得到占空比为50%的奇数n分频时钟。
5 p. m! q i8 [; E* q
+ K! G; _# d/ nmodule div5(clr,clk,clkout);
" w9 ~" W+ r: b3 m2 j' Tinput clr,clk;9 F, M# A! K; G3 {9 H6 f9 R& |
output clkout;: s/ J$ h, i1 N* v% X; {
reg clkreg1,clkreg2;/ n7 @& {# R x$ A# X
parameter n=5;
9 x e$ q+ e. j4 u! v) v6 [- Preg[n:0] counter1,counter2;! ?& Q* o4 D/ \/ [% q: ?
G9 c6 ?. U9 ~2 i3 a
assign clkout=clkreg1||clkreg2;
9 K" J2 J* T# i! k, g/ M# s
/ k' u. K1 @; j! {, halways @(posedge clk)2 U6 s0 \: i- Q+ y
if(clr==1)
5 Y& e+ S* G( i# S begin
, ~: X! ]) `' V0 q' ` clkreg1=0;' m( e3 w! _2 _- g7 }: s- j! u+ Z( a
counter1=0;
; v( v' u6 U' n* n8 E4 S9 U end
0 `$ k Q& g2 [8 D, Z else . O( S4 N- K" e# n& v: `
begin
1 Z: u. j; r" e1 A if(counter1==n-1)
) e8 i# M" j, W3 o" }. ~, e begin 8 H0 Z! v, { P, r3 m. s+ u
counter1=0;
w, p3 l Z; O8 h- n# k clkreg1=~clkreg1;
2 X- i& v2 _# f% Y6 y' l end
* w( g) }3 c! I9 a+ s( a else if(counter1==(n-1)/2)" j. a* i" e6 `; @. G: g
begin / P& l( Q* B, P" A0 w
counter1=counter1+1;# D7 h. H( e# o9 a7 a# L$ G
clkreg1=~clkreg1;
g9 w( a7 ^; H7 i end; D M2 D$ ^7 A9 T6 C g; O
else
- b6 E- T0 c9 k, w begin
: U4 w; B. o' X9 `8 v& ]% V counter1=counter1+1;+ ~0 a* {0 W' v5 A
end5 z! E. c3 [. V% r4 d$ Z
end
& K7 @+ [6 |: q u7 L: R0 m% I; {. C, x8 d4 v, Q* J
always @(negedge clk)$ W5 p) }4 j/ G' r- c- O
if(clr==1)
+ l+ T0 A: K7 A8 y( E* B( u, _5 R+ e begin ( t! ^$ s( H5 m
clkreg2=0;
$ }$ h* Q& Y" W; s8 ~) ]2 G counter2=0;7 m& U" B6 X \
end% }% e. {: Q" X/ Q
else
" i* L; R# ^* j" ] begin ( {5 V: ]$ D$ P% @- j7 n
if(counter2==n-1)
Z) i2 d# i9 }6 w begin
7 j1 x- w$ E" f; n! E counter2=0;3 |: }* V, j0 T$ r8 p' ^# O
clkreg2=~clkreg2;
8 q, {2 {; Z- H; d end
; K( ~! y, k" s; {+ f# R else if(counter2==(n-1)/2) 1 Q+ c8 } k, o+ ^- ^
begin ' h W9 v5 n+ l- |( P
counter2=counter2+1; j% D8 F w F' c4 Q" c
clkreg2=~clkreg2;1 L& ?# D& G/ v* `3 L
end
: o, L: S e$ \# i, P7 r" X3 G" t/ l else & \3 q5 x; T8 C1 m
begin
2 k n7 j0 Y8 l$ p/ B counter2=counter2+1;: K0 [! S, M) j( p7 j& t3 y2 N
end
& A& s& a6 v f+ P5 s end. y9 N& L8 X6 a/ ?: T
* e) V1 m s! Z8 K. z2 K* _
endmodule | 6 H* [/ D1 Z7 B. G/ g* A" _2 L# V
: i% O* X7 n& c6 L8 V) i2 }+ a3 n
; `1 ?, i; H$ p% z, Z, q
. s5 u# r( E( o4 H V
6 |( n% H: r2 h0 z# a! E& p3 L$ m0 k N# g3 D
|
: e5 [* ?4 Y( _. T" K |
# N' s) Z7 x: {) S1 x. I( n- G |
|