網路城邦
上一篇 回創作列表 下一篇  字體:
A cellphone call from an ex-colleague (my career in EDA sector; FSDB)
2022/06/06 13:46:38瀏覽1952|回應0|推薦14

今年的四月下旬 (2022 年 4 月),突然接到一位很久以前的同事打來的電話,剛接通確認之際,他很驚訝這古老的號碼還找得到我,興奮地說道:

        沒想到這號碼還能聯絡的到你,你都沒有換號碼呀!

接著就是他招牌的一陣開心的笑聲!


聊了一下彼此的近況之後,他表明來電是因為有人想要向我請教以前在 EDA 產業所做的 waveform database,但也沒有明說到底是要請教哪一個面向的問題。隔天另一位也是很久以前的同事聯絡上我,這次就講得更明白,原來是有一家 EDA 公司想要開發自家專屬的 waveform database,問我有沒有意願「重出江湖」?

算一算,離開 EDA 產業已經 18 年了,日子過得真快!

筆者於 26 歲預備軍官退伍後(在筆者的年代,研究所畢業都是預備軍官,不用考),先是在一家小外商公司做軟體專案,數個月之後轉到另一家公司研發排版軟體,排版軟體做了兩年左右,再轉往 EDA 產業研發 waveform database (FSDB)。2000 年的初始之際,為了做 partial load of value changes,整體架構必須重新設計,因此整個程式碼全部重寫,忙了整整近八個月終於忙完,當時真的是累斃了,不過那扛起挑戰與克服挑戰的經歷,至今仍令筆者難忘。說來慚愧,筆者在做學生的年代,雖然不會很混,但也沒有特別用功,也沒有跟問題或挑戰周旋到底的態度與精神,那 sleep on problems/bugs/challenges 的態度與精神,筆者是在任職 EDA 產業期間培養出來的,而這段時期也是筆者實力成長幅度最大的人生階段(28 歲~35 歲),在那近七年半的時間裡,前五年半就是主力研發 proprietary waveform database (FSDB),期間有幫忙另一個小組做 VHDL 版的 trace driver and load,不過有花時間與心力幫忙把它做出來與維護,但帶領該小組的高層主管在數次的公司集會報告時、卻都絕口不提也沒有表示感謝,實在是令人頗感不是滋味!(但數次提到他的兩位組員很辛苦;主動跑到他組要求人員支援,支援要到了就認為別人的幫忙是理所當然,甚至後來自己找了新人有了多餘的人力,也沒有主動地把 VHDL 版的 trace driver and load 拿回去自己維護,還要人家婉轉地提醒;聽直屬主管的間接敘述,這名高層主管當時來找人力時是直接指名要我幫忙做,這事情是有點令人無法理解,筆者一個人負責研發 FSDB 就已經足夠忙碌,怎麼還...,唉!) 後兩年帶著自己的另一個小組開始做 property/assertion for functional verification (such as Open Vera Assertion) 與 bus protocol checker,這是因為 chip 日益複雜,連帶使得 testing 的工作變得更加沈重耗時,為了提升 testing 的精準度、覆蓋率、以及效率,業界開始重視 testing methodology (新創公司 Verisity Design and its e language 就是據此崛起),因此 functional verification 這一塊成了當紅的研發題目,公司也將產品的名字由 Debussy 改為 Verdi ...。現在的 Digital IC Designer 應該不知道也沒有聽過 Debussy,其實就是 Verdi 的前身,是個令人懷念的名字,筆者也比較喜歡這個名字;Debussy 唸起來帶有詩意與美感,Verdi 唸起來感覺有點硬,Don’t you think?

順道一提的事情是,在帶領 Bus Protocol Checker 小組的期間,每次的開會,公司的 CEO 都有來參與會議,之後筆者離開了公司,離職超過半年後的當年 11 月,全家正在南部度假時,接到前公司行政人員的電話與 e-mail 來信,原來是 bus protocol checker 要申請美國專利,而筆者是原計畫的帶領者,即使離職了,公司沒有忘記筆者的貢獻,所以寄來專利申請的填寫文件,要將筆者列入其中的一員(筆者在職期間,幫公司申請到兩項美國專利,一個是自己做的 FSDB,另一個是擔任帶領者的 bus protocol checker),筆者相信這是公司的 CEO 特別交代如此這麼做的,因為公司的 CEO 一直對筆者不錯,記得在離職的前夕,CEO 找筆者聊天時,除了試著詢問還有沒有機會留下來之外,也聊到他晚上常常睡不著,因為心裡覺得很煩,筆者也能夠體會,畢竟公司上市後曾經當過眾所矚目的焦點,而且很多人也都在密切觀察公司未來的營運情況,營運績效每年都要成長而且要符合外界預期的壓力,大到令 CEO 操煩到睡不著覺,這其中當然一定還有其它的壓力因素;當時 CEO 講完「晚上常常睡不著、心裡很煩」這句話後,他的眼神凝視著書桌前方,不發一語地靜默了一陣子,筆者雖能約略體會那心情,但也幫不上忙;離開公司若干年後,公司被全球 EDA 龍頭併購,這可說是一個很漂亮的出場,相信 CEO 在漂亮出場之後,已經不會再心煩地睡不著覺。 

查了一下 waveform database(FSDB) 與整個 EDA 現況,FSDB 仍是 front end debugging tool 的主要支柱之一,而 EDA 產業的產值已經從 USD 4B 上升到 10B 左右,根據 2000 年時 EDA 產業的產值為 4B 為基準,歷經 21 年成長到 10B,平均年成長率約 4.46%,對早已是個成熟的產業來說,這樣的年成長率還算不錯,儘管有段時期是連續好幾年沒有成長。


回了一下很久很久以前的同事,寫道:

    好久不見!

    Well, 都已經是過去的事情了,沒有要做 waveform database。

    Anyway, thanks for the information.





備註一:

有時有些問題客戶認為是 bug,但實際上不是 bug,而是得幫其它公司的失誤做善後。以 vfast 為例,value change dump file 的 variable id,是以 printable character 與它在 ASCII table 裡的次序來為 variable (signal) 做編碼,但偏偏就是有一些中小型公司的 simulator 沒有按照規則與順序來做編碼;value change dump file 已經有定義 $scope 與 $upscope,意思就是 scope name 不要夾帶 hierarchy,但就是有一些 simulator 在 scope name 裡頭夾帶 hierarchy; 跑 simulation 時,照理說都是順著時間跑,亦即 time step 是越來越大,但就是有一些 simulator 在輸出 vcd file 時,那 time step 竟然還會往回跑!(想回到過去,試著讓 simulation 繼續,至少不再讓 design 離我而去,減少睡覺的時間,這次會跑得更勤,這樣努力不知還來不來得及,想回到過去)因此當客戶使用 vfast 將 vcd file 轉成 FSDB file 時,發現有些怎麼沒有轉成功?有 bug(s)!但實際上不盡然都是 bug(s),有些是其它公司的失誤,vfast 得增修程式碼幫它做善後。

雖然已經是至少 20 年以前的事情了,不需要複習,許多細節筆者還是記得很清楚!哈哈哈!


備註二:

2004 年離職前,針對自己做的 FSDB Writer/Reader and Related Utilites 計算過規模大小,總計自己親手撰寫的 C/C++ 程式碼約十二萬八千行(128,000. lines; 已約略扣掉有了徒弟之後徒弟所寫的程式行數,實際行數超過十四萬行)。


備註三:

被產業龍頭併購(被消滅) 之後,nWave 變貴了,I guess!所以現在它的基礎核心又有人想要做了!因為事隔一年之後,今年五月 (2023 年 5 月) 又來問一次筆者要不要重出江湖。



< Verdi, 2022 >






< The Wrong Answers given by Xillinx Customer Support >




To Xillinx Customer Support:

nWave is not a simulator, it is a waveform viewer. If customers are looking for simulators, then they should turn to VCS, NC-Verilog, or ModelSim. If they want to view an FSDB file, then Verdi is what they need, because nWave is a component of Verdi.

An FSDB file is not a flat ASCII file, it is in binary format. You may wonder that some of its contents seem to be ASCII, well, only some pieces of information in the header section are in ASCII format, the rest are all in binary format, such as chain areas, tree blocks (design hierarchy; $scope def., $var def., $upscope def.), and value change blocks. Why do I know these details? Well, I was working as a senior software engineer and associate manager in EDA sector from 1996 through 2004, and I was the one who designed and implemented this proprietary waveform database (as known as Fast Signal DataBase -- FSDB), including the two main components -- FSDB Reader and Writer, and related utilities, such as vfast, fsdb2vcd, and xloc. 

FSDB Writer (written in C) is the kernel of $fsdbDumpfile(), this verilog task $fsdbDumpfile() queries the value changes via PLI (an interface provided and supported by simulators; PLI is a set of APIs defined by IEEE) and calls FSDB Writer API to build up in-core data structures to store value changes, and FSDB Writer will flush in-core value changes to an fsdb file if the memory usage comes to a specific extent (memory limit), so for a single simulation run, there may be a lot of flush sessions.

FSDB Reader (written in C++) is the kernel of nWave, it reads value changes from an FSDB file and builds up in-core data structures (such as Double Linked List, AVL trees, and Heap trees) for value change traverse and displaying, the double linked varied-size value change chunks are for sequential traverse, while adapted AVL trees across value change chunks are for random traverse. 

The gist of my proprietary waveform database design (FSDB) is "the mapping between logical space and physical space (disk offset)," the rest are all about data encoding/decoding and compression/decompression, adapted data structures and algorithms for front-end simulation and debugging, partial load of value changes, critical section control (locking for interactive debugging and viewing), and performance.

My name in Chinese is spelled as "Chen, Chung-Chia", and the US Patent about my work in EDA sector is as follows:

US Patent Number 6,751,565  <Fast waveform display method and system>

The other two inventors are professors from Germany (Dortmund University) and Taiwan (National Taiwan University), their jobs were sharing academic point of views and ideas.






    

    



 

( 創作其他 )
推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=chungchia&aid=174903044