用 verilator 輔助數位電路設計:Verilator Framework

準備好 C model 和 SystemC 之後,我們的主角 verilator 終於帥氣登場啦。

verilator 會做什麼呢?它的使用流程是這樣子的,它會先分析你寫的 verilog/system verilog 檔案, 然後把它轉成一個 C++ 的標頭檔與實作,裡面的 class 會模擬你寫的 verilog 的行為。
接著你寫另一個 C++ 程式,初始化 verilator 產生出來的 class,餵它 clock 和其他你想要測試的信號, 就能模擬 verilog module 在接收這些信號時的行為,詳細的使用方式,一樣請參考強者我同學 johnjohnlin 的 blog

...

2023 COSCUP

COSCUP 2023 又到了一年一度大拜拜的時候了,經過去年全員戴口罩的第一次實體 , 今年完全解封感受得出氣氛輕鬆很多,外國人也來了不少。
自從 COSCUP 免費之後可以看出規模有一年比一年大的感覺,今年研揚已經開到六樓都全滿了,再來不會要開另一棟大樓吧。
今年也推坑沒參加過 COSCUP 的人來參加一下,幫 COSCUP 增加一些生力軍,他主力在語言相關的議程還有 k8s 等等;現在正在推坑他明年也來投稿一下XD。

...

rrxv6 : virtio

在去年五月上一回的文章 中,我們做到了 OS 版的 hello world, 讓 user process 呼叫 print 的 syscall,並由 OS 處理該 syscall 印出 hello world。
在這之後我花了一段時間(好長的一段)思考到底要做什麼,後面 xv6 依序初始化的東西包括幾個:

  1. buffer cache
  2. inode table
  3. file table
  4. virtio
  5. 做更多 user process 相關的部分

後來發現 1,2,3 都相依於 4,沒有 virtio 讀不了磁碟那還管什麼 file, inode; User process 在沒有 4 的狀況下,寫起來也是綁手綁腳,於是就決定先挑戰 qemu 的 virtio。

...

在 Ubuntu 上安裝開源 FPGA 工具鏈

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

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

...

書評:死亡盲飛-737MAX客機的空難悲劇與波音帝國的衰落

書名 死亡盲飛:737MAX客機的空難悲劇與波音帝國的衰落
原書名 Flying Blind: the 737 MAX Tragedy and the Fall of Boeing
作者 Peter Robison
譯者 何絜一
出版商 臉譜
出版日 2022-07-16
ISBN 9786263151468
...

用 verilator 輔助數位電路設計:C model 與 SystemC

用 verilator 的目的,就是要驗證 verilog 的實作是正確的,但我們又怎麼知道什麼是正確的呢?
就要準備好 C model 跟 SystemC 的實作了。

...

用 verilator 輔助數位電路設計:前言

有三個月沒有寫新文了,不過沒關係,這裡不像吉他英雄頻道一樣有人會催更新
故事是這樣子的,最近小弟的生活出現天翻地覆的變化,在忙各種搬家啦什麼的,都沒時間好好寫 code, 一月月初跨年、月中在三年的閉關之後出發去日本待了 10 天,回來月底接著過第二個年,什麼我的一月怎麼不見了???

這系列的主題要講電路驗證工具 verilator,本來這篇的標題是 在 2022 年應該要如何開發數位電路, 一直拖就拖到 2023 年,然後說真的,verilator 在取代現有的商用工具上應該還是不夠給力, 各大晶片設計公司也應該都有自己一套開發的流程(沒有的公司是做不出像樣的晶片的), 沒什麼稱做應該的理由,所以就改成現在這個標題了。

...

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

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

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

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

...

第一次參加 FLOLAC 就上手

故事是這樣子的,雖然已經是社會人士但還是要定時學一點東西,COSCUP 一結束, 緊鑼密鼓就接著兩個星期的邏輯、語言與計算暑期研習營 FLOLAC 2022,一個FP 宗教人士們的神祕聚會關於邏輯以及函數式語言的暑假短期課程。

小弟之前研究所認識的大大現在在當助教,也有上過課的教授是本次課程的教授之一,就決定在工作之餘參加一下。

...

疫情後第一次實體 COSCUP

人生第三次參加 COSCUP ,2021 年因為武肺大爆發,活動全部轉為線上,連我的演講也變成預錄影片最後回答問題, 活動心得在此
今年在疫情後首次舉辦實體活動,也改成不用買票的形式,想聽直接到會場不會有人驗票,沒有想聽的了想走就走, 變得自由很多也不用搶票了,根本超級佛心,看看今年一樣開出了平行近 20 軌的議程,連聽都聽不完的各式講題, 論其廣度與規模,COSCUP 可說是穩坐台灣開源研討會的第一品牌了。

...