Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 關於 合成 指令 clk_latence 的請益

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-6-10 19:41:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
因為我的電路需要多種clk# F2 n" s& H8 R6 a. P
clk比此之間有延遲的關係4 L$ e. `. P$ i% v1 }
例如 clk  clk1  clk2  clk3: c0 Y% G% w! l& o+ g
這些clk週期等相關設定都一樣的
0 j4 A; @3 Z0 ~4 x唯一不同的是  clk1 比 clk  延遲0.375ns
0 y, x$ D# o, R- l9 c1 ^9 }* W            clk2 比 clk1 延遲0.375ns  (clk2比 clk 延遲0.75ns)) v6 G6 V6 f% n' q6 `, w5 U
            clk3 比 clk2 延遲0.375ns  (clk3比 clk 延遲1.125ns)
8 W* g% ~1 c1 W6 d& g0 M/ g但是我只要一個clk port 接出io pad
% W" ?/ t8 s# S4 F  Q+ e) F! z也就是clk1 clk2 clk3 要由 clk產生
! d: r% L/ N( K. J* B因此我在verilog 寫一個 clk generator如下
" O# \, s  n- f2 F2 p( w2 i
/ z: p& e: S: e( J/ vmodule clk_generator  (clk, clk1, clk2, clk3);  + E2 c% M8 V$ n7 A
  input clk ;
! M7 s. r$ V  Y% ]6 K( e3 Q2 G  output clk1, clk2,  clk3 ;
( [" k8 G. S4 i8 H  buf BUF_0(clk1,clk);
9 |7 n) ]9 [# K( q; K. U  buf BUF_2(clk2,clk1);
9 E* g3 v) [3 D4 E3 Z% J  buf BUF_3(clk3,clk2);
  \0 s6 E, ^" eendmodule' [$ q( b/ G% n2 }. Q

8 J- W4 M5 L8 B. M' C再我主要的module中引用如下+ ]. p" R& {4 H" w' g2 [6 C0 b+ d
module s4478( GND, VDD, clk,  G1, G2, G3, G4, G5,OUT1, OUT2, OUT3, OUT4, OUT5, error ); / m  T" W8 T5 g0 x0 B( E" D
  input GND, VDD, clk, G1, G2, G3, G4, G5; 3 @* @, A# S; t$ s! v- w. r* {! C
  output OUT1, OUT2, OUT3, OUT4, OUT5, error;& J; C5 j# w. a
  wire   clk1, clk2, clk3 ;9 W; {) L. e1 T0 K8 C# g' W8 |5 K. ?
.
& N% J2 _1 B. U' c* R5 H+ ~.
5 b' \0 W% L" l/ f$ yclk_generator clk_generator ( .clk(clk), .clk1(clk1), .clk2(clk2), .clk3(clk3) );  
6 f- S4 b8 ^! K7 W) z; ~.
: [) O6 q" u: _0 E7 f.
/ v8 b+ l" R; Xend module
: ]6 {- X4 c* F2 E
( @$ G& ?( a! H1 Mdesign vision 指令 clk部分描述如下
) ?1 b# `9 C8 Q9 C0 q
# V' b" Z) ^* X8 w7 `current_design $active_design + Z0 ^8 d, s# u; D% g) M, {: o( N
create_clock [get_ports clk] -period 4 -waveform {0 2}# s, F8 ^3 j: M
set_clock_uncertainty 0.3 [get_ports clk]: ~1 x' ^4 `4 t7 M8 Y( K  @
set_clock_transition 0.3 [get_ports clk]
# D8 Q1 F' k. N% z& n" Oset_fix_hold [get_clocks clk]
8 C7 k) _8 Z/ b/ E( Vset_dont_touch_network [all_clocks]0 f" }$ E6 p* i1 V
set_drive [drive_of "CCU90mt1_05V_FBB_0909/INVd1/zn"] [get_ports clk]
" S$ g) _$ V+ `) `5 screate_generated_clock  -name clk1 -source clk -divide_by 1 [get_pins clk_generator/clk1]
& D" I9 k4 Y% L/ U5 Wset_clock_latency 0.375  [get_pins clk_generator/clk1]! ?3 O" D) K) O* Y# E
create_generated_clock  -name clk2 -source clk -divide_by 1 [get_pins clk_generator/clk2]7 `2 H: z/ n$ s$ k; R
set_clock_latency 0.75  [get_pins clk_generator/clk2]
- ?# F4 n& e0 {* o+ [( t2 `create_generated_clock  -name clk3 -source clk -divide_by 1 [get_pins clk_generator/clk3]- C2 n1 H" F5 v3 a8 w/ [
set_clock_latency 1.125 [get_pins clk_generator/clk3]! v, h2 C2 Z/ \6 E+ E7 t
- T# }: [& K" G) {- o
結果我的clk tree只有最原始的clk
7 T4 \! [# ~' h: k: [clk1 clk2 clk3 都沒長出來
- h: }) W( s2 l( ^: F$ A+ S; Q4 n不知是那裡用錯了或遺漏了 & B1 |( V9 w  c9 |6 t7 z
或是encounter clk沒設定好: B! q! q3 R3 o; ]& c% Q
用了很久都用不好
# L! K  u6 o9 j4 e只好請教各位
" _% L9 F$ A* p5 u( Q4 {) y萬分感謝
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2009-6-11 21:59:32 | 只看該作者
試一下+ O5 k, |8 A6 G! r2 f
set_clock_latency -source 0.375  [get_pins clk_generator/clk1]0 h. @: S! C, k, ?
set_clock_latency -source 0.75  [get_pins clk_generator/clk2]
2 @6 V7 h$ w6 K$ y& bset_clock_latency -source 1.125  [get_pins clk_generator/clk3]( e/ Z0 o1 `0 H+ E5 ~( U' ^& H

/ C6 v/ E+ h4 r你的寫法是給下一級的constrain
; R1 }" q; D5 J# c9 [
, B( E2 d# T, m( \% n3 `有錯請指正
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-3 09:48 PM , Processed in 0.101006 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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