Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-24 20:30:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如果想要在testbench裡面完成一個1/4的duty的clock
" W5 [4 N: h/ M0 k$ m# ucode要如何寫?
; I, x% z. ]) H0 ]# R7 Y% `6 k- ~3 C4 \需要用迴圈寫嗎
& s2 G3 @/ f( p2 J9 `6 e
$ }, \4 v6 q1 T4 J我知道 duty=50%是! v/ u8 \% C7 f, D- c5 q2 A$ }

4 M+ L, y* b/ A6 w- t4 Salways9 R% j- m7 {) c; k' C6 ?+ @6 ~
#20   clk=~clk;
8 }& r, {3 A4 y2 b7 A' N: E2 einitial   begin! v' \3 R4 M/ G( ~6 a
clk = 0;
0 {$ g8 _; c: N9 o1 e5 Cend# s+ K# k' k7 u0 \: ^! N
9 }9 E3 B( {+ z
[ 本帖最後由 小人發 於 2008-3-24 08:45 PM 編輯 ]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-25 00:56:22 | 只看該作者
因為duty=50% => #20   clk=~clk;3 D/ W% \) ^- O
所以duty=25% => #10  clk=~clk;
% w! z' ?0 C! P! w  C( H1 _8 @- t1/4的duty high , 3/4 的duty low ==> clk = 1;4 Z  j3 P& O( R+ Q# t
所以這樣子改一下8 e. j+ [" p$ Y+ H# K6 z/ _# V
always, E0 p; ]7 i3 ~, b% ~
#10   clk=~clk;9 X6 F3 q* k  n1 Q( X
initial   begin7 [/ o9 o2 t6 S- c
clk = 1;3 a8 o5 B: Y1 z! X
end5 \$ u9 Y, ?. A- B  h
試試看
3#
 樓主| 發表於 2008-3-25 15:48:22 | 只看該作者

回復 2# 的帖子

#20   clk=~clk;9 C  t; V! S& e; K9 b8 e
#10  clk=~clk;
6 F& x) Y* x3 d1 _$ C% _# o3 x0 j& i+ A  A
版主寫的這兩個  應該都是duty=50%的頻率吧
: T) q5 B: G" f只是出來的頻率不一樣
" u4 B/ k4 q$ T應該沒辦法達成duty=25%
6 b3 h. v! Z- S" }( w1 C+ s還是說我沒看懂?
4#
發表於 2008-3-25 22:34:58 | 只看該作者
應該加一級counter , 以 clk 為 clock , clk_out 為輸出
6 m. Z( p, G  L5 x* j5 vinitial 時clk_out=1
2 i3 R" h% J/ k* N& }( R數到1把 clk_out=~clk_out4 X% W' y7 E/ c) l: ]
數到4就 reset 並  clk_out=~clk_out
5#
發表於 2008-3-26 07:46:52 | 只看該作者
你的問題應該跟這位大大類似% \' s3 S, C7 y
http://www.chip123.com/phpBB/vie ... extra=page%3D5#zoom
/ D- q+ i! x1 K- h( e這是另一種實現方法
6#
發表於 2008-3-26 17:39:32 | 只看該作者

delay運算問題

`timescale 1ns/10ps
6 u  U# F, ?* q: T5 i% ]6 cparameter        SYS_CYCLE = 12;
  @) d! K1 Q% M" l$ R) oinitial begin
3 f0 w1 x; t& [9 [( k        sck = 0;
/ e) S( L0 ~& E% B, w6 L        forever begin
, o! b# q; D: I8 N  d          #(500/SYS_CYCLE) sck = ~sck;
, l5 e1 m2 q3 @& l8 ^; e        end
+ F/ v( F2 R# ^0 b- z" B9 rend       
8 j3 B( g$ N& X結果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-8 12:30 AM , Processed in 0.111514 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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