Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] verilog clock generator question

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-29 16:14:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Hi & H0 M" S2 y. y' ?5 C
  r4 }6 k6 R7 _# ]% L2 B0 k
My clock generator is as follow/ y5 ~( K! P; b) ]5 D

$ k) H+ H6 `0 l1 E- a2 \3 T`timescale 1ns/10ps3 ]6 T3 i; l1 ]6 I, q3 I

" ~' R- p" [0 g. s`define period 15
% E# S- a2 Z' |: \, X8 t& B7 L5 G& X# X8 a9 \" l( @. u
module test();
# J: v% D' Q' l' hreg clk;
) X/ D- U' e7 a/ V
7 P/ {2 b5 Q5 ]! D% Q  binitial begin
3 C* x! [( s: \, W* D, k: Eclk = 0;
4 m4 D3 k- ?2 Cforever #(`period/2) clk = ~clk;
7 Z9 l6 m! A" S. r1 H) rend" d9 U/ C2 d6 u, \4 r; K( i/ |

6 T+ [  P- _2 D0 Q: Q6 R( q
: z% s" M. u5 vBut i check the waveform the clock period is always 14ns.
# {4 I: m- x% Q8 ]% d* ]" S- q5 x( c' x; r% H
Could anyone help me the question ?% l# q' }: D% O/ _

' T" z& M. N2 K6 P% H+ O5 |1 C& KThanks( B  l: A7 |5 E
1 @7 M* C. w' g% G
endmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂3 踩 分享分享
2#
發表於 2013-11-16 13:04:32 | 只看該作者
本帖最後由 card_4_girt 於 2013-11-16 01:21 PM 編輯
! `( S) M1 g5 q' X! t& Q1 g$ ~8 J* l2 m7 q: E0 F6 s( X+ A: H
verilog好像不能這麼做$ p. t2 _; p, j$ }
因為你的period = 15
2 {7 y4 l& `7 N- D8 A' _當使用period/2時,他也只能取最接近整數
7 j' c% T9 K! H$ j6 B6 B) I所以就會造成你說的這個現象(period/2 = 7而不是7.5)5 G! ?7 h. b4 T  u
+ w" [+ G& m, u9 C7 l) F' t7 d
網路上是有人做過週期2N+1的波形
- j8 R/ j1 {" T6 D9 K建議你先去爬文看看/ ~. Q2 }  i% w4 y# }1 e: K1 x
這種半週期N+1/2因為含有半整數1/2的部分,要事先做處理
: }$ i5 d3 M" ^$ z5 E0 v% ~$ N/ j
4 v1 }" `9 v8 v% s$ B+ Q9 c. X& f- T, h或是就乾脆改程period=14也比較簡單
2 }. @/ Z6 L  C9 |* y. a/ v: @$ U8 l
不知大大有何理由一定要讓period=15不可?
3#
發表於 2013-11-16 15:06:17 | 只看該作者
抱歉!; {& m, ~, K; Z; T4 h
我好像誤解了你的問題
1 O: a5 m, Y3 P# `) F- k+ P- Y& y真正原因應該是x/2的分母是整數,所以結果也會是個整數
  M% b+ ^5 i1 ?% i/ I9 Z4 L剛跑個例子試過5 v0 l) I& D5 ?8 B/ C! E/ K/ b
也許應該要改成7 a$ k# }; X  d/ ]6 |! Q3 b$ `
forever #(period/2.0) clk = ~clk;
/ l8 W! S) l% a: u2 S  Q2 q. o8 f1 |: N
forever #(0.5*period) clk = ~clk;
1 b1 i* F6 T8 q' {  v+ H' Q) O/ d; |8 K9 x/ g
不過精準度應該調到100ps就可以了,不用10ps! i+ J* ~: r; e- n5 ~, n
也就是 `timescale 1ns/100ps' F2 ]( O- i' S3 L# L1 J
8 F9 G: V  W# y! k
如果還是沒辦法解決,就去找看看怎麼定義半整數,或是就乾脆改成period/2是整數的格式
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-29 10:20 AM , Processed in 0.101006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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