Chip123 科技應用創新平台

標題: verilog clock generator question [打印本頁]

作者: jyunwei    時間: 2013-10-29 04:14 PM
標題: verilog clock generator question
Hi
* y. G+ v) M# Z# u+ t  U, W2 k$ W! s. L0 C, [* i* _
My clock generator is as follow3 {: N; C! r5 g: b! n

( ]3 V3 L8 _1 Y4 X& x0 v" W`timescale 1ns/10ps
% N, n/ A" Y4 [, d$ S5 U
- n' ~) w0 b/ N4 O* p2 }, H4 _& C`define period 153 W+ K* K( c- U4 ]" r2 `4 i

% s6 n2 O3 X. X/ X- Vmodule test();/ {) N* b0 |0 \4 M: d9 t
reg clk;% o. l  |  r/ u6 p: p/ b

& a! f3 K. h  `( Sinitial begin
. W7 N1 i# T7 h5 B! k/ I0 _clk = 0;* p$ ~8 f" m% v2 m. q/ p) p
forever #(`period/2) clk = ~clk;
+ _5 x; _2 j- E6 send
# {- y) U0 O: I. y1 H- r0 s3 r  w! Q0 M- K
& N4 b3 ~0 B" F. F' l, w3 U4 y
But i check the waveform the clock period is always 14ns.
  F7 U. I  r+ ^$ C7 ^; F" j
. L4 l3 m. a, o! w; ^: t% \" c4 vCould anyone help me the question ?
* E# Q# U+ x& x. v. R  A/ _! k, F: F" `" P( ?- ^6 `  F
Thanks
. W6 s& c' U/ {& G2 s( G& s& a. R
  J- ~" R0 Y2 x# A2 O7 Jendmodule
作者: card_4_girt    時間: 2013-11-16 01:04 PM
本帖最後由 card_4_girt 於 2013-11-16 01:21 PM 編輯
( g* M5 @; U. V
# ], T( d0 J/ G, Vverilog好像不能這麼做4 X& f1 }3 a1 r5 r& B2 L
因為你的period = 153 N! ?  L5 M" S3 f* _% S, C
當使用period/2時,他也只能取最接近整數
. K" k4 k5 o: q所以就會造成你說的這個現象(period/2 = 7而不是7.5)1 t$ j6 n+ ], c% B
& I, }5 L2 w; o2 M- `# `1 |; b1 y
網路上是有人做過週期2N+1的波形6 m, L1 t' O# y- |9 E* S* ^
建議你先去爬文看看' v; ?) r1 X7 U, b2 L9 _
這種半週期N+1/2因為含有半整數1/2的部分,要事先做處理' I# k+ u9 S5 w: v+ N+ v/ l

$ P; e+ \4 z5 n  Y0 t3 j, F  p或是就乾脆改程period=14也比較簡單! E( @; v1 a4 b" e+ a3 B0 Y& \  Q9 d
, l- D) W0 `- |' m2 e# E* Z
不知大大有何理由一定要讓period=15不可?
作者: card_4_girt    時間: 2013-11-16 03:06 PM
抱歉!* [) U' X2 m+ X
我好像誤解了你的問題! p/ @0 m2 C* V# c) z3 ?3 e
真正原因應該是x/2的分母是整數,所以結果也會是個整數
. K) m; r' K  ]9 Q剛跑個例子試過1 j4 G4 o! X" R8 z" f
也許應該要改成) X' }% X+ ^) u! J7 g7 t
forever #(period/2.0) clk = ~clk;
. Y0 x. R1 P7 s# h1 \4 n- S2 \- ~
' B( U; ~+ D; }" cforever #(0.5*period) clk = ~clk;5 @- V* q' S. ?/ H- U- H
( A/ \  Y$ E9 A
不過精準度應該調到100ps就可以了,不用10ps% N4 j: d7 Y$ S
也就是 `timescale 1ns/100ps
9 K( g+ G2 x. }( l  y7 t
* E: Z2 m' `' ^' N5 x; b  o如果還是沒辦法解決,就去找看看怎麼定義半整數,或是就乾脆改成period/2是整數的格式




歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/) Powered by Discuz! X3.2