Chihyu's Blog

Now this is not the end. It is not even the beginning of the end. But it is, perhaps, the end of the beginning.

0%

如何解決問題

以下是邏輯設計筆記中,介紹如何從無到有、設計出邏輯圖的步驟。雖然內容沒頭沒尾、解釋不清,但我想記錄下來,也許會啟發未來的自己。

如何設計?

  1. 描述規格或問題
  2. 確定輸入與輸出
  3. 將輸出、輸入符號化
  4. 推導輸入與輸出的真值表(truth table)
  5. 推導每一個輸出的布林函數(boolean function)
  6. 畫出邏輯圖(logic diagram)
  7. 驗證它

除錯的思考順序

另外,這一段則是之前在寫產線測試程式時,前輩建議在有人反映程式有問題時,可以考慮的方向。

硬體設備

  • 測試電腦
    • 環境
      • 64 還是 32 位元組處理器?
      • 輸入設備是否正常運作?開啟其他程式是否也不能打字,或者滑鼠一樣點擊無回應?
    • 開啟時間
      • 如果使用筆電測試,開啟時間過長容易導致程式反應緩慢。
      • 確認記憶體使用狀況。
    • 函式庫
      • 相依函式庫是否存在?是否在更新時被覆蓋?
      • 版本是否正確?新版是否向下相容舊版?
    • 外部程式
      • 若有連結外部程式就要確認外部程式狀態,呼叫 Excel 時常發生異常。
      • 某些外部程式引用自己的函式庫,需要確認是否有一併下載、安裝。
      • 某些外部程式有語系限制,如果與電腦設定不同,會導致無法測試。
    • 網路
      • 如果有連結資料庫的需求,確認內部網路連接狀態正常。
  • 測試板
    • 硬體間接線是否正確?線材是否正常?
    • 這片測試板已使用多久?或者多久未使用?該測試板是否正常?
  • 光源或電源
    • 輸入正常嗎?畢竟沒有輸入就不會有輸出。
    • 輸入量級正確嗎?是否太小或太大?
  • 待測物
    • 若更換待測物,程式即正常運作,可合理懷疑是前一待測物功能異常導致。
    • 當待測物屬於 RMA(Return Merchandise Authorization,常在製造業代稱客退品),更高的機率是待測物導致異常。可要求更換 golden sample(在該公司指涉已驗證功能完全正常、留置產線使用的產品)驗證。

程式

  • 編譯目標是 ANY CPU 還是 x86?
  • 編譯給 64 還是 32 位元組處理器?
  • 確認程式內部邏輯是否符合預期。
  • 確認顯示的警告訊息是否有隨著程式碼更新。
  • 族繁不及備載……

為何從硬體開始除錯

由於該公司的生產工程師常常未確認硬體設備,就直接說是軟體導致無法正常生產。多次來回後,得到以上的經驗談。

當時並無環境對程式進行壓力測試,大部分的測試程式投入產線使用前,可能都只有一、兩個小時的測試時間。甚至有些基於時程壓力,只測試了兩、三件待測物,便立即通過。

老實說,也有測試程式在使用一、兩天後,才浮現問題。但當年被找進去產線除錯,有八成以上的問題都出自硬體設備,根本不需要修改測試程式。

現在回想起來,真是段混亂的日子啊!