在 Ubuntu 上安裝開源 FPGA 工具鏈

故事是這個樣子的,大概在一年半前,我花了幾個月小玩了一下從 COSCUP 那邊拿到的 FPGA,那時候是在我的桌電 - 也就是 Archlinux 上進行開發。
最近因為一些原因又把這塊板子拿出來,但這次,我改用我新的筆電,裝的是 Windows 的 WSL 搭配 ubuntu 22.04,然後就發現, 我在文章中 列出來的幾項工具,包括 yosys, nextpnr, prjtrellis, 只有 yosys 能在 ubuntu 上用 apt 完成安裝,其他都在自己編譯,不像 Archlinux 上有人幫你弄好 AUR 了。

這篇文就是安裝工具的筆記,希望能幫到其他想在 ubuntu 上玩 lattice FPGA 的人, 主要參考這篇文章 ,以及一些工具 Github 的 issue。

...

Google Test從入門到濫用:參數化測試

發現好久都沒貼文了,因為從八月開始都在忙東忙西都沒時間寫 code,主力在開發的 rrxv6 又(咦我怎麼會說又呢) 在 virtio 嚴重卡關,最近是有突破然後又被 global variable 擋下來,有夠麻煩。
會寫這篇是這樣的,從十月底小弟接到一個小任務,要用一批網路上的測資,去測試公司內一個專案的正確性,要如何做都是小弟自己決定,考量到:

  1. 待測專案用 C 寫的。
  2. 測資為自訂的文字格式。

最後決定用 C++ 搭配 google test 來開發測試,搭配大量資料進行 Data Driven Testing, 使用的 feature 為 google test 的 value-parameterized test

...

hugo 網頁內容調整

故事是這樣子的,從我上一篇blogger 搬到 hugo 全記錄 開始到現在,已經過了半年有了,這段時間寫了大概 7-8 篇的廢文之外,大部分狀況都是調調格式什麼的, 直到 228 紀念日我又花了點時間大調了一次格式,這篇文就用來記錄一下這半年做了什麼。

...

blogger 搬到 hugo 全記錄

工程師如何搬家,給工程師一個死線,時間到了家就搬好了

簡單來說,搬家基本上來說可以分成三步驟:

  1. 找到新家
  2. 把舊家的東西搬出來
  3. 把東西放到冰箱新家
...

第一次跳槽 vscode 就上手

故事是這樣子的,小弟第一次學寫 code 的時候,是在大一修計算機程式(嚴格來說是高三下學期上了幾個小時的 C,不過那實在稱不上是"學")的時候,第一個使用編輯器是破舊破舊的 Dev C++ ,我打這篇的時候差點都忘了它叫 Dev C++ 了。
當然那時候的功力跟現在實在是天差地遠,淨寫一些垃圾,啊雖然現在也是淨寫一堆垃圾…。
總之後來應該是大二,被同學們拉去演算法課上當砲灰,第一次接觸了工作站 + vim,從那時候把 Dev C++ 給丟了跳槽到 vim,就一直用到現在, 之中當然也會用一下其他的編輯器,像是改 windows 的 .NET 程式用到 Visual Studio,但大體還是以 vim 為主力,算算也是超過 10 年的 vimer 了。

不過這兩三年在工作上、日常 project 上面,多多少少都見識到 vim 的不足之處,例如

  • 新語言(主要是 rust)支援不足
  • 跟編譯除錯工具整合不佳
  • 跟 GUI 整合不佳
  • 跟 Git 整合不佳要另外開終端機跟 gitg
  • 自動格式化/排版操作麻煩而且通常排不好

正好此時 Microsoft 回心轉意擁抱開源,推出了 vscode,隔壁棚的 emacs 有大神跳槽鬧得風風雨雨 , 台灣 CUDA 第一把交椅強者我同學 JJL 也跳槽 vscode 惹還來傳教。

...

用 docker container 來編譯程式

故事是這樣子的,最近受朋友之託研究一個套件,在編譯的時候…不知道為什麼我的 Archlinux 編不起來,有某個奇怪的 bug 蒙蔽了我的雙眼擋住了我而且一時之間解不掉,目前看起來像是 golang 那邊的鍋。
總之目前看起來像是 Archlinux 限定的問題,如果裝一台 ubuntu 18.04 的虛擬機,在裡面 build 就沒這個問題,可以完成編譯。
不過想想,現在都 2020 年了,怎麼連 docker 怎麼用都還沒學起來(查一下這玩意 2013 年就已經問世了耶…), 就本例來說沒事還要開一個巨大的 virtualbox ,建個巨大的虛擬磁碟再安裝作業系統真的有點划不來,就花了點時間學了一下 docker , 然後順便記個筆記,不然這年頭發現自己學習能力低落,連 docker 這麼簡單的東西都學不好QQ。

...

開始使用 Google Test:基本設定

故事是這樣子,最近突發奇想用一些零碎時間寫了一個 C++ 的 regex project,因為已經好久沒有寫 C++ 都在寫 Rust, 回鍋發現 C++ 怎麼可以廢話這麼多,長得又醜,以後哪個人再跟我說 Rust 的的生命週期很醜的,我就叫你去看 C++ 的 template code,看你還敢不敢再說 Rust 醜。
扯遠了,總之這次寫的 C++ 專案,其實只是當個練習,看能不能藉由實作專案熟悉 C++ 11、14的功能, 也決定引入 CMake 和 Google test 等等我之前一直都沒有學會的東西,從做中學這樣。

...

實用的gdb 指令

最近工作上大量使用到 gdb,想說來整理一下一些常用的 gdb 使用方式,以及對應的場景;當然,這絕對不是 gdb 完整的功能介紹,只是目前我遇到比較多的使用方式而已。

...

設定 ssh config 讓人生簡單一些

ssh 是工作上的重要工具之一,平時要連進其他電腦、傳送檔案、甚至是上 ptt 都可以用 ssh 達成,這篇文整理一些 ssh 的設定,可以讓 ssh 的使用更簡單一些。

...

 July 29, 2017 |    simple setup  |    ssh  | 1 min  |  YodaLee

使用 doxygen 產生程式文件

這應該是個過時的題目,相關的文件已經滿天飛了,不過最近程式寫得肥了,又是和其他人的合作項目,總不能老是這樣打開 Office Word 寫文件(掩面), 然後程式跟文件老是不同步,還是把註解改好用 doxygen 產生文件省事些,順帶得就寫個文章記錄一下。
doxygen 是一套文件產生程式,會自動 parse 原始碼、標頭檔等,搭配設定的模版,自動產生不同種類的文件,如 manpage, html , latex…。

...