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 follow
3 {: 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 15
3 W+ K* K( c- U4 ]" r2 `4 i
% s6 n2 O3 X. X/ X- V
module test();
/ {) N* b0 |0 \4 M: d9 t
reg clk;
% o. l | r/ u6 p: p/ b
& a! f3 K. h `( S
initial 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 s
end
# {- y) U0 O: I. y1 H- r
0 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 v
Could 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 J
endmodule
作者:
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, V
verilog好像不能這麼做
4 X& f1 }3 a1 r5 r& B2 L
因為你的period = 15
3 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; }" c
forever #(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