Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 13264|回復: 7

[問題求助] verilog clock generator question

  [複製鏈接]
發表於 2013-10-29 16:14:19 | 顯示全部樓層 |閱讀模式
Hi 4 Z1 s1 W7 |$ h0 l5 ^

, e) _, A/ x: n* U! l& b2 \" dMy clock generator is as follow
' D; Q! f# t6 {* ^# [+ N) i+ y2 q) t9 Q; W( w( z4 P( V
`timescale 1ns/10ps
  w' |$ H  G- L+ C+ O
2 O1 N8 r- w9 S, p3 C# r' V& z`define period 15
$ W8 c* {. o  u  M
+ f: i, }. o  Y2 omodule test();
7 T' {! q& e* p# i* a. [1 A+ wreg clk;# @* K  U0 Z, D5 s9 ]/ m$ I) g

( E3 E2 u& [5 {8 U1 U0 P$ D2 y3 `initial begin% K) A2 p- c. F& C- G1 v
clk = 0;
' x; o7 ?5 m" S+ |. Bforever #(`period/2) clk = ~clk;
" l5 \, g* X; _* Qend
1 S; `3 a6 o( p7 R+ A& u0 F+ Y  }# ^/ y* S/ e

$ B. L; M! x* h  ]5 MBut i check the waveform the clock period is always 14ns.
# j4 x$ D! a! {' W. P" I4 w: E* j) s; w+ w! r
Could anyone help me the question ?
6 A9 r3 A) L  d; V- o! F+ V
* Z8 G% f1 Y* B$ KThanks
  E% p: |( b: S$ c) w* G+ x! A; p$ a" R, U& f& B+ `
endmodule
發表於 2013-11-16 13:04:32 | 顯示全部樓層
本帖最後由 card_4_girt 於 2013-11-16 01:21 PM 編輯 : M  t- R! [$ K( O( t' B# M% w

* B1 [! i& ^* R3 a) c0 j5 averilog好像不能這麼做0 H8 z  I/ k" q
因為你的period = 15
8 r  |3 Z. o  `) T當使用period/2時,他也只能取最接近整數' F- ^- G+ [! ~) Z
所以就會造成你說的這個現象(period/2 = 7而不是7.5)
1 F( X4 [' a5 c; g. m
% Q5 x1 F& G9 A3 t5 N2 _網路上是有人做過週期2N+1的波形
$ I3 v6 e2 O  o建議你先去爬文看看1 j# G3 d1 [; J- M8 ^
這種半週期N+1/2因為含有半整數1/2的部分,要事先做處理
1 Q1 D" [; E% Q2 i, {- r8 E; a, b: E( L! A6 ?: H
或是就乾脆改程period=14也比較簡單5 X& b! y/ d$ L
: _. M5 h2 p6 K2 u  p% F
不知大大有何理由一定要讓period=15不可?
發表於 2013-11-16 15:06:17 | 顯示全部樓層
抱歉!
) E: h" F: f0 f! X5 L+ Q2 i4 B  u我好像誤解了你的問題
: d+ p9 X3 E& g) f; J真正原因應該是x/2的分母是整數,所以結果也會是個整數
, |& H9 F& l2 ]8 N) K0 u4 G剛跑個例子試過$ z0 }$ M+ B9 y, \5 B  c
也許應該要改成
) f9 B; X5 J% v* Mforever #(period/2.0) clk = ~clk;; c5 ]3 H! K& Q4 Z% w5 E6 _

. c, Y! ?  S5 L* u- mforever #(0.5*period) clk = ~clk;% G7 ^/ `1 Z) }) @
$ t: w' O3 m9 k5 h% x
不過精準度應該調到100ps就可以了,不用10ps( E7 [6 \3 S% g7 @& d, @& p
也就是 `timescale 1ns/100ps
5 `, z7 ^3 ^' }' C( H9 a7 R$ j+ l/ P( g9 N; t. g# v' D
如果還是沒辦法解決,就去找看看怎麼定義半整數,或是就乾脆改成period/2是整數的格式
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-3-29 11:46 PM , Processed in 0.117006 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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