簡體   English   中英

如何檢測門邏輯仿真中的振盪?

[英]How to detect oscillations in gate logic simulations?

我在C#中編寫基於循環的邏輯模擬。 我想模擬組合和順序電路。 組合電路很簡單,但順序電路給我帶來麻煩。

我想檢測振盪並顯示適當的警告信息。 有一種簡單的方法可以檢查單個門可以改變其狀態的次數並使電路保持穩定嗎?

我想到了“最小反饋弧集算法”,但它似乎是一種矯枉過正。 許多桌面應用程序執行速度很快,所以我懷疑它們是否正在使用它。

我還發現紙張建議使用三元邏輯(0,1,未知),並將分裂算法分為兩部分 - 一部分初始化電路,一部分進行實際計算 - 但它說的是“如果算法A沒有終止電路因為沒有辦法停止時鍾周期並警告用戶,所以沒有任何振動。

任何想法如何像“Logisim”或“數字作品”一樣檢測振盪?

Verilator是一個邏輯模擬器,通過將可合成的Verilog編譯成C代碼來工作。

它試圖構建一個保證穩定的邏輯順序,但如果它失敗則會發出一些UNOPT和UNOPTFLAT警告並簡單地重復模擬多次,直到沒有任何變化。

默認情況下,在報告收斂失敗之前使用100輪,但這可以使用參數converge-limit進行更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM