Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] verilog clock generator question

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-29 16:14:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Hi 6 G: z" {' A. V; @) x$ Y$ B3 O
8 X# ~0 d( M2 y8 i
My clock generator is as follow! ~* L( s1 O% x" Y' h2 t: X* L) Z
* a5 m6 A- S$ M( a: ]/ g
`timescale 1ns/10ps6 ]  \! ^( U" U: L

8 _, U' a+ b% W`define period 15. R/ N+ Y" G2 n" a) n, l: U7 n7 l) z
, O/ n% Q, y6 x7 v9 L* T" L
module test();( E! }; M7 i* G2 n& W4 A
reg clk;
0 N' ?# m* d9 f0 j! ~
5 w# \6 T: a9 H; p( J( ]! n" _initial begin
; c, c% o* o( b0 \9 M( }3 ?clk = 0;' w& ~% |" v, @
forever #(`period/2) clk = ~clk;
- {0 F3 ~4 y) |$ P6 Zend* B8 s/ w9 A9 I) v+ v& P
0 \% }7 U0 v) n5 z5 e! \8 E3 a4 W9 g

3 u9 a7 I% L' j8 ^$ vBut i check the waveform the clock period is always 14ns.
$ N: s2 T( c/ C/ M: q% F. f' i" K+ K1 Z
Could anyone help me the question ?
: X  o- z6 F) q$ j% K& V
# B# {! D( K: I6 \# g8 T/ H1 U2 rThanks
$ ?0 `9 y3 [+ h0 U1 B( w9 F# M* n8 Y2 Y. E. [5 r6 K0 r
endmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂3 踩 分享分享
2#
發表於 2013-11-16 13:04:32 | 只看該作者
本帖最後由 card_4_girt 於 2013-11-16 01:21 PM 編輯 5 @. r) B7 x: B1 V( d
. Q; e% Q! p/ W$ @$ ^
verilog好像不能這麼做( R& Q2 B" B6 q, F5 h9 [4 y  `
因為你的period = 15
7 E* F6 S$ ]; ^$ o7 ]" m; ^6 q當使用period/2時,他也只能取最接近整數
& S7 E8 V0 g; w1 F# v2 p, i; T所以就會造成你說的這個現象(period/2 = 7而不是7.5)! w# Q; o- ]6 q/ J( F3 _+ t3 e

' n1 k) F7 S! U: L0 r& `' b& m, l# x9 C網路上是有人做過週期2N+1的波形# `/ R) O% F7 w) i; q
建議你先去爬文看看: q' j1 g/ n. S+ `
這種半週期N+1/2因為含有半整數1/2的部分,要事先做處理/ x4 G( `2 p. M# w

; t/ W/ s1 F1 u或是就乾脆改程period=14也比較簡單) @& f% e/ V6 R4 o* a, s, H% L% K$ V
6 [1 e5 V3 }5 \! w  V/ L+ g
不知大大有何理由一定要讓period=15不可?
3#
發表於 2013-11-16 15:06:17 | 只看該作者
抱歉!  z1 S. j8 ]9 y
我好像誤解了你的問題
' z% C# y6 E# j' u$ O6 X真正原因應該是x/2的分母是整數,所以結果也會是個整數
$ `) p2 }) f& w8 i' i# u剛跑個例子試過
& t3 s5 O3 c$ n  U# {也許應該要改成, ?- L2 m. w9 x4 K# D/ l
forever #(period/2.0) clk = ~clk;) }* F+ g7 p0 _2 t8 |' h7 d
& i  ], R+ F$ v- |
forever #(0.5*period) clk = ~clk;
. w  {0 f* {- c% Q4 U  X! B- N* X; {# D1 O& N9 w$ D
不過精準度應該調到100ps就可以了,不用10ps
: Z6 @; H9 K- r$ X8 ]0 d6 ^也就是 `timescale 1ns/100ps3 Z* t$ X" V5 f

+ e. H- L) g9 Z' l如果還是沒辦法解決,就去找看看怎麼定義半整數,或是就乾脆改成period/2是整數的格式
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-3 04:26 PM , Processed in 0.100005 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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