Chip123 科技應用創新平台

標題: 關於 合成 指令 clk_latence 的請益 [打印本頁]

作者: trwh    時間: 2009-6-10 07:41 PM
標題: 關於 合成 指令 clk_latence 的請益
因為我的電路需要多種clk" ^; T+ b6 h3 ^
clk比此之間有延遲的關係
! L8 Z- J. ^4 e. @5 u3 k例如 clk  clk1  clk2  clk30 }/ O3 d; e7 }% ^5 l' o
這些clk週期等相關設定都一樣的
. a# K+ S' K  R( K) K/ x7 ~( G8 o唯一不同的是  clk1 比 clk  延遲0.375ns9 |2 p( A9 f! b
            clk2 比 clk1 延遲0.375ns  (clk2比 clk 延遲0.75ns)! H2 d. c' W0 e4 q: V- s
            clk3 比 clk2 延遲0.375ns  (clk3比 clk 延遲1.125ns)
, o% N6 u* f6 a但是我只要一個clk port 接出io pad$ O0 t8 x2 ~& E* l: C' T0 Q4 F
也就是clk1 clk2 clk3 要由 clk產生3 D4 ]$ S* u- R1 [' J3 H- q
因此我在verilog 寫一個 clk generator如下
. n" s! R2 a, a
* j/ u8 ]4 n2 \* w  C. T0 r9 Bmodule clk_generator  (clk, clk1, clk2, clk3);  / o% a1 S$ X  ^8 V  o/ a3 Y  U1 X+ ]
  input clk ;
# ?3 x9 i2 ~, X, P! j  output clk1, clk2,  clk3 ;
4 D3 p" }3 U# t9 M  buf BUF_0(clk1,clk);
) }8 l3 i; a# @  w$ R  buf BUF_2(clk2,clk1);
: B0 {2 |3 N2 l$ }# D  buf BUF_3(clk3,clk2);% J, h: E" S% Y; p' T  ^4 Y  C
endmodule
* B4 W) @' D2 V7 v! t9 D9 H' S2 C, O9 I& Y
再我主要的module中引用如下4 D1 q9 Y1 t4 J, y; X7 @
module s4478( GND, VDD, clk,  G1, G2, G3, G4, G5,OUT1, OUT2, OUT3, OUT4, OUT5, error ); ; D# w$ Z3 b9 O& l& O
  input GND, VDD, clk, G1, G2, G3, G4, G5; 5 x% o' q0 j9 X, S. A( ?! ?; [
  output OUT1, OUT2, OUT3, OUT4, OUT5, error;
7 [. y. M0 w8 O: x  wire   clk1, clk2, clk3 ;& d: E$ I& O4 r: t. f9 t
./ S+ E: h, X1 ^& f& ]$ V
.
' P- Q; ~$ t" s$ Z: `7 \4 K1 mclk_generator clk_generator ( .clk(clk), .clk1(clk1), .clk2(clk2), .clk3(clk3) );  
; o2 e9 J+ |  ^.' a# q7 @% i, p: \0 D# m& r
.6 z4 d5 N7 `6 [4 U5 f2 O0 F7 P
end module
" v# y0 C8 B) K$ c7 J  }0 N6 l3 M: v& _
design vision 指令 clk部分描述如下
7 v8 [; K% _! v/ ?0 o/ K/ u- R  e* \" j: x
current_design $active_design
* a/ t, c3 s/ S/ }9 G2 y/ `% ]create_clock [get_ports clk] -period 4 -waveform {0 2}, _% o: i, h! a- S- n2 A0 b
set_clock_uncertainty 0.3 [get_ports clk]& A& d2 ?1 E$ l' G) ?& H& F* R  U0 z
set_clock_transition 0.3 [get_ports clk]
: }& y( e9 z; I2 |+ vset_fix_hold [get_clocks clk]
5 d1 C( p2 E9 B0 Mset_dont_touch_network [all_clocks]
- \, F$ X  V$ n* G  o# z5 c* iset_drive [drive_of "CCU90mt1_05V_FBB_0909/INVd1/zn"] [get_ports clk]3 L2 d2 Z/ P+ p9 [3 V1 y% M
create_generated_clock  -name clk1 -source clk -divide_by 1 [get_pins clk_generator/clk1]( W  U% x, Y' e2 C
set_clock_latency 0.375  [get_pins clk_generator/clk1]4 N* N; w+ `2 T2 ^$ H
create_generated_clock  -name clk2 -source clk -divide_by 1 [get_pins clk_generator/clk2]1 k; U8 p7 {! ]" r0 n
set_clock_latency 0.75  [get_pins clk_generator/clk2]( n. C* Q, d" E* L5 {. K
create_generated_clock  -name clk3 -source clk -divide_by 1 [get_pins clk_generator/clk3]  n2 L1 F- \1 Y5 H: g
set_clock_latency 1.125 [get_pins clk_generator/clk3]3 D& m# B9 z& d. @2 y5 P3 u2 \
; u" h6 h' [5 k6 k7 D
結果我的clk tree只有最原始的clk
$ c; c: E6 P$ \/ b, H5 gclk1 clk2 clk3 都沒長出來1 s" y9 J+ i1 l5 l4 W. R) m3 p- z
不知是那裡用錯了或遺漏了
4 }) @( M0 t& [: e, q7 I. d或是encounter clk沒設定好
6 V8 J( f* N7 t- K6 e9 g0 j9 _: h用了很久都用不好0 F! p1 p. p3 D2 K; k
只好請教各位
& H5 J& ]' y' i4 _% U  ?! r. E( q5 J萬分感謝
作者: masonchung    時間: 2009-6-11 09:59 PM
試一下" T  M) ~8 F2 [3 p( O2 ?3 N! `
set_clock_latency -source 0.375  [get_pins clk_generator/clk1]
. ]* Q7 j+ g3 zset_clock_latency -source 0.75  [get_pins clk_generator/clk2]; h* W& l& Z) S; p8 v8 c5 O. `
set_clock_latency -source 1.125  [get_pins clk_generator/clk3]8 v4 y# I- P/ `' G
0 b8 e0 w3 T- P: l+ V" d6 z
你的寫法是給下一級的constrain5 I- {9 b* z9 x7 j# v+ y# g4 R

  E- t) ]9 `$ l8 X; ^% H' ?有錯請指正




歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/) Powered by Discuz! X3.2