Chip123 科技應用創新平台

標題: clock 的duty ratio問題 [打印本頁]

作者: 小人發    時間: 2008-3-24 08:30 PM
標題: clock 的duty ratio問題
如果想要在testbench裡面完成一個1/4的duty的clock6 j0 W% I, I/ E( ^/ r0 a% L
code要如何寫?( x1 U! b+ \' I6 r& ^, N: `
需要用迴圈寫嗎
5 c" D/ ]- C& J! G) y+ H% w% ~  j2 z0 p1 l% P2 W
我知道 duty=50%是
$ N' U  d6 o! ~! Y$ d' i1 i! V" B$ ?. e- F9 T3 S6 m& m
always$ q, @6 [5 c) a0 J! Z3 T7 m
#20   clk=~clk;4 ]) N. w, Q- J* [" ?& G! T
initial   begin- ^. n. N  Z5 D0 ~
clk = 0;
8 N/ b& H$ \7 G8 {" K8 d3 @! pend( S, E1 ^7 }6 c3 X' G: b. B- z

: N1 _' [+ Z8 ^. V[ 本帖最後由 小人發 於 2008-3-24 08:45 PM 編輯 ]
作者: masonchung    時間: 2008-3-25 12:56 AM
因為duty=50% => #20   clk=~clk;& w4 G7 C, F3 p. t5 ^9 v; w
所以duty=25% => #10  clk=~clk;
  }6 c; N1 ^, ~& G7 A8 a. o1/4的duty high , 3/4 的duty low ==> clk = 1;* p$ b% X% }6 K$ `) J
所以這樣子改一下
9 J3 \" J/ {, q/ salways9 }# P% V# i" |5 C8 w" W2 P$ N
#10   clk=~clk;
# |2 {! t) C9 C% `! R& {initial   begin$ Y- w, f+ g: _( f: l
clk = 1;
/ U! I' @$ U9 \9 [end
) p( ^9 ~5 \  L: @5 z) j4 \試試看
作者: 小人發    時間: 2008-3-25 03:48 PM
標題: 回復 2# 的帖子
#20   clk=~clk;
$ j2 F7 H, H+ f; Y#10  clk=~clk;- c0 ^" C3 h/ O3 R0 b' a' |# \' _7 O
! P$ d2 L& z. }9 y( ~3 L
版主寫的這兩個  應該都是duty=50%的頻率吧/ D9 m6 ]- [* i- j- m' o8 X
只是出來的頻率不一樣# `/ C) B' a1 P( L) A
應該沒辦法達成duty=25%( q& I+ b+ j4 k
還是說我沒看懂?
作者: masonchung    時間: 2008-3-25 10:34 PM
應該加一級counter , 以 clk 為 clock , clk_out 為輸出! H0 G# i9 G' [8 T1 W
initial 時clk_out=1" N, D1 K8 Z6 T: a1 ?
數到1把 clk_out=~clk_out
) \- w  u+ y3 R1 Y% P數到4就 reset 並  clk_out=~clk_out
作者: masonchung    時間: 2008-3-26 07:46 AM
你的問題應該跟這位大大類似
) P5 ?' M! `, H$ @3 M" ^http://www.chip123.com/phpBB/vie ... extra=page%3D5#zoom! R% V* S  Y2 {: i) Q+ Y) g
這是另一種實現方法
作者: klim    時間: 2008-3-26 05:39 PM
標題: delay運算問題
`timescale 1ns/10ps# p4 A7 f& n- u+ J
parameter        SYS_CYCLE = 12;
. e  c  F, R" X" S" j/ {  ainitial begin
$ _6 R% g' b  x: ~' Q        sck = 0;
/ c  f& @0 X9 t* h, ?  W        forever begin, e- W: L* E9 S: v8 |
          #(500/SYS_CYCLE) sck = ~sck;
' P5 J( K& q) J" ^1 _        end
- [$ C4 _! K' p& h% yend        0 w& w& _. b) |. v! }
結果sck為82ns的clock, 請問如何變成82.334ns的clock, 也就說怎麼做小數點的運算?
作者: jarodz    時間: 2008-4-1 12:12 AM
#(500/(SYS_CYCLE*0.1)) sck = ~sck;




歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/) Powered by Discuz! X3.2