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