Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] verilog clock generator question

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-29 16:14:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Hi " I3 u0 [+ ?$ j
7 p8 B& @. z- I9 L" V
My clock generator is as follow
; l( i, Y9 ?; @- A: N
) o  d; H5 h) }5 J0 @0 r5 L9 u`timescale 1ns/10ps& ?  |: v: \" h& O

4 c4 h7 S( |, X+ b* ]$ z`define period 15
; t. F8 {* H& @' L3 d6 T
6 |! A0 Q" O+ }: Z. V5 `module test();0 s4 V4 Y+ ]' q
reg clk;9 A7 _3 q& M& R+ c
% w8 L( ^7 x$ ~9 G
initial begin
$ c2 t- D5 S/ N6 ^& j- Pclk = 0;
3 L% A- k- i& q" |, hforever #(`period/2) clk = ~clk;! y( s, s) u* S' S! n. R
end% I/ p9 D( x/ Q- O2 C$ A

5 f; n4 \: A( g( b9 `, ]) l
) R% _8 g% E9 y1 x9 e8 U  JBut i check the waveform the clock period is always 14ns.% j5 ^) w5 F6 O  A$ Y9 i

/ k! D( G( a. A" J; ?Could anyone help me the question ?
3 n* V) C) r+ H4 T% m
  O( m# A% x5 O3 O( W  d7 E$ jThanks
1 R# }! q$ F/ B) H0 k+ J7 X: _7 ?+ O* k2 J- G3 _! w
endmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂3 踩 分享分享
2#
發表於 2013-11-16 13:04:32 | 只看該作者
本帖最後由 card_4_girt 於 2013-11-16 01:21 PM 編輯 $ B* T* V: L9 s1 O* A
6 Y6 k; X( U; J' v1 W
verilog好像不能這麼做! L) @& @7 p' L7 [+ s  x$ i
因為你的period = 15
9 [* o1 J. m! S! g) X9 {8 m# N當使用period/2時,他也只能取最接近整數9 L3 \0 h& E4 r( x9 d) w5 L
所以就會造成你說的這個現象(period/2 = 7而不是7.5)/ ~6 ]6 a  F5 N
- P, F* n1 g, J& X) l3 U
網路上是有人做過週期2N+1的波形" _9 ], K  s2 h! s0 h2 M% K1 ]6 w
建議你先去爬文看看" f0 k7 n7 }/ k; l* R3 q% B
這種半週期N+1/2因為含有半整數1/2的部分,要事先做處理
3 h( f) v# v" g
2 t* h) A8 C) O# E7 O- G2 \  t- N或是就乾脆改程period=14也比較簡單
) z- Y3 k: s% ^" p4 s0 Y8 ^! W) r% P  V* T
不知大大有何理由一定要讓period=15不可?
3#
發表於 2013-11-16 15:06:17 | 只看該作者
抱歉!: l& T8 r3 z* M7 c) U( B7 i
我好像誤解了你的問題
1 A, B+ N) ~) R1 e真正原因應該是x/2的分母是整數,所以結果也會是個整數
: j, N9 s; k& g8 W2 h$ T0 E7 B* K剛跑個例子試過1 m, L- R5 x( X+ E
也許應該要改成
0 ^3 Q7 I4 g) _$ |1 _. J0 C! \" Iforever #(period/2.0) clk = ~clk;' k6 Q* g$ m# q" B2 G
3 M* _  A' e& S( V
forever #(0.5*period) clk = ~clk;1 A. ^5 j: i: F, i

* J$ G* {1 H) t! |3 E, g不過精準度應該調到100ps就可以了,不用10ps
) a8 d( z* s3 f: j+ k6 n也就是 `timescale 1ns/100ps6 s4 f3 T% w- I0 e" M; X

; G% M9 P  y  V# b  a  d* T如果還是沒辦法解決,就去找看看怎麼定義半整數,或是就乾脆改成period/2是整數的格式
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-17 10:58 AM , Processed in 0.109014 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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