在我的工作中,我們利用具有布爾邏輯程序的處理器用於工業應用。這些程序可能會變得非常漫長和複雜。它們基本上由輸入位,輸出位和內部布爾位組成。這些位然後用於導致輸出的邏輯語句中。輸入和輸出可以是物理線路輸出或串行通信,但這並不重要。組織簡單布爾邏輯模擬器 - Java
下面是一個簡單的,簡化的例子:
Inputs:
input1, input2, input3;
Outputs:
output1, output2, output3;
Boolean:
bool1, bool2, bool3;
Logic:
assign input1 && input2 to bool1;
assign input1 && bool1 to output1;
assign input2 && input3 to bool2;
assign output1 && bool2 to output2;
assign output1 && output2 || bool2 to bool3;
所以,請記住,我是很新到Java。我做了很多基於web的編程(ruby,php,javascript等)。
基本上我想模擬器要做的是打破程序的格式並允許進行圖形模擬。程序可以相互通信,因此模擬器也應該能夠處理多個程序(並將I/O綁定在一起)。
我的問題是組織入門。我會假設我需要一個「位」類。該類將存儲該位是設置爲TRUE還是FALSE,位的類型,相關等式,位來自哪個處理器等。
但是,接下來我可以達到這樣的程度,或數千個「比特」實例。我如何組織這些比特呢?如果我想抓取來自某個處理器的所有實例,我該如何實現?另外,當我改變模擬器中輸入位的狀態(TRUE或FALSE)時,它將更新其他幾個位的狀態。對此有何建議?我希望儘可能靈活,因爲我想添加其他功能。例如,某些位可以被指定爲定時器(當它們的條件滿足時,它們可能需要一定的時間來設置,或者當它們的條件不再滿足時可能需要一定的時間才能放棄)。
我最初的想法是保持對象的數組或哈希值,並嘗試以某種方式保持它們的組織方式。
我基本上在尋找任何建議。提前致謝。
好問題,也很好的問,並深思熟慮。 +1 – switz
http://www.tetzl.de/java_logic_simulator.html有源代碼。還有其他的,谷歌java模型數字電路 –