2010-08-27 56 views
5

考慮電路評估的問題,其中輸入是布爾電路C和輸入字符串x並且您想要計算C(x)。 (假設你喜歡扇子2)。用於評估電路的算法的實現

算法上這是一個'微不足道的'問題,但是當C可能非常龐大(認爲有數百萬個門)並且內存管理成爲問題時,這似乎不是微不足道的。

有幾種方法可以解決這個問題,交換內存,時間和光盤訪問權限。但在我自己完成所有這些工作之前,有沒有人知道任何現有的針對此問題的算法實現?如果不存在,我會很驚訝......

回答

1

對於C/C++,標準的數字電路設計&現在的模擬系統現在是SystemC

它是一個庫,允許您在C++中設計數字邏輯。有支持軟件可以讓你做時序分析,甚至爲C代碼生成原理圖網表。

在決定使用Verilog之前,我只玩了一小會兒。但它是一個有很多行業支持的成熟軟件。谷歌搜索將產生大量的信息,包括幾個教程頁面。

+0

它是開源的嗎? – user432944 2010-08-27 22:27:00

+0

OSCI的參考實現是。查看他們的許可證:http://www.systemc.org/about/org_docs/license/ – slebetman 2010-08-27 23:02:44

+0

SystemC實際上是一個IEEE標準。因此,除了OSCI的參考實現之外,還有其他商業實現 - 就像C標準庫的許多實現一樣。 – slebetman 2010-08-27 23:04:05

0

聽起來好像Binary Decision Diagrams可以用於你的任務?這些已知的算法(和實現)在內存使用方面非常緊湊,因爲它們被設計用於巨大的狀態空間。