林裕盛
TODO...
Sessions
07-29
10:10
30min
C++ boost hana的分析以及在資料處理上的應用
林裕盛
C++11之後,標準委員會多次強化了template的功能,導入了varadic pack, auto, fold expression等語法,大大提昇了STL的應用範圍。本議程將會導讀boost library中的hana,並講解這些功能的可能應用。內容包括了hana type computation的概念,也就是如何在C++中對class本身進行運算;以及hana struct,讓使用者對自己寫的class加上更多資訊,讓compiler得以運用這些資訊展開struct,降低我們需要寫的程式碼數量。
在資料處理,如轉換文字以及C++ struct的時候(yaml, argparse, json, protobuf),這樣struct展開相當有用,作者自己也拿相同技術運用在硬體開發中的Verilog的輸出資料分析。傳統上高階語言如Python由於弱型別特性,此類應用場景使用起來會比C++等很強型別簡易許多。然而有了這樣的技術之後,我們便能享受到C++的效率以及高階語言的好用性。
Let’s Read the Source Code
TR 213
07-30
14:15
30min
RSA256:用 verilator 驗證與測試的硬體模組
yodalee, 林裕盛
我們打造了 RSA256 這個專案,展示一套開發硬體時的標準流程,依序開發 C model 、SystemC model、再到 verilog module,並開發 Verilator 驗證框架,使每個階段間都能夠交互驗證,加速硬體開發的平行化與正確性。
Open Source Inspired Hardware
TR 412-1