Chip123 科技應用創新平台

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

作者: 小人發    時間: 2008-3-24 08:30 PM
標題: clock 的duty ratio問題
如果想要在testbench裡面完成一個1/4的duty的clock5 h3 P! a/ b4 F" q- p
code要如何寫?" E4 q2 L' f. R0 B
需要用迴圈寫嗎
/ t3 C! p, J3 T$ l6 a4 E1 t% t! O6 A* m5 I$ v
我知道 duty=50%是
+ Z) j# N( a# a% y  `3 o3 d5 I: `0 F: e' W# l3 b1 E2 Z
always: K8 h* Q$ ^+ t9 H$ l/ ^" @
#20   clk=~clk;' R- m9 T: M0 C5 L
initial   begin
: }3 l6 r  d% pclk = 0;' r" u: F" k5 p- {$ g
end+ O7 s3 S1 h! n$ _( R; Y

2 w: X' j( _* S1 M[ 本帖最後由 小人發 於 2008-3-24 08:45 PM 編輯 ]
作者: masonchung    時間: 2008-3-25 12:56 AM
因為duty=50% => #20   clk=~clk;  z* L  Z' v* F! x" P4 l4 Y
所以duty=25% => #10  clk=~clk;
3 w! t5 a7 f' j1 D5 X3 o1/4的duty high , 3/4 的duty low ==> clk = 1;" n; B. s5 i9 w; a5 A
所以這樣子改一下; t8 i/ B' l# D4 j- G( D
always/ w( P9 o6 c+ F( z6 {& K
#10   clk=~clk;
5 L& X  J$ j6 O0 x1 @. [) cinitial   begin
1 F9 ]  a$ o. j9 ]) A. G7 Pclk = 1;0 P- e! |$ R3 e( l8 f! ?8 B
end
" S, {2 s, @7 e- q- F& ?試試看
作者: 小人發    時間: 2008-3-25 03:48 PM
標題: 回復 2# 的帖子
#20   clk=~clk;0 L+ ~1 ~) o  k. u6 l
#10  clk=~clk;' f& \& J. L: s" Q. W

; g5 b  u: E4 s1 V$ `1 W: H: c7 m版主寫的這兩個  應該都是duty=50%的頻率吧7 T2 ^4 a/ T6 M/ @2 n* h7 ~6 b. b
只是出來的頻率不一樣2 S, `* D0 i1 o* u4 R+ J
應該沒辦法達成duty=25%  Z! i" h  \$ w8 g, k
還是說我沒看懂?
作者: masonchung    時間: 2008-3-25 10:34 PM
應該加一級counter , 以 clk 為 clock , clk_out 為輸出/ F1 X, m5 Y- L% O- B8 Z  F8 u
initial 時clk_out=1; [+ V: M0 s# _. p
數到1把 clk_out=~clk_out
. g0 J( y3 K7 A  n& P5 Q; {( K數到4就 reset 並  clk_out=~clk_out
作者: masonchung    時間: 2008-3-26 07:46 AM
你的問題應該跟這位大大類似) d1 m: ]# u1 K- S
http://www.chip123.com/phpBB/vie ... extra=page%3D5#zoom
0 ]' t: Q1 F! o  W) M5 S這是另一種實現方法
作者: klim    時間: 2008-3-26 05:39 PM
標題: delay運算問題
`timescale 1ns/10ps% v0 e% @3 y  G, e5 [  o: Z
parameter        SYS_CYCLE = 12;
& J) v5 w+ \( c* E& D5 vinitial begin% ]+ t+ |$ a2 `3 ?3 ]
        sck = 0;, q  m; e& j& w+ `! F1 g
        forever begin
! j7 o0 O: Y5 t          #(500/SYS_CYCLE) sck = ~sck;
% Y6 T8 E1 L& q2 W8 r7 w; z        end
' t/ a4 z6 ?2 E7 k3 Hend        * g' G- [2 V" C% q
結果sck為82ns的clock, 請問如何變成82.334ns的clock, 也就說怎麼做小數點的運算?
作者: jarodz    時間: 2008-4-1 12:12 AM
#(500/(SYS_CYCLE*0.1)) sck = ~sck;




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