《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的透視投影變換算法的設(shè)計(jì)與實(shí)現(xiàn)
基于FPGA的透視投影變換算法的設(shè)計(jì)與實(shí)現(xiàn)
林炎光1,孫紅勝1,王志民2
摘要: 在闡述了嵌入式地形三維顯示系統(tǒng)的透視投影變換算法的基礎(chǔ)上,著重論述了基于FPGA設(shè)計(jì)實(shí)現(xiàn)透視投影變換算法的方法,并在XILINX公司的SPARTAN XC3S500E上實(shí)現(xiàn)了本算法的基本功能。實(shí)驗(yàn)數(shù)據(jù)表明該硬件算法系統(tǒng)具有實(shí)時(shí)性高和時(shí)間開(kāi)銷(xiāo)低等優(yōu)點(diǎn)。
Abstract:
Key words :

    摘  要: 在闡述了嵌入式地形三維顯示系統(tǒng)的透視投影變換算法的基礎(chǔ)上,著重論述了基于FPGA設(shè)計(jì)實(shí)現(xiàn)透視投影變換算法的方法,并在XILINX公司的SPARTAN XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E" title="XC3S500E">XC3S500E上實(shí)現(xiàn)了本算法的基本功能。實(shí)驗(yàn)數(shù)據(jù)表明該硬件算法系統(tǒng)具有實(shí)時(shí)性高和時(shí)間開(kāi)銷(xiāo)低等優(yōu)點(diǎn)。 

    關(guān)鍵詞: FPGA;透視投影變換;時(shí)間開(kāi)銷(xiāo)

     大規(guī)模地形繪制技術(shù)一直是國(guó)內(nèi)外虛擬現(xiàn)實(shí)領(lǐng)域的研究熱點(diǎn),被廣泛應(yīng)用于戰(zhàn)場(chǎng)仿真、飛行模擬、電子地圖和地形漫游等方面。目前基于PC平臺(tái)上的地理信息系統(tǒng)技術(shù)已比較成熟,廣泛應(yīng)用的有美國(guó)的MapInfo和ArcInfo,國(guó)內(nèi)慧圖公司TopMap和中國(guó)地質(zhì)大學(xué)的MapGIS等。而隨著嵌入式系統(tǒng)的廣泛應(yīng)用,三維地理信息系統(tǒng)小型化已成為新的研究方向。相比之下,國(guó)內(nèi)嵌入式地形三維的GIS應(yīng)用系統(tǒng)目前還比較少。 

    本文在研究地形三維顯示算法的基礎(chǔ)上,設(shè)計(jì)了一個(gè)面向嵌入式系統(tǒng)的透視投影變換算法模塊,實(shí)現(xiàn)基于FPGA上的算法加速,極大提高了嵌入式系統(tǒng)下的數(shù)據(jù)處理速度。 

1 透視投影變換的原理及算法

    在實(shí)現(xiàn)地形三維建模過(guò)程中,一個(gè)重要步驟就是通過(guò)透視投影變換實(shí)現(xiàn)世界坐標(biāo)(project coordinates)向像(視)點(diǎn)坐標(biāo)(view coordinates)的過(guò)渡。世界坐標(biāo)中的各類(lèi)地形數(shù)據(jù)參數(shù)正是通過(guò)透視投影變換,轉(zhuǎn)換為視域坐標(biāo)內(nèi)相應(yīng)點(diǎn)的二維數(shù)據(jù),進(jìn)而加以渲染形成二維坐標(biāo)系統(tǒng)上的三維立體地形圖像。 

1.1 透視投影變換的坐標(biāo)轉(zhuǎn)換

    所謂透視投影變換,就是世界坐標(biāo)到視點(diǎn)坐標(biāo)的空間轉(zhuǎn)換步驟,其作用是將x和y坐標(biāo)映射到投影平面的正確位置上,同時(shí)保持深度信息。如圖1所示,S為視點(diǎn)(觀察者),地面上一點(diǎn)A在像平面上的映射點(diǎn)為α。o-xy為像平面坐標(biāo)系,用以表示像點(diǎn)在像平面的位置。其坐標(biāo)原點(diǎn)定義為像點(diǎn)o;S-xyz為像空間坐標(biāo)系,它是用來(lái)表示像點(diǎn)在像空間的位置的右手空間直角坐標(biāo)系統(tǒng)。OT-XTYTZT為地面輔助坐標(biāo)系,是一種過(guò)渡性的地面坐標(biāo)系統(tǒng)。透視投影變換算法最終實(shí)現(xiàn)地面坐標(biāo)OT-XTYTZT上的點(diǎn)到像平面坐標(biāo)o-xy的空間映射。 

 

 

1.2 投影變換數(shù)學(xué)算法實(shí)現(xiàn)

    在透視投影過(guò)程中,需要定量描述視點(diǎn)的姿態(tài)和空間位置,從而確定投影像片和地面之間的幾何關(guān)系。為了確定投影光束在地面輔助坐標(biāo)系中的位置,需要有3個(gè)線元素和3個(gè)角元素,共需6個(gè)元素。其中3個(gè)線元素是投影中心S在地面輔助坐標(biāo)系中的坐標(biāo)(XS,YS,ZS),用來(lái)確定投影光束頂點(diǎn)在地面輔助坐標(biāo)系中的空間位置;3個(gè)角元素用來(lái)確定投影光束在地面輔助坐標(biāo)系中的姿態(tài)。為便于說(shuō)明,在圖1左圖中引入θ-α-kv角元素系統(tǒng),如右圖所示,兩圖的坐標(biāo)定義一致。 

    根據(jù)視域范圍內(nèi)地面點(diǎn)與像片映射點(diǎn)間的坐標(biāo)關(guān)系,使用θ-α-kv角元素系統(tǒng),將S-XYZ坐標(biāo)系依次繞Z-X-Y軸相繼旋轉(zhuǎn)θ-α-kv角之后,與視點(diǎn)的像空間坐標(biāo)系S-xyz重合。通過(guò)空間坐標(biāo)的旋轉(zhuǎn)轉(zhuǎn)換,可以推出如下的坐標(biāo)轉(zhuǎn)換公式: 

    假定:視點(diǎn)S在地輔坐標(biāo)系OT-XTYTZT中的坐標(biāo)為(XS,YS,ZS),地面點(diǎn)A在地輔坐標(biāo)系OT-XTYTZT中的坐標(biāo)為(XM,YM,ZM),像點(diǎn)α在像空間坐標(biāo)系S-xyz中的坐標(biāo)為(x,y,z);其中z=-f。 

    地面點(diǎn)A在坐標(biāo)系S-XYZ中的坐標(biāo)為(XM-XS,YM-YS,ZM-ZS)。經(jīng)過(guò)推導(dǎo),得到整理后的投影變換公式: 

    

    最后進(jìn)行平面相似變換,變換為屏幕坐標(biāo)(xc,yc),其轉(zhuǎn)換方法如下(定義:屏幕顯示分辨率范圍是ROW_MAX*COL_MAX): 

    

    經(jīng)過(guò)取整以后即為屏幕上顯示的二維坐標(biāo)。 

2 FPGA硬件電路組成

    系統(tǒng)硬件包括片內(nèi)的SRAM數(shù)據(jù)緩存區(qū),邏輯控制單元和透視投影變換算法模塊三部分,其核心設(shè)計(jì)為透視投影算法部分。算法硬件加速系統(tǒng)實(shí)現(xiàn)結(jié)構(gòu)框架如圖2所示。 

 

 

    該算法加速模塊對(duì)輸入的地形三維數(shù)據(jù)進(jìn)行相應(yīng)的透視投影變換運(yùn)算。它的功能正是基于FPGA的并行處理機(jī)制和流水線的工作模式來(lái)實(shí)現(xiàn)三維數(shù)據(jù)的高速空間坐標(biāo)轉(zhuǎn)換。系統(tǒng)包括兩組片內(nèi)的SRAM,分別位于數(shù)據(jù)輸入、輸出端及該系統(tǒng)的核心算法單元-透視投影變換運(yùn)算,以及相應(yīng)的時(shí)鐘、邏輯控制模塊。 

    嵌入式處理器通過(guò)片外的FIFO芯片實(shí)現(xiàn)對(duì)硬件加速模塊的數(shù)據(jù)輸入和讀取。FPGA數(shù)據(jù)處理模塊的通信接口則采用乒乓機(jī)制協(xié)調(diào)片內(nèi)的SRAM緩存區(qū)資源與片外FIFO的數(shù)據(jù)交互。即FPGA核心算法模塊讀取1#數(shù)據(jù)時(shí),F(xiàn)IFO寫(xiě)2#數(shù)據(jù);反之,算法模塊讀取2#數(shù)據(jù)時(shí),F(xiàn)IFO寫(xiě)1#數(shù)據(jù)。這種交互模式提高了系統(tǒng)對(duì)地形數(shù)據(jù)的采集、透視投影變換運(yùn)算和二維數(shù)據(jù)的實(shí)時(shí)反饋速度。 

2.1 透視投影變換算法的實(shí)現(xiàn)結(jié)構(gòu)

    透視投影變換最終實(shí)現(xiàn)的是世界坐標(biāo)上的高程數(shù)據(jù)點(diǎn)到視野屏幕坐標(biāo)的二維空間轉(zhuǎn)換。地形三維的建模過(guò)程正是通過(guò)頻繁調(diào)度該算法來(lái)實(shí)現(xiàn)龐大數(shù)據(jù)量的空間轉(zhuǎn)換,因此存在很高的時(shí)間開(kāi)銷(xiāo)。 

    系統(tǒng)正是利用流水線設(shè)計(jì)來(lái)實(shí)現(xiàn)多層數(shù)據(jù)邏輯運(yùn)算的并行處理,從而達(dá)到數(shù)據(jù)的高速緩存和邏輯控制,并最終縮短三維數(shù)據(jù)的處理時(shí)間。針對(duì)FPGA硬件邏輯特點(diǎn),該算法模塊在對(duì)數(shù)據(jù)精度進(jìn)行估計(jì)以后,通過(guò)左移8位來(lái)實(shí)現(xiàn)定點(diǎn)運(yùn)算,大大加速了原算法。內(nèi)部的邏輯設(shè)計(jì)主要涉及運(yùn)算器的運(yùn)用及時(shí)序和觸發(fā)信號(hào)的控制。下面詳細(xì)介紹算法內(nèi)部各個(gè)邏輯單元的實(shí)現(xiàn)。 

2.1.1 向片內(nèi)SRAM寫(xiě)數(shù)據(jù)的電路

    首先說(shuō)明算法數(shù)據(jù)接口的SRAM緩沖區(qū),即每組片外的FIFO對(duì)應(yīng)一個(gè)片內(nèi)的SRAM緩存區(qū)。本文以數(shù)據(jù)輸入段為例說(shuō)明該接口設(shè)計(jì)對(duì)數(shù)據(jù)的存儲(chǔ)和讀取過(guò)程,在FPGA內(nèi)部電路圖截取其接口的一組SRAM來(lái)進(jìn)行描述,如圖3所示。 

 

 

    圖中的din[15:0]表示輸入端FIFO緩存的16位數(shù)據(jù)線,只要FIFO的非空信號(hào)(int_ram)有效,該接口電路就不斷從FIFO中讀取地形數(shù)據(jù),cs為來(lái)自模塊的全局時(shí)鐘信號(hào)。通過(guò)地址發(fā)生器ADDR_1、ADDR_2、ADDR_3產(chǎn)生存儲(chǔ)地址,F(xiàn)DE寄存器分別接收來(lái)自FIFO的地形數(shù)據(jù)。在數(shù)據(jù)寫(xiě)入SRAM的同時(shí),啟動(dòng)數(shù)據(jù)個(gè)數(shù)計(jì)數(shù)器(COUNT),在接收完一個(gè)完整單點(diǎn)的三維數(shù)據(jù)(X、Y、Z坐標(biāo))后,啟動(dòng)計(jì)數(shù)器(COUNT)的第二寄存區(qū)使能信號(hào)CE,用于FDEII接收門(mén)限(Gate)的開(kāi)啟,緩存來(lái)自FDEI的數(shù)據(jù)。在延遲半個(gè)cs時(shí)鐘周期后,COUNT計(jì)數(shù)單元輸出第三寄存區(qū)FDEIII的讀取信號(hào)rd,該信號(hào)用來(lái)保證算法讀取穩(wěn)定和準(zhǔn)確的三維坐標(biāo)數(shù)據(jù)。本文設(shè)計(jì)3個(gè)階段的寄存區(qū)分別實(shí)現(xiàn)的是:FDEI用于存儲(chǔ)FIFO輸出的16位串行數(shù)據(jù);FDEII用于核心算法的3個(gè)并行數(shù)據(jù)的輸出;而FDEIII則實(shí)現(xiàn)三維數(shù)據(jù)的穩(wěn)定讀取,并將可靠的地形數(shù)據(jù)輸入下一核心算法模塊。圖4為該電路的時(shí)序仿真圖。 

 

 

2.1.2 透視投影變換核心算法電路

    通過(guò)對(duì)透視投影變換原理的分析可知,坐標(biāo)轉(zhuǎn)換過(guò)程中涉及空間坐標(biāo)旋轉(zhuǎn),數(shù)學(xué)運(yùn)算上表現(xiàn)為矩陣的乘積。但由于地形三維數(shù)據(jù)空間旋轉(zhuǎn)的復(fù)雜性,實(shí)現(xiàn)過(guò)程中不僅涉及大量的矩陣運(yùn)算,而且要考慮空間轉(zhuǎn)換的方向性,因此在電路的算法設(shè)計(jì)上必須采取一些輔助的方法來(lái)保證數(shù)據(jù)流的正確。數(shù)據(jù)符號(hào)矯正電路、數(shù)據(jù)位截取電路和時(shí)序控制電路是本系統(tǒng)的主要輔助手段,在很大程度上保證了數(shù)據(jù)處理的準(zhǔn)確和高速。 

    (1)運(yùn)算器電路設(shè)計(jì) 

    由數(shù)據(jù)有效位(clk_en)啟動(dòng)的運(yùn)算模塊接收來(lái)自緩存區(qū)的數(shù)據(jù)。進(jìn)入算法模塊的數(shù)據(jù),總共進(jìn)行3次空間坐標(biāo)轉(zhuǎn)換,將來(lái)自世界坐標(biāo)的三維數(shù)據(jù)旋轉(zhuǎn)至屏幕坐標(biāo)的相應(yīng)映射點(diǎn)。該運(yùn)算單元主要涉及大量的乘法運(yùn)算器,通過(guò)空間轉(zhuǎn)換系數(shù)CONST實(shí)現(xiàn)無(wú)符號(hào)乘法運(yùn)算,同時(shí)輸出數(shù)據(jù)標(biāo)志位const_int,多個(gè)乘法器可以并行處理。圖5右為設(shè)計(jì)的標(biāo)志位產(chǎn)生電路,各個(gè)運(yùn)算單元的標(biāo)志位通過(guò)與門(mén)之后產(chǎn)生總的讀取信號(hào)int_all。這里使用一個(gè)讀取請(qǐng)求信號(hào),其原因是多個(gè)讀取標(biāo)志位會(huì)由于信號(hào)延遲問(wèn)題發(fā)生沖突等情況,使讀數(shù)據(jù)混亂,不利于下一步數(shù)據(jù)的讀取存儲(chǔ)。

 

 

    (2)數(shù)據(jù)符號(hào)位矯正電路 

    由于乘法器中采用無(wú)符號(hào)的邏輯運(yùn)算,因此需要對(duì)乘法器輸出值進(jìn)行邏輯加減后的數(shù)據(jù)結(jié)果進(jìn)行符號(hào)位(T_a,T_c)的判斷,并通過(guò)并置符(&)輸出符號(hào)標(biāo)志位(T_mula),對(duì)下一步除法器的輸出結(jié)果進(jìn)行數(shù)據(jù)符號(hào)位的檢測(cè)并矯正,從而實(shí)現(xiàn)有符號(hào)數(shù)據(jù)的運(yùn)算過(guò)程無(wú)符號(hào)化,更加適合FPGA的邏輯結(jié)構(gòu)特點(diǎn),提高硬件邏輯中的數(shù)據(jù)運(yùn)算速率。圖6為矯正電路及其時(shí)序仿真圖。 

 

 

    (3)各運(yùn)算單元的時(shí)序分配 

    流水線的設(shè)計(jì)特別適合高速的數(shù)據(jù)流操作。其最大特點(diǎn)是數(shù)據(jù)流在各個(gè)步驟的處理從時(shí)間上看是連續(xù)的,關(guān)鍵在各個(gè)步驟時(shí)序設(shè)計(jì)的合理安排,尤其對(duì)于復(fù)雜的混合邏輯運(yùn)算的電路,時(shí)序安排不當(dāng),容易造成后級(jí)數(shù)據(jù)丟失或溢出。 

    圖7中的邏輯時(shí)序控制設(shè)計(jì),在綜合片內(nèi)的混合邏輯周期后,實(shí)現(xiàn)了算法中步驟的單周期運(yùn)行,不僅滿(mǎn)足了流水線時(shí)鐘的有序分配,同時(shí)以最少周期實(shí)現(xiàn)單步驟的算法運(yùn)算,極大地提高了整個(gè)系統(tǒng)的實(shí)時(shí)性。 

 

 

3 仿真結(jié)果與說(shuō)明

    應(yīng)用本系統(tǒng)的硬件實(shí)現(xiàn)算法,本文對(duì)同一區(qū)域的地形三維數(shù)據(jù)進(jìn)行了數(shù)據(jù)誤差和時(shí)間損耗測(cè)試。 

3.1 準(zhǔn)確性分析

    根據(jù)FPGA的硬件邏輯特點(diǎn)采取了浮點(diǎn)轉(zhuǎn)定點(diǎn)方法,在整個(gè)地形三維透視投影變換的運(yùn)算中,其前后的結(jié)果數(shù)據(jù)誤差分析如圖8。 

 

 

    圖8(a)為提供測(cè)試的三維地形數(shù)據(jù);圖8(b)為采用軟件設(shè)計(jì)實(shí)現(xiàn)的浮點(diǎn)型透視投影變換算法,X軸、Y軸的數(shù)據(jù)為空間轉(zhuǎn)換后各點(diǎn)對(duì)應(yīng)的二維坐標(biāo);圖8(c)為采用VHDL編程在FPGA上實(shí)現(xiàn)的定點(diǎn)型透視投影變換算法;圖8(d)則是(b)、(c)兩圖各相應(yīng)點(diǎn)的坐標(biāo)數(shù)據(jù)誤差。從中可以得出:(1)即使在地形數(shù)據(jù)高程值大的區(qū)域,其精度誤差也不超過(guò)5個(gè)單位數(shù)值。平均精度誤差數(shù)據(jù):X軸為1.7367,Y軸為2.2183。(2)通過(guò)增加平移仍可繼續(xù)縮小誤差值。 

3.2 時(shí)間損耗分析

    根據(jù)透視投影變換算法,測(cè)試了該算法運(yùn)用軟件編程在ARM系統(tǒng)下的運(yùn)行時(shí)間,并與采用VHDL編程在硬件架構(gòu)下的算法消耗時(shí)間進(jìn)行對(duì)比。測(cè)試環(huán)境:ARM處理器SAMSUNG S3C2410,主頻為203 MHz,DMA傳輸頻率101.4 MHz,F(xiàn)IFO讀寫(xiě)時(shí)鐘頻率101.4 MHz,F(xiàn)PGA時(shí)鐘周期為101 MHz。對(duì)同一地形數(shù)據(jù)的時(shí)間測(cè)試參數(shù)如圖9。圖9(a)為在ARM系統(tǒng)下采用軟件編程運(yùn)行該算法,調(diào)用次數(shù)為55 651時(shí),耗時(shí)13.23 s,如采用本系統(tǒng)的運(yùn)行數(shù)據(jù),則需調(diào)用180 880次,耗時(shí)達(dá)到43 s;圖9(b)則是硬件架構(gòu)下的算法時(shí)間損耗,調(diào)用55 651時(shí),耗時(shí)6.1 ms,調(diào)用180 880次,只需19.8 ms。 

 

 

    實(shí)驗(yàn)結(jié)果表明:采用基于FPGA硬件架構(gòu)的透視投影變換算法,在損失數(shù)據(jù)部分精度的條件下,數(shù)據(jù)運(yùn)行時(shí)間損耗大大縮減,這將有利于提高嵌入式地形三維顯示系統(tǒng)的實(shí)時(shí)性。 

參考文獻(xiàn)

[1] 藍(lán)榮欽,李淑霞,劉陽(yáng),等.地理信息系統(tǒng)的發(fā)展現(xiàn)狀和趨勢(shì)[J].地理空間信息,2007,2(1):8-11. 

[2] David F.Rogers著.計(jì)算機(jī)圖形學(xué)的算法基礎(chǔ).石教英,彭群生譯.北京:機(jī)械工業(yè)出版社,2005. 

[3] Xilinx.Using embedded multipliers in spartan-3 FPGAs.2005,3. 

[4] Uwe Meyer-Baese著.數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn).劉凌譯.北京:清華大學(xué)出版社,2006. 

[5] Xilinx.Using block RAM in spartan-3 generation FPGAs.2005,3. 

[6] GOSLIN G.Using Xilinx FPGAs to design custom digital signal processing devices in proceeding of the DSP.Springer Berlin,2006. 

[7] TREICHLER J,JOHNSON C,LARIMORE M.Theory and design of adaptive filters.Prentice Hall,2001. 

[8] POLTMANN R.Conversion of the delayed LMS algorithm into the LMS algorithm.IEEE signal Processing letters,2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。