基于改進(jìn)型二步索引算法OSD電路的FPGA實(shí)現(xiàn)
如果只存儲(chǔ)字符點(diǎn)陣信息而不存儲(chǔ)‘空格 i,顯然對節(jié)省存儲(chǔ)器資源將有著很大的幫助。為達(dá)到這樣的設(shè)計(jì)目標(biāo),在逐字索引法的基礎(chǔ)上,通過改進(jìn)提出了二步索引算法。
設(shè)第k幅菜單中顯示nk行字符,菜單第i行中顯示li個(gè)字符。其中,nk存儲(chǔ)于寄存器中,li存儲(chǔ)在一段地址長度為nk的字符數(shù)信息存儲(chǔ)器中。在二步索引算法下,通過讀取字符數(shù)信息存儲(chǔ)器中的數(shù)據(jù)以及根據(jù)nk限制讀出的li數(shù)據(jù)個(gè)數(shù),可以確定菜單中各行所顯示的字符的個(gè)數(shù)。第k幅菜單中第i行第j個(gè)字符的編碼信息在存儲(chǔ)器中的地址指針可以根據(jù)公式(3)確定:
讀出字符編碼數(shù)據(jù)Ni×j,仍然通過公式(2)得到相應(yīng)字符在點(diǎn)陣信息存儲(chǔ)器中存儲(chǔ)地址段的首地址指針,從而讀出全部的字符點(diǎn)陣信息。完整的數(shù)據(jù)讀取操作過程如圖2所示。
在二步索引算法中,引入了行顯示字符數(shù)li和菜單顯示字符行數(shù)nk2個(gè)參數(shù),通過nk首先索引菜單中第i行的顯示字符數(shù)li,根據(jù)li控制索引該行第j個(gè)字符編號Ni×j。根據(jù)li可以知道每行顯示的字符數(shù),所以字符編碼信息可以按行順序緊密的存儲(chǔ),即每行存儲(chǔ)的數(shù)據(jù)采用非定長的方式,如圖1(b)所示。與圖1(a)所示的逐字索引法存儲(chǔ)器結(jié)構(gòu)相比,二步索引法在對存儲(chǔ)器資源的節(jié)省方面效果是顯著的。
2 二步索引法OSD電路結(jié)構(gòu)實(shí)現(xiàn)
2.1 字符索引電路實(shí)現(xiàn)
如圖3所示,相比于逐字索引法的電路實(shí)現(xiàn)結(jié)構(gòu),二步索引法的電路實(shí)現(xiàn)結(jié)構(gòu)中增加了字符行寄存器和用于存放行字符數(shù)信息的存儲(chǔ)器。字符行寄存器中存人nk,根據(jù)字符行計(jì)數(shù)器所計(jì)數(shù)據(jù)與nk比較來控制從行字符數(shù)存儲(chǔ)器中讀出的數(shù)據(jù)數(shù)。讀出的行字符數(shù)信息li再用以控制顯示第i行菜單字符所需從字符編碼存儲(chǔ)器中讀出的字符編碼數(shù)據(jù)數(shù)。讀出的字符編碼Ni×j通過地址生成電路轉(zhuǎn)換成相應(yīng)字符的點(diǎn)陣信息在字符點(diǎn)陣ROM中存儲(chǔ)地址段的首地址,從而在字符點(diǎn)陣ROM中索引出相應(yīng)字符的點(diǎn)陣數(shù)據(jù),如此反復(fù),可實(shí)現(xiàn)對全部字符點(diǎn)陣數(shù)據(jù)的索引。
2.2 數(shù)據(jù)輸出控制與層混合疊加電路實(shí)現(xiàn)
從字符點(diǎn)陣ROM中讀取出的字符點(diǎn)陣信息經(jīng)過點(diǎn)陣重組電路的處理后將按字符Cl×Ch順序的點(diǎn)陣信息轉(zhuǎn)換成按菜單行順序的格式存入到輸出緩存中。輸出緩存中數(shù)據(jù)的存儲(chǔ)順序如圖3所示。
輸出緩存能夠存儲(chǔ)整幅菜單的顯示信息,以使菜單生成和菜單輸出顯示2個(gè)過程相互獨(dú)立,從而使得在顯示菜單的同時(shí),可進(jìn)行新菜單內(nèi)容的讀入,保證菜單顯示的連貫勝。輸出緩存容量大小由包含顯示信息最多的一幅菜單決定。
DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY
p2p機(jī)相關(guān)文章:p2p原理
評論