看板 C_and_CPP 關於我們 聯絡資訊
假如有一個檔案,內容摘錄如下: --- pin(Y) { direction : output; capacitance : 0.0; ... timing() { related_pin : "A"; cell_rise(delay_template_7x7) { index_1 ("0.1, 0.3, 0.5, 1.2, 2, 3.5, 5.1"); index_2 ("0.0012, 0.06, 0.12, 0.3, 0.54, 0.78, 1.02"); values ( \ "0.160560, 0.361777, 0.554405, 1.129650, 1.895607, 2.661473, 3.427275", \ "0.194078, 0.394502, 0.587044, 1.162409, 1.928577, 2.694489, 3.460319", \ "0.213038, 0.415019, 0.607252, 1.182489, 1.948657, 2.714585, 3.480426", \ "0.240248, 0.444941, 0.637123, 1.212236, 1.978116, 2.743964, 3.509774", \ "0.239647, 0.450504, 0.642963, 1.217908, 1.983599, 2.749230, 3.514933", \ "0.201920, 0.423800, 0.620239, 1.198460, 1.964499, 2.730255, 3.495705", \ "0.136574, 0.368609, 0.568776, 1.156107, 1.924668, 2.690540, 3.456458"); } ... } ... } --- 類似這樣很複雜的檔案, 要把裡面的內容讀到一個已經設計好的 structure 裡面, 這......就是在寫一個 parser 了嗎? 除了燃燒自己的肝自己用手慢慢刻之外, 有沒有其他比較簡便、有效率的方法去讀取嗎? 有請各位前輩指教了 <(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.97.198
chrisdar:REGEXP 02/10 11:26
hhang:這是描述cell的timing library檔案吧 02/10 12:02
hhang:我不確定synopsys或cadance有沒有現成的工具可以用 02/10 12:03
hhang:我之前有用過現成的def/lef parser 02/10 12:04
MOONRAKER:不用害怕!這不用到爆肝的,有stack和case就可以了 02/10 14:06
MOONRAKER:(…也不用stack,有sstream就很方便了) 02/10 14:06
dSnAil:稍微找了一下,看起來沒有現成的parser,只有找到規格ˊˋ 02/10 19:29
dSnAil:然後stack、case和sstream的詳細希望 XD 02/10 19:30
MOONRAKER:你要讀取那個表格裡面的哪一些值先說明,這樣比較好講解 02/10 21:04
MOONRAKER:比如說index_1要讀一個陣列 values再讀 要判斷pin 等等 02/10 21:05