Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] verilog clock generator question

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-29 16:14:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Hi
9 Y( i+ v$ W5 v
% [" g/ i$ P2 n! IMy clock generator is as follow
2 r' I0 a: j1 i- v5 r3 f+ F$ E
1 Q2 ^( {+ D  ~) L3 n0 H`timescale 1ns/10ps
- q, v1 ]: \) l2 a" y' E. X$ e$ J3 c# P- D
`define period 15
" N  [! C& B; N, S
$ z! I6 T, a/ r( u) J& B) }2 t0 k- Hmodule test();; v; }' Q9 j8 c4 {2 [, v9 z9 S: N
reg clk;1 X8 [8 A1 s+ i. B) a; k
( g6 k2 ?6 s' w5 J( R0 s4 h
initial begin/ Q" }+ R, O8 i
clk = 0;
! z5 }4 Y6 v8 Rforever #(`period/2) clk = ~clk;4 B* c( Y; u- J  T- h& J& k+ H
end
5 Y2 Y& w5 I. Z0 T  {5 V# o0 v+ X5 l3 f4 g0 C; M4 k( h
" M' l5 x. y0 ]! I, u
But i check the waveform the clock period is always 14ns.% E5 m+ t$ r3 Q* B

5 x8 ~( O8 Y7 eCould anyone help me the question ?
' p' t! l( F1 O* R
/ p( C6 R; |" ~/ }' b1 QThanks5 V7 S, C7 ]4 b1 B. z9 _! i9 C

8 v2 N! o6 j# N0 `% n. E5 |% }endmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂3 踩 分享分享
2#
發表於 2013-11-16 13:04:32 | 只看該作者
本帖最後由 card_4_girt 於 2013-11-16 01:21 PM 編輯
6 v5 q$ \. i! t$ f7 o4 w7 z# R4 l! y) U" _$ V) r% O
verilog好像不能這麼做# z! i& i, ~4 C2 |& |! q% [7 E
因為你的period = 15) C+ S) {& L8 R( d+ Y1 H
當使用period/2時,他也只能取最接近整數
0 @, y$ `3 I# A: {. g" s所以就會造成你說的這個現象(period/2 = 7而不是7.5)! h  {4 a0 ^6 b/ z! @
# g' N' i$ W! b% Y/ k2 P
網路上是有人做過週期2N+1的波形
* J( I% e: _/ q$ O8 E3 v建議你先去爬文看看# S0 T6 `3 e2 R
這種半週期N+1/2因為含有半整數1/2的部分,要事先做處理8 d0 S  ?% Z: q1 o6 G, h) ]

7 m6 h. C* y1 g& A' _; p或是就乾脆改程period=14也比較簡單3 Q( y  m2 s# s- k
" W( w+ S. a+ f. k; T
不知大大有何理由一定要讓period=15不可?
3#
發表於 2013-11-16 15:06:17 | 只看該作者
抱歉!# ?( b$ u$ R7 I
我好像誤解了你的問題4 Y1 h5 y1 W- f0 S, O  J  }5 o. m" V
真正原因應該是x/2的分母是整數,所以結果也會是個整數
3 D; \- `  C6 X) O) X$ }剛跑個例子試過
2 Z! O+ c- l1 F6 U' h* D6 |也許應該要改成( \  D4 [, p- b; I. o8 G
forever #(period/2.0) clk = ~clk;8 e3 w8 {' i5 O3 C% T: G4 Q; Z3 }
9 {: j0 ^+ c+ k; K4 h) Q% ?/ E3 s7 d) B
forever #(0.5*period) clk = ~clk;# k7 {; ?  |2 D! t& p' i
; @8 Z+ z# Z8 z9 H! u# X
不過精準度應該調到100ps就可以了,不用10ps
/ R% `5 D" E5 ^( v+ S  t也就是 `timescale 1ns/100ps8 u  b6 U0 L* _% c( V" d7 c: n/ ~
8 ?5 @' Q9 N) U; D+ b1 p* u
如果還是沒辦法解決,就去找看看怎麼定義半整數,或是就乾脆改成period/2是整數的格式
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-16 04:40 AM , Processed in 0.105014 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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