Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] verilog clock generator question

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-29 16:14:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Hi
' o2 ^, h5 O0 K- j
) f1 N  o8 e8 |- ]$ ?My clock generator is as follow2 w8 Z% L9 {$ G  r* y: _
9 M' H9 O% V' D0 \. Y$ B+ T
`timescale 1ns/10ps
$ r/ n8 e! o# r7 `8 Z
8 b0 f% E( ?% d$ g2 z8 r% ``define period 15
. }2 J8 V: F& `% D! R3 @' I9 r2 n! {0 F8 ^0 j
module test();
% z  P4 x. X  ~* h  Xreg clk;7 T5 p8 t3 T2 B$ Z: G. z: S4 e

! E0 C7 ]1 Q3 ^$ pinitial begin) ~9 X1 v! g- ~5 L: ?
clk = 0;- N1 R5 @* \! ~6 k6 A9 _7 K
forever #(`period/2) clk = ~clk;5 m* y1 e0 p8 N( m) t; N  U1 b1 @
end( W* e, J4 e: p( A

# P: b" {1 D" z3 ~
3 V- ~) ], z  X! Y! @3 w0 NBut i check the waveform the clock period is always 14ns.
0 I! e+ c% @3 E+ ]. O5 ^" T1 i4 @; r0 Q# [" U" p+ Y0 [
Could anyone help me the question ?6 o, ~* R4 {) N% z

% ^* S; _6 q, R, y' F4 pThanks
9 f) d) E6 r- i1 Z' g  Y5 h, `4 T  t, N+ S9 z4 A3 {# F
endmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂3 踩 分享分享
2#
發表於 2013-11-16 13:04:32 | 只看該作者
本帖最後由 card_4_girt 於 2013-11-16 01:21 PM 編輯 * G3 b: M$ b7 `' H
7 c0 W; ]" \, Z& R$ D4 K/ [. P
verilog好像不能這麼做# c: U# ?; g1 S" L4 S+ f" B
因為你的period = 15  Q6 ^# V* g4 Z9 a) i9 s1 Y/ s' E
當使用period/2時,他也只能取最接近整數
( p4 S8 X0 ~$ @! ^! ~1 l( c. [% U所以就會造成你說的這個現象(period/2 = 7而不是7.5)
& |8 k3 Q% ~% T# o3 [. p  k: x1 l2 Q/ ]9 ?! L0 Y# S4 [
網路上是有人做過週期2N+1的波形/ d* p" g! n9 i8 ~) [) k3 {3 [; G( o7 u
建議你先去爬文看看/ o  m' ~/ I5 A/ X8 W- _$ m& |
這種半週期N+1/2因為含有半整數1/2的部分,要事先做處理
" g! b$ H6 Y" R% A" f9 ?% d1 o7 ~+ Y. z+ ^) v6 D" o
或是就乾脆改程period=14也比較簡單
% K% ?* x  i9 I/ t6 V3 y3 T4 i. w* v2 d+ {
不知大大有何理由一定要讓period=15不可?
3#
發表於 2013-11-16 15:06:17 | 只看該作者
抱歉!6 ^7 H* E1 K7 a$ I6 ]
我好像誤解了你的問題/ W$ B/ T( F+ l7 }' d6 L8 p. N2 T
真正原因應該是x/2的分母是整數,所以結果也會是個整數
( O: C- v# S/ V7 Y7 ]2 t+ H3 J5 T剛跑個例子試過
- D2 |. Z7 s1 k也許應該要改成
% ?: r  S6 X5 h+ @! E; jforever #(period/2.0) clk = ~clk;
4 C9 P+ V! T( i8 u, t
9 G: t+ n! A# D1 q* `# a+ k5 q7 qforever #(0.5*period) clk = ~clk;( ?! ~' x" V9 f7 G; k/ t$ V. @4 h& g
% G6 k0 A8 G3 ?0 i8 ?0 g5 {; L
不過精準度應該調到100ps就可以了,不用10ps
! G% U/ r8 z7 o5 Q9 F9 a. k, E7 f也就是 `timescale 1ns/100ps
7 l& y) }% h* T. K8 `2 J- y7 V, i+ [& w/ p
如果還是沒辦法解決,就去找看看怎麼定義半整數,或是就乾脆改成period/2是整數的格式
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-3 02:12 PM , Processed in 0.115014 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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