Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] verilog clock generator question

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-29 16:14:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Hi
5 O3 r/ d( _0 q" a& ^5 P6 O
* N" t% l; ?8 y3 iMy clock generator is as follow
" o; _6 n; x  b1 h3 ]" b& M/ H4 Z* ^) u3 X
`timescale 1ns/10ps" E( ^& M( H+ \. i) j( n
( Q% V7 `8 I: u
`define period 15
; z0 {" K  i3 f0 D% h, ]( q, Q7 V* P
module test();
, q, C( l# C/ n4 t5 breg clk;
5 v6 w2 a5 Q$ Q# y5 E) y
  P& l0 g  W8 g' linitial begin# q6 x! `. g/ m1 Z9 _  R
clk = 0;% e; Z& j5 H5 a# v  {
forever #(`period/2) clk = ~clk;
5 ^5 k/ Y+ x$ J% Nend
8 F/ F: p# U0 R$ a& {0 ]  S0 A  |/ U; T+ W) e3 ^

/ t* O$ Z$ f% d% i) y# ?) ZBut i check the waveform the clock period is always 14ns.
8 @+ R$ \0 ?( M8 ^; \2 c. i8 {6 h+ c: O) O! M  W
Could anyone help me the question ?
) X) ?" c& v6 x: X/ n; [
* G/ T) Q9 S7 ^" D$ hThanks
6 K& u0 B  e7 d7 `1 v) |8 b& A( g) V: x
endmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂3 踩 分享分享
2#
發表於 2013-11-16 13:04:32 | 只看該作者
本帖最後由 card_4_girt 於 2013-11-16 01:21 PM 編輯
- w8 N) A0 N+ Q- A0 i
2 o* S$ k" n$ ^' g% R6 kverilog好像不能這麼做$ O# j7 |: b6 ]- d% {5 V
因為你的period = 15, N' Z5 F: I: T' l
當使用period/2時,他也只能取最接近整數4 E2 |6 N+ N* q) T/ [
所以就會造成你說的這個現象(period/2 = 7而不是7.5); U9 E/ R4 z- i& c3 w  ]
, A  b& ^( D# _" \" n6 y3 ~
網路上是有人做過週期2N+1的波形
4 j8 ~4 o' b4 H" \. O4 f$ i: n- F建議你先去爬文看看; `  }# V) W! d
這種半週期N+1/2因為含有半整數1/2的部分,要事先做處理
% L, @& J% {$ ^, R' s2 `! m# u+ t
# o! M) y( A2 w5 D; ?3 V8 g" s* d或是就乾脆改程period=14也比較簡單
6 w4 X( Y& F/ @+ J2 s/ ?7 P3 _2 t! b5 q- C
不知大大有何理由一定要讓period=15不可?
3#
發表於 2013-11-16 15:06:17 | 只看該作者
抱歉!
1 i, o3 ^/ Y) K! e( O我好像誤解了你的問題! B  p0 V* M" r9 u6 c) r
真正原因應該是x/2的分母是整數,所以結果也會是個整數
8 L& b: z: \% g剛跑個例子試過
$ E5 B+ E3 x- ]2 v. U( H也許應該要改成
4 g6 ~; _, ~2 t8 T! b  Wforever #(period/2.0) clk = ~clk;! p+ O/ v/ ?* p. U

: o" Z; z8 Y0 P7 P9 Nforever #(0.5*period) clk = ~clk;
- x; J+ Q8 Y. F7 s1 \
9 L; x9 o" i4 N1 U1 @# m# f# {+ N不過精準度應該調到100ps就可以了,不用10ps
1 Z9 @9 t% Z8 D5 V; }( f8 A/ o4 l4 m4 c也就是 `timescale 1ns/100ps; b: B+ h- ]7 e: n8 a% ^; D4 A' c

+ i- m. \5 A" N+ ^! \1 E如果還是沒辦法解決,就去找看看怎麼定義半整數,或是就乾脆改成period/2是整數的格式
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-20 05:06 AM , Processed in 0.112015 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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