Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-24 20:30:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如果想要在testbench裡面完成一個1/4的duty的clock$ m6 E8 x! c, C$ \
code要如何寫?
: \  m7 H" R3 Q! T/ e6 \6 m需要用迴圈寫嗎  ^, A$ C6 T$ h3 c. y: x
' O& w" n; v' v8 E
我知道 duty=50%是& Q- X' w  ^0 n( [& m! Q

  E' J% g+ Y' I) Z! Zalways
# d0 I  n2 z% J0 U#20   clk=~clk;6 W- i! s. d9 u4 w& }/ d$ B  L
initial   begin
  q/ d  q5 M6 _7 t, Iclk = 0;. O% J4 O9 t9 @" ^) U$ b; m5 E
end
2 T0 S& H) |; ^4 X
* o( Q6 M) H$ s% G- X3 j! u: m[ 本帖最後由 小人發 於 2008-3-24 08:45 PM 編輯 ]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-25 00:56:22 | 只看該作者
因為duty=50% => #20   clk=~clk;: _% I/ ^3 k& ?2 V. N6 j1 q: I
所以duty=25% => #10  clk=~clk;
/ _9 ]* M$ w8 L3 M" x# l, k1/4的duty high , 3/4 的duty low ==> clk = 1;/ y& d1 A* ~* d- Q* _$ q
所以這樣子改一下3 _' ^; E! Z! ~7 h& ~: s
always; d2 ]/ D: w# o3 X+ f
#10   clk=~clk;
1 y! Y3 L3 m' E& x2 Iinitial   begin
5 Y- I6 ~" X. V' p+ g9 n4 |clk = 1;
$ f* [2 z/ @. m9 a1 qend
( J3 t" G6 J  Y9 ?' x7 z試試看
3#
 樓主| 發表於 2008-3-25 15:48:22 | 只看該作者

回復 2# 的帖子

#20   clk=~clk;
% Q, ~7 I9 G" M. y. K#10  clk=~clk;' o  [+ B2 R- u

5 i5 E" T6 U# s8 C# `1 y$ g+ w7 M版主寫的這兩個  應該都是duty=50%的頻率吧% i7 c: ^# B, w1 P+ R7 y
只是出來的頻率不一樣" J. \! Q+ P2 Y6 }+ T
應該沒辦法達成duty=25%. u; D9 Z, G, {/ y7 \/ t
還是說我沒看懂?
4#
發表於 2008-3-25 22:34:58 | 只看該作者
應該加一級counter , 以 clk 為 clock , clk_out 為輸出
5 v4 N  b2 w7 [9 @& V" v" u$ Ainitial 時clk_out=1
/ z3 H% s. E5 {' c, [( j' T數到1把 clk_out=~clk_out+ c  |4 Z: L* }+ D% t
數到4就 reset 並  clk_out=~clk_out
5#
發表於 2008-3-26 07:46:52 | 只看該作者
你的問題應該跟這位大大類似
5 Q$ P% Z+ K8 L, shttp://www.chip123.com/phpBB/vie ... extra=page%3D5#zoom* ]5 [7 {0 v9 o% e6 _
這是另一種實現方法
6#
發表於 2008-3-26 17:39:32 | 只看該作者

delay運算問題

`timescale 1ns/10ps
& O6 ~: v& ?: Q' w5 D. Y) V. ?9 sparameter        SYS_CYCLE = 12;
& e9 |* s+ }4 Q, binitial begin1 @2 j; `5 n3 _& v$ D7 J9 W
        sck = 0;
% i* e' c/ v4 D# J8 S& T        forever begin5 f' B8 k6 L3 V
          #(500/SYS_CYCLE) sck = ~sck;
! X$ h+ ~' z8 K# _! N        end5 u, k* h9 u3 x0 G; O" ]
end        5 }, b" Q% E( A9 B8 [" I5 C4 ^
結果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-30 02:34 PM , Processed in 0.103513 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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