Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] verilog clock generator question

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-29 16:14:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Hi 7 i6 P: D# a3 Q

$ O' ^1 W0 I5 ~+ @My clock generator is as follow7 ^* a+ A! H$ K6 q% a) n- o

" y5 _, M! [1 H' X, J`timescale 1ns/10ps
/ x! Z7 u+ W5 e1 N2 ~1 q( ~3 [
`define period 15
' L6 Y$ e, D; w4 M) r# \9 ~& d1 m# v$ q7 M3 I
module test();
" L4 [3 `% I6 {7 ^  B3 \# K% @reg clk;( }/ a! u3 K  B" Q

' w2 A+ n- u/ j; ^initial begin/ L. M0 R8 i% I# ^4 k# k; l  K. j
clk = 0;
. b" g. p3 S4 q& i% dforever #(`period/2) clk = ~clk;, `  v0 Z6 m2 J* R
end. s& A+ N# a7 i# H7 U1 P- l7 i% w; t
/ Z- x4 ^( J" }& K+ f

/ g- m0 W. d1 r- ]But i check the waveform the clock period is always 14ns.5 L- {3 K! R1 H8 f4 q1 C

0 R1 x7 g4 v' L4 V$ ]" V' c: sCould anyone help me the question ?
, K0 H' W1 j3 N5 a2 M8 ~
; a8 M8 Z5 {2 v4 p3 sThanks, p8 Q- x9 t5 z7 P
* ~" R; h9 _4 z% q
endmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂3 踩 分享分享
2#
發表於 2013-11-16 13:04:32 | 只看該作者
本帖最後由 card_4_girt 於 2013-11-16 01:21 PM 編輯
" \5 O* O  a  ?6 c( F' w% h9 R) {& V6 P3 A
verilog好像不能這麼做' a7 ^4 h* {( j) ?
因為你的period = 150 S7 @, f) T3 a0 C8 e" g: @$ Q
當使用period/2時,他也只能取最接近整數: M# E+ ?& \( B% k- z3 f
所以就會造成你說的這個現象(period/2 = 7而不是7.5)
' r, @9 H9 S) J) I7 H9 x  M# [* c7 L" [3 x3 X& ]
網路上是有人做過週期2N+1的波形
5 Q+ @& d% f. f建議你先去爬文看看8 {0 {/ s# J$ z" [
這種半週期N+1/2因為含有半整數1/2的部分,要事先做處理
0 k) Q) t! G' \* x2 C1 c# ~5 C& S, K- Q
或是就乾脆改程period=14也比較簡單
$ c! o% ~8 Q, ^! B/ j
6 o5 G) r. N( \0 t5 k  z6 r* m不知大大有何理由一定要讓period=15不可?
3#
發表於 2013-11-16 15:06:17 | 只看該作者
抱歉!
& R) A) B1 L! X! {$ n我好像誤解了你的問題
6 E1 g, m. h1 m3 y  s$ Q+ l6 H1 }真正原因應該是x/2的分母是整數,所以結果也會是個整數
; {9 g" H# E8 T* {& U9 i+ \) g剛跑個例子試過
1 ]" j" D) Q8 f- k" x; b' {- S' R也許應該要改成
  p5 {( C9 `( L% e* `& k6 gforever #(period/2.0) clk = ~clk;8 Q, Y, |  X7 n1 I6 Q
) F0 L6 B4 _( U# o# i9 v, i/ [& G9 J
forever #(0.5*period) clk = ~clk;
7 i- H. E8 d# X( i+ X* D! O3 I
( x* b4 ~" g+ K- z% @5 h! k) N) b不過精準度應該調到100ps就可以了,不用10ps: ^0 {/ u2 x2 C4 M4 G
也就是 `timescale 1ns/100ps* r1 X  y* k* J' h9 Z
1 Q7 z! D- @6 E! g
如果還是沒辦法解決,就去找看看怎麼定義半整數,或是就乾脆改成period/2是整數的格式
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-29 03:06 PM , Processed in 0.105006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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