2014年7月30日 星期三

EXCEL VBA

  • 結合GOOGLE雲端試算表 這是甚麼? 應該研究一下
https://groups.google.com/forum/?hl=zh-TW#!topic/labor_excel_vba/wdjGXOWtBKo

  • 思考用google 的雲端表單 把資料輸入雲端excel

  •  google  也提供類似vba的 script 叫做, google script (gs),可以參考下面網誌
http://jamesjantw.blogspot.tw/2013/01/my-first-google-apps-script.html




<iframe src="https://docs.google.com/forms/d/1WvQZeqQ2ATOwcXfmZhwpZRlSOrSBIJ9bEQH2xBJB7uI/viewform?embedded=true" width="760" height="500" frameborder="0" marginheight="0" marginwidth="0">載入中…</iframe>


https://docs.google.com/spreadsheets/d/19lVThVkGKC9jTilFmD5BE7P_OXegMcipmf7vm77Pv0s/edit?usp=sharing


<iframe src="https://docs.google.com/forms/d/1WvQZeqQ2ATOwcXfmZhwpZRlSOrSBIJ9bEQH2xBJB7uI/viewform?embedded=true" width="760" height="500" frameborder="0" marginheight="0" marginwidth="0">載入中…</iframe>




2014年7月22日 星期二

latch timing study

multi cycle path study

setup/hold time

scan 研究

Synthesis 研究

Synthesis 研究

設計種類型號
cell type: 每個ip 可根據需求選擇不同cell type 的target lib,speed area power trade off
                  VT: rvt/lvt/hvt
                  gate length : 30/35/40
                  Poly pitch : 140
                 Track:7t/9t/12t
排除不使用的cell :  Don't use cells
環境變因:
corner: lib corner + rc corner
process Corners: Ff/Tt/Ss, 製造過程中的變異,造成特性的差別,反應在電流速度上,有快慢不同,各種速度的cell數量統計成常態分布
core voltage 操作mode: OD / NONOD
電壓範圍: core voltage +- 10%
溫度範圍: -40 0 25 125
pvt corner 組合
     WC : ss  / low voltage / high temp
     WCL: ss  / low voltage / low temp
OCV:
timing constraint:
      speed factor
      IO delay factor
      clock uncertainty
      clock transition
      data transition
      min freq setting:考慮滿足dft mode 的操作頻率
wire load model :  ex, zero WLM
process variation :
    同一種工法做出來的東西,由於製作差異及操作環境 的差異都會有不同程度的差別  
    合成會以setup time 最worst 情況當作合成電路的參考依據
    同一製程下的同種邏輯gate ,也會有不同type 的cell, 主要有速度,耗電,面積等不同需求來決定使用type
各種macro的lib的準備
 為何需要許多不同的cell lib? 主要是各種cell type +各種pvt corner 的組合
不同組合會有不同timing 特性

MMMC : multi mode muti corner

MMMC : multi mode muti corner

cell library timing model


 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
http://books.google.com.tw/books?id=N1Zn1RdqPVoC&pg=PA66&lpg=PA66&dq=recovery+removal+timing+check&source=bl&ots=RH_76MrKn8&sig=kfnY8IULVYVRPxASKLmo8Jsc0kg&hl=zh-TW&sa=X&ei=ulXLU6WAIoL78QWTqIHoCw&ved=0CCEQ6AEwAjgK

timing report 怎麼看?

timing check 主要是在check data 訊號與參考訊號(通常是clock)到達endpoint的delay,檢查兩訊號到達endpoint的delay時間關係是否符合電路需求。
timing report 包含start point and endpoint 資訊, 及兩個timing section,主要在描述data訊號與參考訊號的delay 的資訊。
 
data arrived time section 就是data 訊號從start point 到end point 的path  delay.
data required time section 就是參考訊號到達end point

在ceck maximum delay時, 須滿足下面需求  data arrived time < data required time。
在ceck minimum delay時, 須滿足下面需求  data arrived time > data required time。

不同的電路有不同的時間關係的需求。
sync flip-flop setup/hold
gated clock
async recovery/removal
latch timing

 































Removal/ recovery 解釋

移除(release) active async signal (reset) 的時間要求

Active async signal 會overide register 的output signal,disable clock latch data input. 當async signal 變成inactive 時,則data output 轉由clock latch input data決定.  以非同步reset舉例,非同步的reset active 時, register 會被非同步的reset signal overide 而進入reset state, 但是當reset signal  變成inactive 時, register 若要同步的離開被overide 的情況, 則轉態時間點需要滿足recovery/removal(setup/hold)的要求, 在clock edge  的一定範圍內,  inactive async signal 轉態不能發生.

 async reset 從active 轉成inactive時,為了保證這個轉成由同步clock來決定data的output是同步發生. clock 的edge 前後需要保持stable state. 轉態不要發生在clock edge的區間. 這段區間由recover/removal所定義
 
Recovery, inactive async 轉態在clock edge 前發生, 需要提前一個最小時間, 指flip-flop output 要恢復成由clock latch input clock. 所以clock edge 要成為真正active,active async 需要在clock edge 發生前一段時間就要轉成inactive async. data output 才會同步由clock latch data input. 這段時間就是recovery time. Inactive async state的準備時間。

Removal, inactive async 轉態在clock edge 後發生, 需要clock edge 一個最小時間之後才發生,是說在clock edge 還在處於active async 時,此時clock edge 是不會去latch input data, async sigal 需要保持一段stable區間,才允許active async 轉成inactive async. 簡單說 要移除async 的override 必須要在clock edge 發生之後一段時間才可以轉態,才不會在這個clock edge發生不確定的data狀態。Active async state 轉態前維持時間

2014年7月19日 星期六

在sta 階段需要check的事項

在sta 階段需要check的事項
  • Design QA check
     多餘的電路會影響area,routing resource,power等。
     dumy port, 不正常的latch path, constant clock, leaf with no clock, clock with no leaf. Case analysis conflict.
   也可以check 到是否有不正常的被tie值。
  • Constraint QA check
    完整的constraint 才能確保所有timing path都有被分析,且被正確的分析。
    所有registers 都有constraint.
    io 有constraint.
    case/ muticycle/false path等exception path 都合理.
    timing 條件設定正確:clock cycle / timing margin /  wire load model /  pvt 參數。
  • Timing analysis
    對所有corner 及所有種類的timing violation path 都進行check 是否合理。
  Sync path/ clock gated check / multi cycle path / io path. / reset path/ lib defined timing path.

timing constraint section 編輯

Clock period 
(clock false path )
Timing condition
Io delay setting
Case analysis
False path


normal function
scan
bist

2014年7月18日 星期五

什麼是timing check ?

什麼是timing check ? 到底在check 什麼?
@ 比較兩訊號到達某一地點(cell)所花時間的關係比較。不同電路對於相關聯的輸入訊號的時間順序及間隔有一定的要求。

@ 簡單的說,是在比較或確保2個訊號從發生後,經過2條路徑,從各別的起點算起到達終點時, 所花時間(path delay)的大小,順序,時間差等。

@  一個訊號是我們要確認的目標,另一個訊號當做比較的基準點。 某些情況這個需要check 的訊號到達終點的時間長度(timing delay) 需要落在一個預期的範圍(range)之內。 這個range 由最大最小值定義出來(max/min value)。

@max time 的意思是訊號要在最大值之前到達終點。min time 的意思是訊號到達終點的時間需要大於某個值,太早到達會產生問題。

@在不同電路對時間的range的要求有不同的原因。 max time 要求,一個比較直覺的例子是,在max time 這個時間點會去收取訊號值,如果該訊號在該時間點前沒有到達終點處,則收到到資料將不保證這個值是預期的。

@對min time 要求的一個理解是,訊號在min time 前到達會影響到該時間點的資料收取。而該訊號是安排在min time 之後才被收取的。早到就會造成資料的錯亂。

@這種timing check 有許多不同種類。 flip-flop base design , sync 電路的setup/hold time check。 gated clock 的timing check。 reset 的remove/Recovery check。 latch base design 的timing check。

generic primetime script

Multi mode Multi corner

library
read in design
timing constraint
    create clock
     timing margin/uncertainty
     IO delay
     set case analysis
     exception
          false path
          multiple cycle path
report

primetime 指令

primetime 指令
@利用primetime 指令來check design quality/constraint quality/timing anlalysis。
@有用的primetime 指令:

all_fanin
all_fanout
list_attributes
filter_collection
parse_proc_arguments
get_clock_network_objects
get_attribute
define_proc_attribute
report_constraint
report_timing
check_time