邏輯分析儀我也DIY(四)—神秘藍(lán)點(diǎn)
今晚把各個顯示的字符都DIY上去了,不過在某些藍(lán)色字符附近出現(xiàn)了許多意外的神秘藍(lán)點(diǎn),如下:
本文引用地址:http://www.ex-cimer.com/article/270068.htm
上面一共四個Ch字符中,只有Ch2是完全沒有問題的,特權(quán)同學(xué)就感覺很納悶了,為什么同樣的16個Ch字符,就這幾個出現(xiàn)這些神秘的藍(lán)點(diǎn)。家中的LCD專家還特地給分析了,這個Cha前面的點(diǎn)那是四個像素的藍(lán)點(diǎn)在一起,覺得不是壞點(diǎn),那一定是認(rèn)為打上去的。換我的話說,那是FPGA給送上去的點(diǎn)。所以回頭來顯示走讀代碼找問題,一通找,最后還是沒發(fā)現(xiàn)什么不對的地方。因?yàn)闀r序約束后還都有較大的余量,所以這個原因排除,而這個字模是存儲在M4K配置的ROM里的,所以問題很可能和它有關(guān)系,ROM的配置后又一個可選的輸出數(shù)據(jù)是否要讓輸入時鐘打一拍,默認(rèn)是打一拍,我一直以為這里的打一拍不打一拍問題不是很大,不打一拍,送完地址的第二個時鐘周期出數(shù)據(jù),而打一拍應(yīng)該是送完地址的第三個時鐘周期出數(shù)據(jù),所以也沒太在意。
無奈之下只能重新讓ModelSim里幫忙找問題,再次進(jìn)行后仿真,這次就抓住出問題的地方,本想找掃描到的點(diǎn)位置送出來的數(shù)據(jù)是否正確。結(jié)果由于這個時間也太長了,咱等不起,索性就認(rèn)真的就ROM的時序做起了文章,這一看可不要緊,問題浮出水面。
第1條是ROM的輸入時鐘;
第2條是ROM1的地址(輸出數(shù)據(jù)沒有用時鐘打一拍);
第3條是ROM1的輸出數(shù)據(jù);
第4條是ROM2的地址(輸出數(shù)據(jù)打了一拍);
第5條是ROM2的輸出數(shù)據(jù)。
ROM1里,地址001的數(shù)據(jù)是0710,地址002的數(shù)據(jù)是0808;ROM2里地址2d的數(shù)據(jù)是02000000。我想問題就出來了,對于ROM1在第一個時鐘上升沿送完地址后(延時一點(diǎn)到達(dá)),第二個時鐘上升沿雖然數(shù)據(jù)出現(xiàn)了,但是我們的時鐘是采不到的,它是在第二個時鐘上升沿的建立保持時間后才出現(xiàn)在總線上的,所以真正意思上讀出數(shù)據(jù)的時間應(yīng)該是時鐘的第三個上升沿。ROM2也類似,由于內(nèi)部時鐘打了一拍,所以它比ROM1要再慢一個時鐘周期。這就是我的問題所在,換句話說,字模數(shù)據(jù)顯示位置整個右移了一個坐標(biāo)。
隨后,地址再早一個時鐘周期置位,問題解決了。
今晚過后,整個就下面的一個效果。
采樣模式顯示。
采樣周期可調(diào),從10ns到100us可調(diào)。
三種采樣模式顯示。
評論