我們在數位邏輯設計之類的課程裡常常會使用到一些數位電路模擬軟體,有時候蠻好奇那些模擬軟體到底是怎麼運作的,所以我們這次的Project將來處理這樣的問題。
程式的功能主要是讀取由使用者提供兩個檔案,其中之一的內容是描述元件和其之間的接線,另一個是儲存輸入腳位的波型;而程式讀入後,會根據接線的狀況和輸入的波型,模擬輸出腳位數值的變化。

剛開始程式會先分析邏輯描述檔案是否有接線上的錯誤。如果沒有錯誤就會進行模擬的階段,根據波形的改變分析邏輯閘輸出的變換。
##CONTINUE##
分析問題之後發現其實如果程式只是處理組合邏輯並不具有挑戰性,組合邏輯只需要把符號轉換成運算式處理就十分的簡單,所以我們的重點將放在時序邏輯和遞迴邏輯(像LATCH)上。
本次Project主要是Stacks and Queues的使用。Queues主要是用在檔案讀入描述式的分析和Functions之間數值串列的傳遞,而Stacks可以對需要處理運算的邏輯閘進行排程。
程式碼再修改一下就能有延遲的作用,如果未來有可能將作為自己在模擬數位電路時能使用的引擎。
Source Code下載(包含說明、模擬檔案等相關資料)
http://sites.google.com/site/hayden0828/blog/Simulator.rar