Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] verilog clock generator question

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-29 16:14:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Hi 2 }3 `4 E- ^* {" G/ c

) {& C7 e/ V6 T4 ~My clock generator is as follow/ j/ v; N4 U9 O! `% Y$ x3 C" U1 w

9 O& h; c% i" m  o`timescale 1ns/10ps) l0 r/ v. P/ C# F* G- I' W: {- I

5 L: A' K" n$ g2 C7 W`define period 15* ?( y& ^0 ^, O+ K6 ~! i
/ ]) ]+ x' v  i* d: ^: f8 g- ^& G
module test();: s: D# w; b' ^0 q# J* P) n! S
reg clk;; m1 m: u# I  P" j7 e
6 V0 d% ]5 o. ^% z# U1 X7 B
initial begin2 G8 t& \% R6 f% T) s5 G. M$ h( u6 M
clk = 0;
3 H3 }9 j8 n% U) ~* H& b+ oforever #(`period/2) clk = ~clk;
0 E0 e. D; f0 p: N/ Rend
; k$ Z2 e6 r/ h% U. q4 v$ T4 z
1 G0 d6 F) W# `0 j- g
7 x& q/ n) N6 i4 vBut i check the waveform the clock period is always 14ns.
" k1 d. o* Y4 l
0 B3 d# ~2 l1 `9 O! wCould anyone help me the question ?
/ v. d  p3 ]" c" `( T9 q0 h6 l2 b: p; M0 Q
Thanks% F( W& c% U0 y3 q0 \2 g" y

' _: i1 Y% C4 n. i3 @# H0 L+ W. uendmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂3 踩 分享分享
2#
發表於 2013-11-16 13:04:32 | 只看該作者
本帖最後由 card_4_girt 於 2013-11-16 01:21 PM 編輯 % ?) x0 D3 [( v$ m7 {8 I
9 d  L) t5 Q" z1 l8 I* t
verilog好像不能這麼做
, ]+ q4 r6 {; d6 O  @4 u% ?因為你的period = 15
, g& v' Q+ H" u: g; l, {# L2 I當使用period/2時,他也只能取最接近整數7 {; m0 w, Y# T8 l0 q+ e+ o
所以就會造成你說的這個現象(period/2 = 7而不是7.5)# T( E; s7 B2 ?

/ O- Q3 }  l' J5 k) m網路上是有人做過週期2N+1的波形# l9 u3 h% X! ?% h9 W: J. Y# `4 P
建議你先去爬文看看: M" o6 B0 m/ N- o0 f8 f
這種半週期N+1/2因為含有半整數1/2的部分,要事先做處理  m' N3 b: ~: q  f; r. k, E# g6 ~
- G; E8 u9 d1 `( i; \: @- F6 z
或是就乾脆改程period=14也比較簡單
( ]! C8 S8 M: `3 m  `- ]0 n6 C( }# Z' Z) l4 n
不知大大有何理由一定要讓period=15不可?
3#
發表於 2013-11-16 15:06:17 | 只看該作者
抱歉!9 M' S: O) x' X( @1 S
我好像誤解了你的問題5 m8 ]- m  J6 u0 F+ w4 X
真正原因應該是x/2的分母是整數,所以結果也會是個整數+ E6 @2 H2 m4 q: Q% t( _8 c! W
剛跑個例子試過" i) W5 u3 ]- y
也許應該要改成
5 I/ w% {( G& J5 a* ]6 U2 W/ pforever #(period/2.0) clk = ~clk;
2 |9 g( B3 k- `% U- S2 c
' A- A% f0 d/ R* _) q5 }: C2 Cforever #(0.5*period) clk = ~clk;
( U! n. D0 f" B4 \' `% c1 V7 E1 ?
( }: _! [# |6 V1 o8 |) K" _* `不過精準度應該調到100ps就可以了,不用10ps
, `9 u* J9 c7 `$ h8 j2 ~也就是 `timescale 1ns/100ps
3 ~, S% q  _4 m5 v# c4 x; ]  K1 K) ]$ ]' u
如果還是沒辦法解決,就去找看看怎麼定義半整數,或是就乾脆改成period/2是整數的格式
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-29 06:35 AM , Processed in 0.110007 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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