Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 3699|回復: 6
打印 上一主題 下一主題

[問題求助] clock 的duty ratio問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-24 20:30:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如果想要在testbench裡面完成一個1/4的duty的clock2 v' a+ P3 i9 R1 p
code要如何寫?
7 R. O' _+ ~2 Q  d- i2 m# H需要用迴圈寫嗎0 E* j  J) k" o$ V+ `
/ z1 X1 t7 F. p" l; s' K3 w
我知道 duty=50%是3 M, Q& `( K! v. }

- Q% \: r- X' Ialways
# z+ h& l, u: o- U- n/ c#20   clk=~clk;
2 n7 l2 d7 [" F' U+ b8 a' Rinitial   begin
6 A+ L2 h* r# I6 P4 O' eclk = 0;
% w1 }) r% p5 y" Iend3 U: C' D" g' B  q2 T5 U4 w- B
* X) {9 }0 ~' A3 l5 N8 M1 m
[ 本帖最後由 小人發 於 2008-3-24 08:45 PM 編輯 ]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-25 00:56:22 | 只看該作者
因為duty=50% => #20   clk=~clk;  ]5 }8 s2 t8 J$ @" V
所以duty=25% => #10  clk=~clk;' C% t2 v7 ?# G$ a
1/4的duty high , 3/4 的duty low ==> clk = 1;* r( y9 h  r2 _* o# |" f
所以這樣子改一下1 v7 O" h5 l* x0 m
always& {! C1 c6 o! F  ]  T
#10   clk=~clk;  G; T, P) a6 ?3 d8 L3 h9 Z& D
initial   begin
' T0 A& E2 l: e9 zclk = 1;
: D8 c5 H0 q  l7 {' @end! S/ f9 b* w3 Z% I8 x6 H, o
試試看
3#
 樓主| 發表於 2008-3-25 15:48:22 | 只看該作者

回復 2# 的帖子

#20   clk=~clk;6 O5 s/ ?- b% N6 }" i
#10  clk=~clk;3 K2 h2 |3 [) G8 p7 z  N; J5 q
1 w6 z. V; E( Q) h* R
版主寫的這兩個  應該都是duty=50%的頻率吧
) H% m) P7 j1 U, h" r2 y6 V* j只是出來的頻率不一樣
" f$ q' k8 b* Y+ }- M) }$ m( h應該沒辦法達成duty=25%4 _4 d- u2 ^8 K, N6 S: b
還是說我沒看懂?
4#
發表於 2008-3-25 22:34:58 | 只看該作者
應該加一級counter , 以 clk 為 clock , clk_out 為輸出: R3 W4 F0 t1 K5 ]
initial 時clk_out=1  u4 }9 }  b' e1 X( K8 p. u- o
數到1把 clk_out=~clk_out; G# }# M/ q  t3 m, l% T
數到4就 reset 並  clk_out=~clk_out
5#
發表於 2008-3-26 07:46:52 | 只看該作者
你的問題應該跟這位大大類似6 ^& ~% q9 X; w& P+ ~7 S: S5 j
http://www.chip123.com/phpBB/vie ... extra=page%3D5#zoom
; K# N* q9 F6 D. M1 ]- v3 M這是另一種實現方法
6#
發表於 2008-3-26 17:39:32 | 只看該作者

delay運算問題

`timescale 1ns/10ps
# ^6 ?% y8 Q0 E7 Vparameter        SYS_CYCLE = 12;' P7 s. J# S! b& o; j2 w
initial begin8 p: W1 |  ~+ j: @9 d0 t' f( ~+ l
        sck = 0;  ^/ z- s) f# b3 L# [3 o3 v" i' Q2 k$ P
        forever begin
  e% c* B0 q& T" V          #(500/SYS_CYCLE) sck = ~sck;2 H- d9 C/ [! M2 a; g9 C
        end# b- t) [+ [6 Z$ N
end       
- a7 K% ^, k  `# {結果sck為82ns的clock, 請問如何變成82.334ns的clock, 也就說怎麼做小數點的運算?
7#
發表於 2008-4-1 00:12:23 | 只看該作者
#(500/(SYS_CYCLE*0.1)) sck = ~sck;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-5-3 05:45 PM , Processed in 0.103006 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表