雙處理器上同時進行FPGA讀寫的時候遇到的不可預測的行為



主要軟體:
主要軟體版本: 1.1
主要軟體修正版本:
次要軟體: N/A

問題: 我有一個FPGA的應用在PXI-7831R的平臺上跑, 用的是LabVIEW FPGA 1.1. 在FPGA VI中我用了一個cluster陣列. 我有一個host VI採用Open VI Reference函數來啟動FPGA VI. 在host VI中, 我有兩個平行的迴圈. 在每個迴圈中, 我用Read/Write Control函數去讀寫FPGA VI中的資料. 當同時進行讀寫操作的時候, 我遇到了不可預測的行為. 我注意到, 在讀迴圈中讀出來的資料並不反應在寫迴圈中寫入的資料. 讀迴圈得到的資料有重複的資料, 不全是由寫迴圈寫入的資料.
更加困惑的是, 這種行為只在少數PC上發生. 所有PC的軟體都是一樣的, 但是只有其中的一些PC發生這種奇怪的行為.

解答: 當採用平行的迴圈同時進行讀寫操作時, 需要這些函數(Read/Write Control函數)不是自治的. 這意味著當你用Read/Write Control函數進行讀寫的時候, 並不是一次操作都需要一個單元步驟. 每次讀寫都發生了數次操作. 既然這些函數不是自治的, 那麼同時進行讀寫操作有可能會導致不可預測的錯誤.
這不是一個很常見的現象. 然而, 這種現象在雙處理器或者是超線程處理器中更加常見. 單處理器的機器中這種情況比較少見. 這就是為什麼在你的情況中只有少數的PC出現了問題的原因. 因此, 在雙處理器的電腦中, 注意讀寫控制並不是均勻和自治這一事實. 這種情況下會導致讀寫不一致.

相關連結:

附加檔案:





報告日期: 11/14/2004
最後更新: 01/18/2005
文件偏號: 3FDLEBDS