NTT 究竟是什麼?
故事是這樣子的,最近工作之餘頻繁地遇到 NTT 這個東西,但這個東西不是很好懂,所以想說來筆記一下, 順便用一個簡單的例子來說明 NTT/INTT 的流程與結果。
簡而言之呢,NTT 就是 Nippon Telegraph and Telephone 日本電信電話…欸不是這個 NTT ,這邊要講的是 number-theoretic transform,中文是翻數論轉換。
它可以說是離散傅立葉轉換 DFT 推廣到所有 Finite field (有限體)上,可以把一個 Finite field 的元素分解成多個選定的因子的向量;反向的 Inverse NTT 則可以反過來從分解開來的向量再轉回去有限體的元素。
為什麼要用 NTT 呢?
就像傅立葉轉換把時域的訊號轉到頻域上,讓時域的 convolution 轉成頻域直接相乘;
本來 Finite field 的 convolution ,在 NTT 轉換後可以變直接乘,對整數或多項式的乘法來說很有用。
數位電路設計系列 - 前言
故事是這樣子的,在睽違多年之後,最近又回頭去摸了數位電路設計與 tapeout,一個我已經疏遠許久的領域,在 11/13 的時候, 以壓線之姿送出人生第一顆數位電路晶片,寫這篇序文用來記錄未來相關的發文。
...第二次教召就上手
故事是這樣子的,自從四年前寫了第一次教召就上手 , 依照兩年一召的頻率,隨後在 2021 年六月本來要二召,但因為武漢肺炎本島爆發就全部取消,但該來的逃不過, 今年第三召,因為跟第一次召訓的差別有點大,值得再寫一篇來討論。
...用 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 依序初始化的東西包括幾個:
- buffer cache
- inode table
- file table
- virtio
- 做更多 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 |