FPGA-VIP視頻工程開發(fā)連載2——NAND FLASH讀寫操作工程實(shí)例下載地址:http://pan.baidu.com/s/1hqJx3tMhttp://pan.baidu.com/s/1hqJx3tM
http://pan.baidu.com/s/1hqJx3tM
功能簡(jiǎn)介 本實(shí)例在例程2的基礎(chǔ)上,添加了一個(gè)自定義的NAND FLASH控制器組件,這個(gè)組件也是掛在Qsys系統(tǒng)的Avalon-MM 總線上。NAND FLASH復(fù)雜的底層驅(qū)動(dòng)時(shí)序都由這個(gè)控制器內(nèi)部產(chǎn)生,無(wú)需NIOS II處理器直接參與。NIOS II處理器只需要通過Avalon-MM總線對(duì)相關(guān)寄存器進(jìn)行讀寫就可以實(shí)現(xiàn)NAND FLASH的讀寫。 本實(shí)例和實(shí)例3一樣,有3個(gè)大模塊。 ● Vip.v是頂層模塊,其下例化了兩個(gè)模塊。 ● Sys_ctrl.v模塊中例化了PLL,并且對(duì)輸入PLL的復(fù)位信號(hào)以及PLL鎖定后的復(fù)位信號(hào)進(jìn)行“異步復(fù)位,同步釋放”的處理,確保系統(tǒng)的復(fù)位信號(hào)穩(wěn)定可靠。 ● Vip_qsys.v模塊則是Qsys系統(tǒng)的例化。
在Vip_qsys.v下面,掛著很多外設(shè)組件,也包括我們自己用邏輯搭建的NAND FLASH控制器組件。NAND FLASH控制器組件有3個(gè)模塊,一個(gè)top模塊,其下例化了兩個(gè)子模塊,分別作為Avalon-MM從機(jī)邏輯模塊和Flash控制時(shí)序產(chǎn)生邏輯模塊,如下圖所示。 實(shí)驗(yàn)說(shuō)明 1. 打開光盤目錄“…\prj\vip_ex4”下的工程。 2. 使用Programmer將“…\prj\vip_ex4\output_files”文件夾下的vip.sof文件下載到VIP板中,這是JTAG在線調(diào)試模式,此時(shí)VIP板上的指示燈D1一直處于熄滅狀態(tài)。 3. 系統(tǒng)的程序菜單中找到“NiosII 13.1 Software Build Tools for Eclipse”(簡(jiǎn)稱EDS)并打開。導(dǎo)入“…\prj\vip_ex4\software”文件夾下的軟件工程(包括應(yīng)用工程和BSP工程)。 4. 運(yùn)行應(yīng)用軟件,片刻后,可以看到NiosConsole開始打印如下圖所示的數(shù)據(jù)。完成打印后 LED指示燈D1開始閃爍。在打印窗口中,我們可以看到本實(shí)例的軟件執(zhí)行了4個(gè)主要操作。 ● 擦除NAND FLASH的第1023 Block的數(shù)據(jù)。 ● 讀出剛剛執(zhí)行完擦除操作的NAND FLASH的第1023 Block的第1個(gè)Page數(shù)據(jù)。剛擦除完,都是0xff的數(shù)據(jù)。 ● 產(chǎn)生一組0到255遞增的數(shù)據(jù)寫入到NAND FLASH的第1023 Block的第1個(gè)Page中。
● 寫入完成后,讀出這個(gè)Page的數(shù)據(jù),以此確認(rèn)寫操作是否正確執(zhí)行。
|