Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-24 20:30:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如果想要在testbench裡面完成一個1/4的duty的clock" [* ?7 @  r* u# r
code要如何寫?
4 [7 ]6 K6 i1 K需要用迴圈寫嗎  v" N2 n, Z1 O# ?7 j4 ?) V

$ s$ P# q  ]5 u& i" ~' W我知道 duty=50%是
6 N& a7 S6 q: ?5 o# x5 j. J* X4 q
/ B( u4 U. a  {7 \3 X. Valways
" r+ F3 A3 ]+ B% X#20   clk=~clk;8 }# G7 ?- e6 A( H
initial   begin
. y6 h8 W% O' D. _% pclk = 0;. x7 l( R: g6 G
end! F' d: a  ~  n) ]5 C1 _9 b& }6 E  V/ @

: z' J% q& X) \5 Z6 U' r8 T[ 本帖最後由 小人發 於 2008-3-24 08:45 PM 編輯 ]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-25 00:56:22 | 只看該作者
因為duty=50% => #20   clk=~clk;) v; V% F5 H3 N" v! H
所以duty=25% => #10  clk=~clk;
4 u# B- s. F2 b5 g: y. \; S1/4的duty high , 3/4 的duty low ==> clk = 1;
' X0 }- M1 Q; u2 [; x所以這樣子改一下
! b6 b8 W# ~/ q+ kalways9 D. G4 l1 F( L! @; `
#10   clk=~clk;
  {) Z/ y+ q' d" k  \9 ?( }+ cinitial   begin
" Y2 \* D) N7 s; P1 V7 Qclk = 1;
1 I: T. Z' J! V, \) hend2 U0 ~  q3 a1 N5 T
試試看
3#
 樓主| 發表於 2008-3-25 15:48:22 | 只看該作者

回復 2# 的帖子

#20   clk=~clk;
6 ]! g- K% C& b$ W- o" u& f& b#10  clk=~clk;
# M' `5 S# N% ?3 L5 A  F/ r
# g# w! l0 t+ Y4 a- x9 g版主寫的這兩個  應該都是duty=50%的頻率吧6 h' w  o$ @0 ]1 S
只是出來的頻率不一樣9 Y$ c! y- h$ F1 X
應該沒辦法達成duty=25%
* E0 l8 l# o; }還是說我沒看懂?
4#
發表於 2008-3-25 22:34:58 | 只看該作者
應該加一級counter , 以 clk 為 clock , clk_out 為輸出3 I8 b: R" o0 y3 i  b
initial 時clk_out=1
. n  B7 C* N$ F% {數到1把 clk_out=~clk_out7 \: s; [/ ?+ P/ d* t; B
數到4就 reset 並  clk_out=~clk_out
5#
發表於 2008-3-26 07:46:52 | 只看該作者
你的問題應該跟這位大大類似
2 X  _/ u% \/ b# s- r# }http://www.chip123.com/phpBB/vie ... extra=page%3D5#zoom
+ \' j  r0 Z* |這是另一種實現方法
6#
發表於 2008-3-26 17:39:32 | 只看該作者

delay運算問題

`timescale 1ns/10ps
. M7 Q6 V) y  R* f" \parameter        SYS_CYCLE = 12;
3 P, |; G5 \4 e7 f6 m8 R2 e: rinitial begin
/ n7 X6 E' r4 ?: _3 H% F        sck = 0;% P# Q1 H' `  P9 b+ q% n, y
        forever begin
7 P$ |, D! ?$ B8 K0 M- }' y) r4 q          #(500/SYS_CYCLE) sck = ~sck;
: [$ r+ q3 n/ P6 O9 B# i) y        end
1 v( I( X  a  d) x7 w* ?end       
: N; B* m! _  V& P- T3 n) y! `+ ~. x; ^結果sck為82ns的clock, 請問如何變成82.334ns的clock, 也就說怎麼做小數點的運算?
7#
發表於 2008-4-1 00:12:23 | 只看該作者
#(500/(SYS_CYCLE*0.1)) sck = ~sck;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-20 10:37 PM , Processed in 0.156000 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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