林正中數位電路實驗雜筆記

本篇內容乃道聽途說而來,目的在於快速了解數位電路實驗到底要怎麼做以及諸多抱怨,目前是很簡略地寫給自己看,要是有哪裡看不懂可以問,也歡迎修正內容。

暫且以編譯一詞代表 ncverilog -f

工作站是非常舊版的 Linux, vim 版本只有 6.3 超難用。

如果不用 screen 的話編譯到一半斷線編譯也會一起中斷,GG 。

在同一個資料夾內只能同時進行一次編譯(編譯進行中會產生鎖定檔來阻止另一個編譯同時進行),只要多複製一個資料夾就可以同時編譯了~

測試運行的方法:ncverilog 編譯 主檔案 TESTBENCH.v ,testbench 會 include PATTERN.v 和你寫的 module 進來,pattern 把資料餵進去你的 module ,然後檢查 module 的輸出。

假如這次你要實做的 module 是 decoder 好了。
Testbench 負責把 pattern 和 decoder 用線接起來。可以去看看,pattern 的輸出就是 decoder 的輸入。

01_run.f 這些檔案定義 macro, 讓 testbench 去 include 不同實做 level (behavior/dataflow/gate level)的 decoder 進來,有點像 makefile 。

要怎麼依照給定的 timing waveform 做出 pattern ?
(去看 PATTERN.v)initial 就是 t=0 (時間等於零啦)的時候,接下來可以用 # 符號表示等多少時間單位之後做什麼事情,例如 initial 輸出某特定值給 decoder,然後馬上檢查 module output 。
接下來 PATTERN.v 寫了 #5 ,就是維持目前 PATTERN module (PATTERN 本身也是一個 module )的輸出,5時間單位之後再繼續進行 #5 之後的動作,像是輸出另一組值給 decoder 以進行檢查。

大多數資訊都是由阿飄提供。
和認真好朋友修課都會變得認真起來。

這門課助教和老師提供的資訊都很 confusing ,很多資訊得要學生自己找、花時間理解。對於這種我沒什麼興趣的東西我才不會做這種事,要是沒有這麼認真的同學的話我早就放掉這門課了。後來意識到老師這樣(不論他是有意還是無意),也可以促進認真的學生自主學習,甚至鼓勵同學之間互相討論。對於從小拿到精美整理的教材的台灣學生來說這是一個轉變,這或許才是真的大學吧。不過對於本來就沒什麼學習動機的人這只會讓他們更傾向放掉這門課吧。(放掉的意思是蒙混敷衍過關,非認真學習而真懂)這樣的教學對於激起學習興趣大概也有負面影響。不過至少數位電路設計比起線性代數更容易看出實用價值太多了。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s