Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-24 20:30:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如果想要在testbench裡面完成一個1/4的duty的clock
1 C; o3 h# B1 S- c  I' zcode要如何寫?; B3 G+ H; d9 @# E4 G
需要用迴圈寫嗎! N. J1 v( K7 K' D7 F& `
1 e% k! t3 G& s+ t* C* D6 E
我知道 duty=50%是
  U! `' C  ?" ~3 D6 N2 H  P$ {) L5 L
always5 J& g' u  l, J
#20   clk=~clk;
. Y4 T2 S0 i( H% [/ Z5 B; D+ [initial   begin
5 \; k; p% W4 t" w4 {clk = 0;% n# Q8 k6 q% d2 \6 T
end
, ]% I) }. e; D' @/ ?0 G+ o, B0 g) {6 {; U" a5 Q
[ 本帖最後由 小人發 於 2008-3-24 08:45 PM 編輯 ]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-25 00:56:22 | 只看該作者
因為duty=50% => #20   clk=~clk;
' d' d7 n% L* z* h  b2 L所以duty=25% => #10  clk=~clk;0 L! v( B/ k' E: g& L0 \" g
1/4的duty high , 3/4 的duty low ==> clk = 1;' B; v5 z: x. B% e/ g+ y
所以這樣子改一下! n: `' H# ?# T* S
always
( `' c( d- l* ]; ]' I# [+ s#10   clk=~clk;9 D5 B0 ^$ D0 T5 C
initial   begin1 C1 z" M2 w0 ?8 P$ n
clk = 1;
, B8 |0 j' d8 s! vend) f( o& f  Y8 e' N) |* v) H
試試看
3#
 樓主| 發表於 2008-3-25 15:48:22 | 只看該作者

回復 2# 的帖子

#20   clk=~clk;7 X* F1 |( K  G0 j' _0 O& q2 O
#10  clk=~clk;
! ^7 D, y* }7 p1 \3 K: E2 E# F6 P8 G' ~7 E0 M  ^" B6 o+ a
版主寫的這兩個  應該都是duty=50%的頻率吧$ l/ }) |8 C' K7 _
只是出來的頻率不一樣
- b& T6 ], r/ @+ s$ H2 }- a應該沒辦法達成duty=25%. x" ~! v' x1 R  V7 K) ]
還是說我沒看懂?
4#
發表於 2008-3-25 22:34:58 | 只看該作者
應該加一級counter , 以 clk 為 clock , clk_out 為輸出
4 v. ^, f, j% q2 n. Vinitial 時clk_out=1
) e- w. {* |/ D2 P# {, s數到1把 clk_out=~clk_out1 ^1 D) m9 w4 G
數到4就 reset 並  clk_out=~clk_out
5#
發表於 2008-3-26 07:46:52 | 只看該作者
你的問題應該跟這位大大類似
, \+ O9 F: W* @8 e+ o+ L+ ohttp://www.chip123.com/phpBB/vie ... extra=page%3D5#zoom
- c. [$ E$ n- Y0 \這是另一種實現方法
6#
發表於 2008-3-26 17:39:32 | 只看該作者

delay運算問題

`timescale 1ns/10ps* a$ @9 w4 F" L. N. p& A
parameter        SYS_CYCLE = 12;
  h+ C/ D) w. I6 I, U1 e3 z# t8 ginitial begin% }# I# L$ v+ g# y; k3 q
        sck = 0;9 i6 Q& x6 V6 L1 Y! D2 @
        forever begin) s( V6 {9 L5 w1 w0 D! R  g6 w
          #(500/SYS_CYCLE) sck = ~sck;, S% P% P, E2 i6 j( t) h6 h
        end# K* q8 ?+ _; _! S. J
end        , m" t7 r% B) P9 `' o4 t
結果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:42 PM , Processed in 0.171601 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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