[問題] 電路合成及APR 含SRAM(5/31問題更新)

看板Electronics作者 (豆)時間10年前 (2015/05/28 13:45), 10年前編輯推噓3(3047)
留言50則, 4人參與, 最新討論串1/2 (看更多)
5/31更新 目前經過幾位版友的回覆之後,部分問題已經獲得解決。現在依然遇到的最大問題是在 floorplan的階段將sram及其他cell擺入之後,使用report timing去check wns等資訊時, 會出現0和N/A的結果,看起來像是沒有吃到clk。在我去觀察接線的時候,發現clk pad是 接到一個sram output buffer的output,不知道有沒有版友知道為什麼會發生這樣的情形 呢? ------------------------------------------------------------------------------ 各位版友好,小弟最近在做電路的合成及APR,主要電路就只是BIST接上SRAM 大致上的流程都清楚,但是之前做的電路中都沒有包含SRAM的部分 所以這次是第一次做有memory在內的電路,我看到只需要將memory compiler產生出的 lib轉成db並且在一開始連同製程db一起讀入design compiler即可 目前我將top module(包含我的電路以及與sram module的接線)讀進dc中 不知道為什麼我的電路I/O總共只有18個,但是在dc的block diagram中卻跑出port 19 進入下一層的電路中查看後,發現是一個完全懸空的port(有前輩跟我說這是dc的bug) 請問有沒有可能是哪個部分沒寫好產生的問題,或真的是dc的bug呢? 另外我的sram有3bit的EMA控制線,從0~7分別會有不同的access time(0是min 7是max) 但事實上EMA=0~3的access time值才是正常的,4~7的時候access time=999ns 所以導致我合成後的電路slack都會是-99X,目前是先使用set_case_analysis的指令 將EMA的訊號設為011去分析,不知道有沒有其他辦法可以讓dc預設分析的case就是EMA=3 ------------------------------------------------------------------------------ APR的部分我是使用SOCE,拿上述合成後的電路來操作時,開始Import都沒有太大的問題 但是在進行floorplan時,ratio和utilization的值設為1.6和0.8 apply之後會變成1.0和0.0X而已,怎麼更改都會停在這個範圍左右 接著嘗試直接用auto floorplan將sram的hard macro擺入時,tool似乎是認為我的電路裡 並沒有SRAM這個module,所以沒有擺入任何的hard macro,請問這有可能是什麼問題呢? APR時使用的CHIP.v是將合成後的電路外面再包上一層接了pad 也就是說我在APR中電路的hierarchy是 CHIP--top--BIST | |-SRAM 不知道有可能是什麼因素導致tool認為我的電路並沒有SRAM呢? P.S.因為是BIST接上SRAM電路,所以SRAM吃到的clock是有經過一個MUX選擇 ------------------------------------------------------------------------------ 這陣子做過許多嘗試,只將BIST部分拿去合成,之後再使用top將BIST和SRAM相接,最後 在包一層CHIP來接pad 這個做法在APR時可以將SRAM的macro擺入,但是將standardcell也擺入後去report timing 從結果顯示看來是沒有吃到clock,所有數值都是0和N/A,但是不擺放SRAM只擺cell的時候 可以report出那些參數的值,所以我才認為是SRAM的問題,導致後面一連串的錯誤 問題敘述有點繁複,但為了正確說明我的情況,還請大家見諒並請知道可能的問題點的前 輩不吝指教,先謝謝耐心看完的前輩們。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.213.128 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1432791910.A.7CE.html

05/28 20:27, , 1F
不知道有沒有版友可以幫忙解答我的問題呢? 謝謝!
05/28 20:27, 1F

05/28 22:02, , 2F
問題太多了 你那個utilization的設定是無用的 它會用你的
05/28 22:02, 2F

05/28 22:03, , 3F
邊距或是別的參數去算 按apply後它會變是正常
05/28 22:03, 3F

05/28 22:04, , 4F
太小的原因 不外乎是你core太小 然後 剩下的問題 去看CIC
05/28 22:04, 4F

05/28 22:05, , 5F
講義 上面都有寫
05/28 22:05, 5F

05/28 22:06, , 6F
對了 你utilization不要壓到0.8 不然你route完會想哭
05/28 22:06, 6F

05/28 22:17, , 7F
請問hsnuyi大,你是建議我不要將utilization壓這麼高嗎?
05/28 22:17, 7F

05/28 22:23, , 8F
你會取0.8 應該是學長/上課說的吧? 這個值是出自CIC講義
05/28 22:23, 8F

05/28 22:24, , 9F
不過如果真的選0.8 有些電路route完你會要解DRC解很久...
05/28 22:24, 9F

05/28 22:26, , 10F
主要是打穩壓用的via時 和route出來的線有violation的機率
05/28 22:26, 10F

05/28 22:26, , 11F
很高 建議是設在0.7左右就好 如果你route完 setup或hold
05/28 22:26, 11F

05/28 22:27, , 12F
還有需要修正時 它的density還會上升 因為會加buffer
05/28 22:27, 12F

05/28 22:28, , 13F
如果你pad數過多 或是速度已經達到了 那utilization低一點
05/28 22:28, 13F

05/28 22:29, , 14F
也沒關係 會要求0.8 有兩個原因 一是不希望die太大 你下線
05/28 22:29, 14F

05/28 22:29, , 15F
教授要付錢 二是為了速度考量
05/28 22:29, 15F

05/28 22:33, , 16F
還是說你只是要交作業... 那就根本沒差...
05/28 22:33, 16F

05/28 23:27, , 17F
謝謝hsnuyi大的回覆,之前確實是能拉越高越好,我也在想目前
05/28 23:27, 17F

05/28 23:28, , 18F
看起來就很緊密了,之後繞線根本不知道要怎麼繞才行
05/28 23:28, 18F

05/28 23:29, , 19F
另外我還想請問一下,目前我大部分問題都解決了,但是在APR
05/28 23:29, 19F

05/28 23:29, , 20F
裡,看起來還是沒有吃到clock,wns那些都為0,其他的都是N/A
05/28 23:29, 20F

05/28 23:38, , 21F
聽學長說所有的線都不能經過macro是這樣嗎?
05/28 23:38, 21F

05/29 08:05, , 22F
昨天嘗試在放入sram和cell之後做report timing,但仍然wns
05/29 08:05, 22F

05/29 08:06, , 23F
和其他都是顯是0或N/A的狀態,因此我去trace一下他report
05/29 08:06, 23F

05/29 08:07, , 24F
timing時產生的繞線,發現從clk pad進來的線被接到很奇怪的
05/29 08:07, 24F

05/29 08:07, , 25F
cell上,但是在.v裡明明不是這樣連接,不知道有可能是什麼原
05/29 08:07, 25F

05/29 08:08, , 26F
因,請問這個問題有什麼辦法可以解嗎?謝謝!
05/29 08:08, 26F

05/29 08:48, , 27F
clk當然會接到奇怪的cell,因為你有做clk tree,APR後
05/29 08:48, 27F

05/29 08:48, , 28F
的連線關係會跟DC的不一樣
05/29 08:48, 28F

05/29 08:51, , 29F
至於為啥hard marco上方不能走線,原因是那是已經lay
05/29 08:51, 29F

05/29 08:51, , 30F
好的IP,你無法確定它用了哪幾層metal,當然不能走線
05/29 08:51, 30F

05/29 10:43, , 31F
先謝謝m大的回答,但是我想可能是我說的不夠清楚,目前我
05/29 10:43, 31F

05/29 10:43, , 32F
放cell是選了一個run floorplan mode的選項,之後直接執
05/29 10:43, 32F

05/29 10:43, , 33F
行report timing,到這步為止尚未長clock tree,另外是sra
05/29 10:43, 33F

05/29 10:43, , 34F
m output端有接了buffer,而這buffer的output端不知為何
05/29 10:43, 34F

05/29 10:43, , 35F
接到clk pad,這才是我說接到奇怪cell的疑問
05/29 10:43, 35F

05/29 10:47, , 36F
關於我表達不清楚的部分我很抱歉,還請h大和m大多包涵
05/29 10:47, 36F

05/29 12:38, , 37F
多一個port 可能是名字出錯了
05/29 12:38, 37F

05/29 12:42, , 38F
沒吃到SRAM原因可能是路徑問題
05/29 12:42, 38F

05/29 16:45, , 39F
謝謝mm大的回答,port那個確定沒有多寫,是dc自己多加的bu
05/29 16:45, 39F

05/29 16:45, , 40F
g,完全浮接
05/29 16:45, 40F

05/29 16:47, , 41F
sram確實是我把LEF檔路徑設定錯誤,但吃不到clk的問題目前
05/29 16:47, 41F

05/29 16:47, , 42F
還是存在
05/29 16:47, 42F

05/30 01:31, , 43F
你的script是自己寫的還是?
05/30 01:31, 43F

05/30 01:32, , 44F
我說的名字不是多寫 你你寫錯 @_@ 當你寫錯時 tool
05/30 01:32, 44F

05/30 01:32, , 45F
tool可能還是找得到錯的那條接法 但原來那名字就多了
05/30 01:32, 45F

05/30 01:33, , 46F
你可能沒感覺到你寫錯了 但tool幫你處理了
05/30 01:33, 46F

05/30 01:33, , 47F
另一種可能性就是你的lib裡有多一個port要用
05/30 01:33, 47F

05/30 01:34, , 48F
但你沒有管那個port 所以系統就自重幫你生了一個出來
05/30 01:34, 48F

05/30 12:04, , 49F
我想或許有可能是第二種情形,電路中sram的lib可能有我沒使
05/30 12:04, 49F

05/30 12:04, , 50F
用到的port
05/30 12:04, 50F
※ 編輯: hkrist (1.160.10.119), 05/31/2015 13:53:57
文章代碼(AID): #1LPgjcVE (Electronics)
文章代碼(AID): #1LPgjcVE (Electronics)