Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] verilog clock generator question

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-29 16:14:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Hi
6 h: q# R% a9 H$ [2 w
$ h  v3 u& B& h8 m& \% {My clock generator is as follow
- d" ]4 O. |- F5 C5 `' `* V4 x- ~# g0 T& M4 K5 |2 x8 y2 X& D5 W( c9 K
`timescale 1ns/10ps
" B+ t8 k' i- Y6 O& ]4 K% T$ P; u
`define period 15
- N5 U6 B4 {( V  J, ^5 j: r7 K' I# L6 x# p% }3 l) H
module test();
/ W7 I+ m6 x( j4 U/ r- _) c$ Oreg clk;: d" |" k. p# F6 m7 ~- ~  R+ t

5 e  P; m* N  u/ M/ \initial begin3 e% o& ]9 U/ @+ [0 t! _9 W% Q* l
clk = 0;5 a+ [# ]3 u0 m$ i* r
forever #(`period/2) clk = ~clk;/ A' y  m+ r% d
end9 V9 i& W& Q  X8 W
0 `+ L+ I; N% @4 o0 l9 B4 ]/ i

. s" |$ T- j* t) |  Z* pBut i check the waveform the clock period is always 14ns.
' x2 U! Q) J* }- E' N& a- c& l1 U- F0 d! {3 S
Could anyone help me the question ?: X# F8 |0 T2 l3 [% D" f5 t
% g* y# o( s6 k0 E. w" I  E  Q
Thanks
0 e$ `/ j( x2 s9 L8 i8 f' D. y
" q: y7 L9 x) R( ]) o0 |endmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂3 踩 分享分享
2#
發表於 2013-11-16 13:04:32 | 只看該作者
本帖最後由 card_4_girt 於 2013-11-16 01:21 PM 編輯 - g) m1 s! `3 Z  n: B8 S

4 r6 U* c& P5 \  Y! Wverilog好像不能這麼做
4 z! T( V% m( M  L因為你的period = 156 R( b5 }' {: m* @; j! i( n
當使用period/2時,他也只能取最接近整數
, h5 ]0 y8 D" U% Q所以就會造成你說的這個現象(period/2 = 7而不是7.5)" I8 H1 H% }7 U! u' d* j, `% N
) `& q1 x5 N1 U/ M, o% T2 r: c
網路上是有人做過週期2N+1的波形
$ i$ G; t# r9 s建議你先去爬文看看, {' V+ @$ S: ^. z4 k+ D
這種半週期N+1/2因為含有半整數1/2的部分,要事先做處理
. f( p5 p( h9 F1 b0 z9 s; ]
! T/ o, j+ S1 M/ @+ m或是就乾脆改程period=14也比較簡單
2 k0 U$ w9 C; [& T- Z, e: k  \
( f. P- L& F1 W; d# a* D; U; X( d3 ^不知大大有何理由一定要讓period=15不可?
3#
發表於 2013-11-16 15:06:17 | 只看該作者
抱歉!
" H8 e5 d- O. z7 k+ D1 r5 y  H我好像誤解了你的問題6 s, V; `6 Q2 y# a) ~7 ]+ q' s; }! e
真正原因應該是x/2的分母是整數,所以結果也會是個整數
4 B, N4 T: h, g! X! ~4 c剛跑個例子試過
& }7 \# r  U/ b; s也許應該要改成
  w6 R/ o4 A! oforever #(period/2.0) clk = ~clk;% d, p' e3 h$ |( g5 B! m# I

& t& F; h# f& m1 Y6 |2 i& @forever #(0.5*period) clk = ~clk;! p2 O: e' w; |1 J3 `  r  Z6 Y$ l

0 I6 Z1 s( c6 O5 u不過精準度應該調到100ps就可以了,不用10ps/ E5 ]2 j( S" n
也就是 `timescale 1ns/100ps
# C, A! k1 C: J8 Z0 F) A" H
! }; j: i  U0 X2 l7 h如果還是沒辦法解決,就去找看看怎麼定義半整數,或是就乾脆改成period/2是整數的格式
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-31 07:38 AM , Processed in 0.108513 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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