2022年7月21日 星期四

將 APR 後的 gds 檔和 memory 及 analog macro 的 gds 合併

做完 APR 以後,產出的 gds 檔中沒有 memory 和 analog macro 的 layout,需要將這些 macro 的 layout 進行合併,可使用以下指令。

calibredrv -a layout filemerge -smartdiff -rename -preserve merge_filterfile\
    -in top_apr.gds \
    -in memory.gds \
    -in analog_macro.gds \
    -out top_apr_merge.gds \
    -topcell top_apr

-smartdiff
由於在不同的 gds 中可能存在相同名稱的 cell,當合併時會造成某些 cell 被覆蓋掉,加上這個選項,就可以自動辨別 cell 的內容,當 cell 內容不同時會自動重新命名。

-in
定義要被合併的 gds 路徑與檔名。

-out
定義輸出的 gds 的路徑與檔名。

-topcell
指定 top cell 的名稱。

-preserve
在 -preserve 後面的 merge_filterfile 是一個檔案,其內容如下:

analog_macro.gds    analog_macro_module_name  -nohier
memory.gds             memory_module_name            -nohier

由於在原本 APR 後產生的 memory 和 analog macro 要用真實的 layout 換掉,因此在 merge_filter_file 中定義 analog_macro.gds 和 memory.gds 是合併後保留的。

-nohier 表示只有 analog_macro 的最上層 hierarchy 會被強制保留,其它內容還是會透過 smartdiff 進行比對,決定是否需要重新命名。如果沒有加上 -nohier,會造成 memory.gds 或 analog_macro.gds 中的 cell 可能把 top_apr.gds 裡面同名的 cell 覆蓋掉。


沒有留言:

張貼留言