pretty code

2024年9月17日 星期二

四天的努力終於有了點成果

從上星期三開始,使用一套之前沒用過的 EDA Tool 來驗證以前部門弟兄的 design,如果只是要讓他跑起來不是什麼難事,拿先前其他部門的設定修改一下即可。

但我的問題是要修掉 EDA 報出 Nonequivalent 的地方,感覺 EDA 好像告訴了你什麼,但是好像也沒個屁用,想要比照文件儲存 checkpoint 方便之後 debug 不用重跑,但文件就是沒講到如何在載入 checkpoint 後,重回 GUI 的方法,有稍微在 Command Reference 那份文件瀏覽一下指令,但那個貌似進入 GUI 的指令(open gui)居然是在已進入 GUI mode 的情況下使用?

今天早上終於在循序閱讀文件的別地方看到進入 GUI mode 的指令(set gui on),也看到 EDA Status Code 的地方,終於知道 make Error 24 是如何來的,原來是 status flag bit3 和 bit4 為 1 的緣故(16 + 8 = 24)。

快中午時,試著詢問部門非常有經驗很厲害的一位資深同事,嚴格來說應該是我的直屬主管,最近組織架構多了這層級後,我以後有人罩了XD

雖然前輩也沒用過這套軟體,但在跟他聊了快 10 分鐘的過程中,還是學到了不少東西。

下午不知道為什麼突然心血來潮去看之前 DC 的 log,確定了這 4 個暫存器確實在 DC 合成的過程中被優化,也用我之前寫的 split_rtl 小工具從 netlist 中複製出這 4 個暫存器的 module code,也確定確實被優化了。

但不知為什麼這套 EDA 卻只報出其中一個 2_2 register 無法 mapping?難怪網路上有看到某人提到,如果要用這套 Formality Tool,最好 Synthesis Tool 也用同一家的比較好 debug 問題,畢竟同一家的工具彼此間資訊比較容易互通有無。

最後又多加了第 5 個暫存器的 Constraint 後,終於解決 Nonequivalent 的問題,剩下的就是 Unmapped 裡面的 Extra 和 Unreachable 到底需不需要解決?我個人稍微閱讀文件的結論是不用。

對一個新手來說,這樣還算可以吧?放假回去後要來整理這幾天資料寫文件了。

2024/09/21 更新

在寫文件的過程中才發現,EDA Tool 只有報一個 register 是因為被 group 了,但當初以為統計表上的一個就是一個,故沒有特別去看單獨報表。

這告訴我們一件事,別人的專案也許用到的指令並不齊全,但只要他們有放的指令,一定有它們的目的,不管怎樣還是要看一眼才對。

2024/09/24 更新

這篇文章應該是我看過介紹 LEC 最好的簡介文章了。

為了不浪費這三個月買的授權,這兩天嘗試使用 Hier Comparision,但還是覺得有點怪怪的,感覺結果不符預期,重點是還跑得比 Flat Comparison 慢。

不管如何,還是更新了之前寫的文章,目前頁數已經來到 3 字頭XD

2024/09/26 更新

把 Hier Comparision 章節又看了一遍,把知道的參數都試了一輪,還是有 Non-equivalent 的問題。

再一次看了文章後,覺得最扯的是有一個 Add noblack box 指令,要下這個指令的前提是你必須已經知道要比較的子模組裡面的個別模組有因為優化被提出到個別模組外,也因為如此,兩個模組比較一定會不同,故必須使用這個指令讓個別模組不要成為 blackbox,這樣子模組在比較時,下面的所有模組會被攤平一起視為整體來比較,這樣才能得到一樣的答案。


問題是如果我對整個 design 都了然於心,我還需要 EDA 工具做啥?

感覺又是一個雞生蛋蛋生雞的問題?

2024/09/27 更新

看起來如果 DC 有下 -no_boundary_optimation 參數,應該就不會有上述情況發生?

2024年9月15日 星期日

我不喜歡輸的感覺

Web App 最讓人詬病的就是動態產生網頁內容,尤其是用 Javascript 動態產生的,某種程度上都會大大增加 parsing 的困擾。

有時候只想快速得到一個結果,我還得先用一個類瀏覽器的函式庫取得內容,這不是我喜歡的解決問題方式。

以前曾在網路上看到某位號稱新店寶橋路正規表示法第一的網友,我決定來效法他的作法。

先點選小老婆 Top 50 撥放清單任一首歌,接著使用 Chrome 檢查功能進到 Elements 頁面,在 html tag 處按下滑鼠右鍵 -> Copy -> Copy element,將複製內容另存檔案為 Top_50.txt。


然後就沒有然後了。  

grep -E 'video-title' Top_50.txt | sed -En 's/.*title="(.*)">.*/\1/p'


01.郭静 - 陨落(电影《大红包》告白推广曲) (动态歌词) 
02.郭靜 - 夢在遠方 
03.今天起 
04.【純享版】尤長靖/郭靜《氧氣》 治癒系嗓音隔空吟唱太好聽!《天賜的聲音》ep7 純享版no noice /浙江衛視官方hd/ 
05.郭靜 claire kuo - 在樹上唱歌 (官方版mv) 
06.郭靜 claire kuo - 軟綿綿 (官方版mv) 
07.郭靜 - 像我這樣 
08.郭靜 claire kuo - 還有什麼好在意 whatever (官方版mv) 
09.郭靜 claire kuo - 回憶的閣樓 memories of us (官方版mv) 
10.郭靜 claire kuo - 該忘的日子 i am moving on (官方歌詞版) - 韓劇《雲畫的月光》片尾曲 
11.郭靜 claire kuo【深呼吸 take a breath】official lyric video 
12.郭靜 claire kuo - 想個不停 (官方版mv) 
13.郭靜 claire kuo - 不想有遺憾 don’t wanna miss you (官方歌詞版) - 衛視中文台戲劇「長不大的爸爸」插曲 
14.相思弦 
15.逆行的減法 
16.触碰你 
17.在曾有你的地方 
18.郭靜《只為遇見你》【只為遇見你 nice to meet you ost電視劇片頭曲】官方動態歌詞mv (無損高音質) 
19.像风 
20.單身美好 
21.我的小森林 
22.郭靜 claire kuo - 簡單 (官方版mv) 
23.愛情模樣 
24.沙漏 (網劇ᐸ時光教會我愛你ᐳ插曲) 
25.類似快樂的信 (電視劇《戀戀小酒窩》片尾曲) 
26.又是艷陽天 
27.郭靜 claire kuo【消耗寂寞 leave me hanging】official lyric video 
28.悸動 
29.亲爱的你 郭静 [动态歌词/lyrics] 
30.我想要有人為我傷心 
31.算不算 
32.『溫柔女聲』郭靜(guo jing)-拜你所傷(bai ni shuo ci)【我就祝福你,幸福快樂。】#流行歌曲 #動態歌詞 #lyrics #高音質 #好聽 
33.郭靜《一個人勇敢》【我的時代, 你的時代 go go squid2 dt / appledog's time ost電視劇插曲】官方動態歌詞mv (無損高音質) 
34.郭靜 claire kuo - 何日君再來(官方歌詞版)- 電視劇《回家》插曲 
35.郭靜 claire kuo - 小聲音 (官方版mv) 
36.郭靜claire kuo《我非獨自生活》官方版mv 
37.郭靜 claire kuo - 可惜 (官方歌詞版) - 中天電視劇「何以笙蕭默 」片頭曲、 民視偶像劇「星座愛情」獅子女片尾曲 
38.郭靜 claire kuo - 我不是你的那首情歌 not meant to be together (官方版mv) 
39.郭靜 claire kuo - 拍檔 partners (官方版mv) - 電視劇《後菜鳥的燦爛時代》片頭曲 
40.郭靜 claire kuo - 別去問他好嗎 don't let him know (官方版mv) 
41.郭靜 claire kuo - 忘了如何遺忘 how to forget (官方版mv) - 電視劇《聶小倩》片尾曲 
42.郭靜 claire kuo - 每一天都不同 (官方版mv) 
43.郭靜 claire kuo - 明白 (官方版mv) 
44.他爱的梦 
45.《陪你逐風飛翔 to fly with you》郭靜 claire kuo - 越走越遠 farther and farther🥀(英繁中文歌詞 eng lyrics)🤍陪你逐風飛翔 情感插曲 ost 
46.郭靜  claire《慶幸遇見你》【我可能遇到了救星 hi venus ost 電視劇插曲】official lyric video 
47.(mv) 郭靜 (guo jing) - 月亮會記得(yue liang hui ji de) (the moon will remember) ost. 小女霓裳 aka ni chang 
48.最精彩的豔遇 
49.郭靜 claire kuo《暖橘》【我的助理不簡單 never too late ost 電視劇插曲】official lyric video 
50.DuDu好 

最後在聽到第 26 首歌《又是艷陽天》時,搞定此事並寫完更新 Blog

2024/09/15 洗完澡更新

洗澡時才想到忘記補上今天現學現賣的技巧,使用 VIM 在每列前面補上 index。

雖然我也可以都用 VIM 搞定,但我現在只能想到 .recording 2 種方法,操作起來沒有那麼漂亮,故我還是拆成三動來記錄。

01. 先把上面抓到的歌名另存一個檔案,比如 Final_50.txt。 
02. Sed -Ei 's/(.*)/1. \1/g' Final_50.txt
03. 從第 2 列開始,使用區塊模式選取 1 這一個 column,可以用 ctrl + v + G 一口氣選取,然後按下 g + ctrl + a,便會幫每一列的數字自動加 1。
04. Sed -Ei 's/^([0-9]+{1,1}\..*)/0\1/g' Final_50.txt,這裡是幫 1 ~ 9 前面補上 0。

現在就剩下如何都用 VIM 搞定,我猜應該是朝自動向下填入方向去找尋對應指令。

2024/09/16 更新

殘念,這個增加數字的技巧是從 VIM 7.4.754 版本才開始,我們家的工作站版本居然比這還舊?不支援 true color 也就算了,什麼都沒有是怎樣!

另外,對於我這種 parsing 需求來說,也許使用油猴也是個不錯的選擇,改天再來嘗試。

2024/09/21 更新

其實小老婆好聽的歌還可以再追加幾首,有 50 幾首合我口味的歌,真是不簡單呀。

昨天從下午 1:30 開始就邊聽 Top 50 邊 review 這幾天寫的文件,一直到下午 4:30 才聽到《在曾有你的地方》,3 個小時也還聽不到 40 首,不知道為什麼開車時卻覺得很快就輪回一輪了?要不是顧及老婆感受,我應該可以一直聽這歌單不會膩吧XD

另外一個撥放清單的歌混合了我從前到現在聽過覺得好聽的歌,各國語言都有,到目前也才 157 首,一樣可以用我上面 regex 的技巧取出歌名,但在複製 HTML 時,要記得自己用滑鼠拉到最後,不然預設好像只顯示 100 首,另外最後面可能會有幾首是 YouTube 推薦的,但因為是同 CSS 設定,故目前無法有效過濾,也許得用 VIM 手動砍掉推薦影片後面的 HTML 吧。

VIM 學習最後一哩路

除了工作站連線軟體不論,即使不連工作站,VIM 也算是我每天必開的軟體之一,雖然說辦公室也有安裝一套很久之前購買的 UltraEdit 13,但除了要跑 Verilog 外,我已經習慣不用 UltraEdit 的日子很久了。

當需要大量修改文字,可能會用 recording,比較不同 log 差異使用 vimdiff,另外簡易搜尋取代也算是每天必用功能之一。

感覺好像不是一般使用者了,但離鑽進 VIM 這顆蘋果的外皮也還差得很遠!

要說現在會的 VIM 技巧不夠用嗎?好像也不是!即使我的操作不是 VIM 打最少字的最佳範例,但要應付目前工作所需好像也還游刃有餘?

除了本來就有購買的《精通 vi 與 Vim 》第八版紙本書外,剛才又選了兩本英文電子書加入我的工具箱中,不到 300 的價錢真的是很超值,更別提這兩本書也是 DRM-Free。

有很多想看的書未看,但被生活與工作占領大半人生的現代人真的很悲哀,連想好好看本自己想看的書也沒時間。

明年的我還會有心情參加小老婆演唱會嗎?我很懷疑…

山不轉路轉

早上試著找出解決 YouTube Music 加入一個以上撥放清單的歌到待撥清單,按下隨機撥放卻只剩 25 首歌的問題。

想要試圖找出工程師的邏輯,將一些動作排列組合後情況依然無解,過程中還不小心將小老婆的歌單移除了幾首,害我想盡辦法找出來補回,本想將網頁存檔寫個 parser 找到這 50 首歌歌名備份,但這種 Web App 類的 code 都很髒,實在不想花時間做這種鳥事。

後來決定將救回來的歌單再備份一份取不同的名字,也順便將我開車想聽的不同播放清單音樂又另外儲存成一個播放清單,真是有你的 Google,數位垃圾就是這樣造成的。

除此之外,也把存的一些數學、3D 影像、數位邏輯等撥放清單刪一刪,順便把我喜歡的小老婆表情包變公開清單,就是喜歡小老婆也沒什麼好害羞的XD

目前暫時先用前導數字調整順序,改天再來好好安排規則。

YouTube Music、微軟新注音學習、無窮盡的網頁廣告,真是讓我越來越頭痛,這樣下去,只會讓人越來越不想用手機、用電腦以及上網。

3D 結構光撥放清單可刪,但電腦儲存的小老婆結構光檔案我可捨不得刪呀XD

想到去年的中秋、國慶連假還在家自行架設結構光環境學習,今年可真是人事已非…


2024/09/15 晚上更新

不就是正規表示法嗎?一片蛋糕罷了。

2024/10/02 更新

一樣的歌放兩個撥放清單真的很愚蠢!要新增可以一次勾選兩個清單新增,但要刪除只能兩邊清單個別點進去刪除。

不過有一個簡單的方法,點選不同撥放清單都有的歌,進去該首歌後,選擇儲存把原本勾選的按掉即可。

2024/11/09 更新

一切都是我想太多,單一個撥放清單的歌隨機還是會有問題,我到現在才明白XD

2024年9月14日 星期六

一些 sed 指令備忘

sed 還是有一些細微處不太明白,但現階段這樣就夠我用了,還是老樣子,不要太早最佳化!

什麼時候該鑽研,什麼時候又該無視,坦白說很難拿捏?

我想當覺得用起來不太順時,應該就是需要改進的時候了。

sed -i 取代檔案用
sed -e 直接對 stdin 

不管哪個都可以用一般取代跟 \1。

有多少愛可以重來

這星期中餐吃了好多次早餐店XD

一來是因為不用準備零錢,二來是因為天氣炎熱,實在不想搞到全身都是汗臭味,我已經從中午爬 10 層樓梯加走路,變成只有走路,到現在連路都不走了!

這星期某天吃午餐時,聽到一首還不錯聽的歌,使用聽聲搜尋後,得到的結果是趙乃吉的《有多少愛可以重來》,當時也未曾多想,便順勢的加入到 YouTube 的歌單中。

早上在聽該歌單的最後幾首時,剛好又聽到這首歌,不過老婆上完廁所後就把我正在聽的歌中斷,改去看我出錢訂閱的串流平台了?

剛好筆電是開機的狀態,因為當時還未記住歌名也未記住歌手,隨手用印象最深刻的歌詞『有多少愛可以重來』Google 了一下,才發現是迪克牛仔唱的,原本以為這就是原唱了,隨著無聊看了一下底下留言,才發現居然還有原主唱,最一開始居然是民國 83 年黃仲崑唱的,原來這是一首這麼老的歌呀,真是不查不知道。

只可惜人的第一印象很重要,我到現在還是覺得 Google 推薦給我的第三手歌手唱得比較好聽XD

連一首歌的原唱都這麼曲折離奇,如果不是我老婆強制中斷我正在聽的歌,如果我沒接著搜尋,如果看到迪克牛仔的影片後沒有繼續往下看留言,這三個條件只要一個不滿足,我到現在都還會以為原唱者是女生?

人還是不要太相信別人餵的資訊,凡事還是要自己思考後下判斷,不論判斷是對是錯,這都是一個避免有心人士操弄的最佳學習機會。

2024 week 37 新玩意

01. 不要太相信 EDA 文件

我是不知道 EDA 授權金額多少錢,但 EDA 文件普遍寫得不好倒是真的,看起來寫了很多,但對解決問題沒啥幫助,不然就是文件寫的跟指令實際行為有時候會對不起來。

不過前提是文件要先從頭到尾認真看一遍,最好要看 2 ~ 3 遍,如果還是覺得哪邊怪,那恭喜你,你不孤單XD

02. 除非特例,少用 GUI mode,不然容易當機

我們跑的設計應該很小,但我這星期就遇到當機 2 ~ 3 次了,原本都以為是該指令要跑很久,後來越想越不對勁,去 EDA license 頁面確認,果然該 license 已經沒有被占用,資源是已釋放的狀態。

我猜,EDA 應該有另一個 thread 定期回報授權主機,避免當機占用 license,畢竟授權不便宜。

因此,不管是在哪個模式下,如果覺得 EDA 好像當機了,給它個面子等個 30 分鐘左右,如果從授權主機看不到你的使用授權,就可以放心地使用 kill 砍掉該 process。

印象中,top 指令看到都還是 run,而不是 zombie?

03. EDA 相關工作要建立 SOP

EDA 動不動就要跑很久,錯了再來一次的時間成本很寶貴。

要做什麼之前最好先想好,檢查再檢查,最好有 check list 可以檢查。

Vim、Shell Script、grep 各種技巧要不斷精進,這都是可以提高工作效率的投資。

要建立自己的工作模式,比如開幾個工作視窗,要不要用分頁,視窗要擺在哪邊,養成下意識的動作,做起事來會比較流暢。