看板 Electronics 關於我們 聯絡資訊
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
hkrist: 不知道有沒有版友可以幫忙解答我的問題呢? 謝謝! 05/28 20:27
hsnuyi: 問題太多了 你那個utilization的設定是無用的 它會用你的 05/28 22:02
hsnuyi: 邊距或是別的參數去算 按apply後它會變是正常 05/28 22:03
hsnuyi: 太小的原因 不外乎是你core太小 然後 剩下的問題 去看CIC 05/28 22:04
hsnuyi: 講義 上面都有寫 05/28 22:05
hsnuyi: 對了 你utilization不要壓到0.8 不然你route完會想哭 05/28 22:06
hkrist: 請問hsnuyi大,你是建議我不要將utilization壓這麼高嗎? 05/28 22:17
hsnuyi: 你會取0.8 應該是學長/上課說的吧? 這個值是出自CIC講義 05/28 22:23
hsnuyi: 不過如果真的選0.8 有些電路route完你會要解DRC解很久... 05/28 22:24
hsnuyi: 主要是打穩壓用的via時 和route出來的線有violation的機率 05/28 22:26
hsnuyi: 很高 建議是設在0.7左右就好 如果你route完 setup或hold 05/28 22:26
hsnuyi: 還有需要修正時 它的density還會上升 因為會加buffer 05/28 22:27
hsnuyi: 如果你pad數過多 或是速度已經達到了 那utilization低一點 05/28 22:28
hsnuyi: 也沒關係 會要求0.8 有兩個原因 一是不希望die太大 你下線 05/28 22:29
hsnuyi: 教授要付錢 二是為了速度考量 05/28 22:29
hsnuyi: 還是說你只是要交作業... 那就根本沒差... 05/28 22:33
hkrist: 謝謝hsnuyi大的回覆,之前確實是能拉越高越好,我也在想目前 05/28 23:27
hkrist: 看起來就很緊密了,之後繞線根本不知道要怎麼繞才行 05/28 23:28
hkrist: 另外我還想請問一下,目前我大部分問題都解決了,但是在APR 05/28 23:29
hkrist: 裡,看起來還是沒有吃到clock,wns那些都為0,其他的都是N/A 05/28 23:29
hkrist: 聽學長說所有的線都不能經過macro是這樣嗎? 05/28 23:38
hkrist: 昨天嘗試在放入sram和cell之後做report timing,但仍然wns 05/29 08:05
hkrist: 和其他都是顯是0或N/A的狀態,因此我去trace一下他report 05/29 08:06
hkrist: timing時產生的繞線,發現從clk pad進來的線被接到很奇怪的 05/29 08:07
hkrist: cell上,但是在.v裡明明不是這樣連接,不知道有可能是什麼原 05/29 08:07
hkrist: 因,請問這個問題有什麼辦法可以解嗎?謝謝! 05/29 08:08
michael6172: clk當然會接到奇怪的cell,因為你有做clk tree,APR後 05/29 08:48
michael6172: 的連線關係會跟DC的不一樣 05/29 08:48
michael6172: 至於為啥hard marco上方不能走線,原因是那是已經lay 05/29 08:51
michael6172: 好的IP,你無法確定它用了哪幾層metal,當然不能走線 05/29 08:51
hkrist: 先謝謝m大的回答,但是我想可能是我說的不夠清楚,目前我 05/29 10:43
hkrist: 放cell是選了一個run floorplan mode的選項,之後直接執 05/29 10:43
hkrist: 行report timing,到這步為止尚未長clock tree,另外是sra 05/29 10:43
hkrist: m output端有接了buffer,而這buffer的output端不知為何 05/29 10:43
hkrist: 接到clk pad,這才是我說接到奇怪cell的疑問 05/29 10:43
hkrist: 關於我表達不清楚的部分我很抱歉,還請h大和m大多包涵 05/29 10:47
mmonkeyboyy: 多一個port 可能是名字出錯了 05/29 12:38
mmonkeyboyy: 沒吃到SRAM原因可能是路徑問題 05/29 12:42
hkrist: 謝謝mm大的回答,port那個確定沒有多寫,是dc自己多加的bu 05/29 16:45
hkrist: g,完全浮接 05/29 16:45
hkrist: sram確實是我把LEF檔路徑設定錯誤,但吃不到clk的問題目前 05/29 16:47
hkrist: 還是存在 05/29 16:47
mmonkeyboyy: 你的script是自己寫的還是? 05/30 01:31
mmonkeyboyy: 我說的名字不是多寫 你你寫錯 @_@ 當你寫錯時 tool 05/30 01:32
mmonkeyboyy: tool可能還是找得到錯的那條接法 但原來那名字就多了 05/30 01:32
mmonkeyboyy: 你可能沒感覺到你寫錯了 但tool幫你處理了 05/30 01:33
mmonkeyboyy: 另一種可能性就是你的lib裡有多一個port要用 05/30 01:33
mmonkeyboyy: 但你沒有管那個port 所以系統就自重幫你生了一個出來 05/30 01:34
hkrist: 我想或許有可能是第二種情形,電路中sram的lib可能有我沒使 05/30 12:04
hkrist: 用到的port 05/30 12:04
※ 編輯: hkrist (1.160.10.119), 05/31/2015 13:53:57