Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-24 20:30:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如果想要在testbench裡面完成一個1/4的duty的clock* H5 o/ _! P0 |8 N; S
code要如何寫?
& a$ J9 Y$ ?/ _* _; {# s需要用迴圈寫嗎6 p# r" Y# B4 S5 m" ^  w( p- j% i. @

" B, `; p2 G1 N' B/ {  I我知道 duty=50%是
: _, |6 M) K7 A! {+ l  k
' P' o6 \- A* `- nalways( f" h) {7 M+ ]8 S4 Q
#20   clk=~clk;
9 N' L  c" O; L9 u1 X3 xinitial   begin* V8 X9 S# ], X6 e1 c* _2 w
clk = 0;+ `" B! [+ m: R) s- `; c
end
" V5 ~/ k1 G5 [4 _. H2 t; ^4 o4 g% R* A% v7 w
[ 本帖最後由 小人發 於 2008-3-24 08:45 PM 編輯 ]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-25 00:56:22 | 只看該作者
因為duty=50% => #20   clk=~clk;6 @) R( P: s; ^! C
所以duty=25% => #10  clk=~clk;" j) @7 ?% O; I* }
1/4的duty high , 3/4 的duty low ==> clk = 1;
7 o' c2 j. M$ N+ F; [( z* X所以這樣子改一下
) ~. b/ c2 e! y6 Ialways
4 B4 Z0 O# V* O#10   clk=~clk;  Q+ R3 S6 U& R# H8 i7 z
initial   begin5 \8 b9 S, n" }, U
clk = 1;
5 d2 @  I, T3 d  M) A  Fend
+ \" }$ L$ m; B" [( R試試看
3#
 樓主| 發表於 2008-3-25 15:48:22 | 只看該作者

回復 2# 的帖子

#20   clk=~clk;( S- [% x5 s9 N2 H) t1 s: `) _& \
#10  clk=~clk;% X# S# u: m  v/ O
* |% X$ s$ W; l
版主寫的這兩個  應該都是duty=50%的頻率吧' x# w* y3 e" F8 }# j
只是出來的頻率不一樣3 k  O0 J  ?. Y" r, `0 b& ~0 F+ w
應該沒辦法達成duty=25%6 g1 f  {* p  @3 k
還是說我沒看懂?
4#
發表於 2008-3-25 22:34:58 | 只看該作者
應該加一級counter , 以 clk 為 clock , clk_out 為輸出/ b4 H4 O- H# }
initial 時clk_out=1& r6 z. P) M; H, p; C. a* f) s7 k
數到1把 clk_out=~clk_out
* R( I$ V8 ~) o2 T! |數到4就 reset 並  clk_out=~clk_out
5#
發表於 2008-3-26 07:46:52 | 只看該作者
你的問題應該跟這位大大類似
2 V/ O" A0 w2 b4 {4 z1 f5 ihttp://www.chip123.com/phpBB/vie ... extra=page%3D5#zoom
+ Z7 b: N7 Q; Y$ A6 z) H這是另一種實現方法
6#
發表於 2008-3-26 17:39:32 | 只看該作者

delay運算問題

`timescale 1ns/10ps
5 O. ?) Z+ W/ Z, q7 R! nparameter        SYS_CYCLE = 12;
' R! T  H) y" }2 e6 \, v* sinitial begin# b9 Q. j& a9 [9 [6 Y7 z/ k
        sck = 0;
' I; g9 s1 [8 n! b/ z4 t        forever begin
" o6 M) l# [8 c1 ^0 T* u! Z          #(500/SYS_CYCLE) sck = ~sck;1 c) @6 D1 O  S& {1 U
        end3 X' A/ q' d  H
end        + i0 b! }. q0 A( U: ^$ u* T
結果sck為82ns的clock, 請問如何變成82.334ns的clock, 也就說怎麼做小數點的運算?
7#
發表於 2008-4-1 00:12:23 | 只看該作者
#(500/(SYS_CYCLE*0.1)) sck = ~sck;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-15 05:56 PM , Processed in 0.125516 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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