---
# System prepended metadata

title: SoC Design Lab3
tags: [SoC]

---

# SoC Design Lab3

Github: https://github.com/Bromine035/SOC-lab/tree/main/lab3_fir

## Note
&ensp;&ensp;&ensp;&ensp;因為要求要做到 "計算 FIR" 與 "讀寫 AP configure register/Tap parameter" 兩者能夠同時執行，所以不能(或非常困難)將這兩件事放在同一個 always block 裡面用單一個 FSM(finite state machine) 去控制，而是要分開使用兩個 always block，一個負責 FIR 的運算與 Data RAM 的讀寫，另一個負責 AP configure register/Tap RAM 的讀寫，兩者分別由各自的 FSM 控制，才是較為合適的做法。  
&ensp;&ensp;&ensp;&ensp;當然，因為兩者都會需要對 Tap RAM 進行存取所以難免會有打架的問題，spec 裡也沒有寫到該怎麼處理這個情況，所以我這邊是先直接簡單地設定 FIR 運算的優先級是比較高的。