Yodalee’s Note

My lifes, My notes

和平的代價:貨幣、民主與凱因斯的一生

書名 和平的代價:貨幣、民主與凱因斯的一生
原書名 The Price of Peace: Money, Democracy, and the Life of John Maynard Keynes
作者 Zachary D. Carter
譯者 賴盈滿
出版商 春山出版
出版日 2022-11-22
ISBN 9786267236024
...

NTT 究竟是什麼?

故事是這樣子的,最近工作之餘頻繁地遇到 NTT 這個東西,但這個東西不是很好懂,所以想說來筆記一下, 順便用一個簡單的例子來說明 NTT/INTT 的流程與結果。

簡而言之呢,NTT 就是 Nippon Telegraph and Telephone 日本電信電話…欸不是這個 NTT ,這邊要講的是 number-theoretic transform,中文是翻數論轉換。
可以把它看成離散傅立葉轉換 DFT 的一個通用的形式,把一個數或一個多項式分解成多個選定的因子的向量; 反向的 Inverse NTT 則可以反過來從分解開來的向量再轉回去本來的元素。
為什麼要用 NTT 呢?
就像傅立葉轉換把時域的訊號轉到頻域上,讓時域的 convolution 轉成頻域直接相乘; 本來 Finite field 的 convolution ,在 NTT 轉換後可以變直接乘,對整數或多項式的乘法來說很有用。

...

 November 19, 2023 |    math  |    python  | 6 min  |  YodaLee

數位電路設計系列 - 前言

故事是這樣子的,在睽違多年之後,最近又回頭去摸了數位電路設計與 tapeout,一個我已經疏遠許久的領域,在 11/13 的時候, 以壓線之姿送出人生第一顆數位電路晶片,寫這篇序文用來記錄未來相關的發文。

...

 November 16, 2023 |    ICdesign  |    ICdesign  | 1 min  |  YodaLee

第二次教召就上手

故事是這樣子的,自從四年前寫了第一次教召就上手 , 依照兩年一召的頻率,隨後在 2021 年六月本來要二召,但因為武漢肺炎本島爆發就全部取消,但該來的逃不過, 今年第三召,因為跟第一次召訓的差別有點大,值得再寫一篇來討論。

...

 September 22, 2023 |    LifeRecord  |    army  | 1 min  |  YodaLee

用 verilator 輔助數位電路設計:後記

這次開發 RSA 256 ,整體來說我覺得比 2010 年那時候順多了。
2010 年因為第一次接觸 verilog 和 FPGA,在兩個月內要衝出 RSA 256,自然也不會懂什麼 valid/ready, 現在回去看介面都是用 start 配 ready,相當於只有 i_valid 跟 o_valid,除此之外都是簡單暴力的狀態機, 放一下那時候報告畫的 state diagram 給大家笑一下,根本大雜燴什麼都攪在一起。

...

用 verilator 輔助數位電路設計:SystemVerilog

上一回設定好 testbench 之後,終於可以來寫 verilog 了,這回就來看看我們怎麼用我們這套 Testbench, 搭配 verilog 的 pipeline 設計來實作 RSA256。

...

用 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。

...