niosii軟核的點(diǎn)陣控制設(shè)計(jì)_第1頁(yè)
niosii軟核的點(diǎn)陣控制設(shè)計(jì)_第2頁(yè)
niosii軟核的點(diǎn)陣控制設(shè)計(jì)_第3頁(yè)
niosii軟核的點(diǎn)陣控制設(shè)計(jì)_第4頁(yè)
niosii軟核的點(diǎn)陣控制設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

SOPC課程設(shè)計(jì)報(bào)告NIOSII軟核的點(diǎn)陣控制設(shè)計(jì)引言當(dāng)今,數(shù)字系統(tǒng)的設(shè)計(jì)可以直接面向用戶的需求,根據(jù)系統(tǒng)功能的要求,從上到下逐層完成相應(yīng)的描述、綜合、優(yōu)化、仿真與驗(yàn)證,直到生成器件。而FPGAFIELDPROGRAMMABLEGATEARRAY,現(xiàn)場(chǎng)可編程門鎮(zhèn)列以設(shè)計(jì)靈活及速度快的特點(diǎn),在數(shù)字專用集成電路的設(shè)計(jì)中得到了廣泛應(yīng)用。一、實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)要求完成的任務(wù)是利用NIOS軟核處理器為核心控制器,在軟核CPU中添加點(diǎn)陣控制接口并搭建對(duì)應(yīng)電路,利用軟件控制點(diǎn)陣的運(yùn)行,在點(diǎn)陣的循環(huán)顯示每個(gè)組員的名字、學(xué)號(hào)等信息。二、點(diǎn)陣顯示原理1點(diǎn)陣模塊說(shuō)明此設(shè)計(jì)采用4塊88的點(diǎn)陣塊組成1616的點(diǎn)陣顯示模塊1188點(diǎn)陣塊工作原理如圖1所示。88點(diǎn)陣塊工作方式Q端加正電壓,COM端接地時(shí)發(fā)光二管點(diǎn)亮。例如,當(dāng)COM8接地且Q1Q8分別接高電平時(shí),第一行亮。同理,當(dāng)COM7接地,Q1Q8分別接高電平時(shí),第二行亮。依此類推。當(dāng)Q5端加高電平時(shí),分別讓COM1COM8接地,第一列亮。其它列依此類推。121616點(diǎn)陣模塊用4塊88的點(diǎn)陣塊組成1616的點(diǎn)陣模塊顯示漢字,連接關(guān)系如圖2所示。Q0Q15成為點(diǎn)陣塊的行線,COM0COM15形成點(diǎn)陣塊的列線。13行列驅(qū)動(dòng)由循環(huán)計(jì)數(shù)器輸出經(jīng)放大后的驅(qū)動(dòng)點(diǎn)陣,形成動(dòng)態(tài)掃描,分別控制一列中的每個(gè)燈,當(dāng)列線發(fā)出信號(hào)后,行線同時(shí)發(fā)出數(shù)據(jù),這樣就將一個(gè)漢字由左到右分成16列。在完成各列的同時(shí),行線發(fā)出行數(shù)據(jù),一個(gè)循環(huán)就可以將一個(gè)漢字完整的重現(xiàn)在1616的點(diǎn)陣模塊上。本實(shí)驗(yàn)主要完成漢字字符在LED上的顯示,1616掃描LED點(diǎn)陣的工作原理與8位掃描數(shù)碼管類似,只是顯示的方式與結(jié)果不一樣而已。下面就本實(shí)驗(yàn)系統(tǒng)的1616點(diǎn)陣的工件原理做一些簡(jiǎn)單的說(shuō)明。1616點(diǎn)陣由此256個(gè)LED通過(guò)排列組合而形成16行16列的一個(gè)矩陣式的LED陣列,俗稱1616點(diǎn)陣。單個(gè)的LED的電路如下圖111所示圖111單個(gè)LED電路圖由上圖可知,對(duì)于單個(gè)LED的電路圖當(dāng)RN輸入一個(gè)高電平,同時(shí)CN輸入一個(gè)低電平時(shí),電路形成一個(gè)回路,LED發(fā)光。也就是LED點(diǎn)陣對(duì)應(yīng)的這個(gè)點(diǎn)被點(diǎn)亮。1616點(diǎn)陣也就是由16行和16列的LED組成,其中每一行的所有16個(gè)LED的RN端并聯(lián)在一起,每一列的所有16個(gè)LED的CN端并聯(lián)在一起。通過(guò)給RN輸入一個(gè)高電平,也就相當(dāng)于給這一列所有LED輸入了一個(gè)高電平,這時(shí)只要某個(gè)LED的CN端輸入一個(gè)低電平時(shí),對(duì)應(yīng)的LED就會(huì)被點(diǎn)亮。具體的電路如下圖112所示圖1121616點(diǎn)陣電路原理圖在點(diǎn)陣上顯示一定有字符是根據(jù)其字符在點(diǎn)陣上的顯示的點(diǎn)的亮滅來(lái)表示的如下圖113所示圖113字符在點(diǎn)陣上的顯示在上圖中,顯示的是一個(gè)“漢”字,只要將被“漢”字所覆蓋的區(qū)域的點(diǎn)點(diǎn)亮,則在點(diǎn)陣中就會(huì)顯示一個(gè)“漢”字。根據(jù)前面我們所介紹的點(diǎn)陣顯示的原理。當(dāng)我們選中第一列后,根據(jù)要顯示漢字的第一列中所需要被點(diǎn)亮的點(diǎn)對(duì)應(yīng)的RN置為高電平,則在第一列中需要被點(diǎn)亮的點(diǎn)就會(huì)被點(diǎn)亮。依此類推,顯示第二列、第三列第N列中需要被點(diǎn)亮的點(diǎn)。然后根據(jù)人眼的視覺(jué)原理,將每一列顯示的點(diǎn)的間隔時(shí)間設(shè)為一定的值,那么我們就會(huì)感覺(jué)顯示一個(gè)完整的不閃爍的漢字。同時(shí)也可以按照這個(gè)原理來(lái)顯示其它的漢字。下在上圖中,在系統(tǒng)時(shí)鐘的作用下,首先選取其中的一列,將數(shù)據(jù)輸入讓這列的LED顯示其數(shù)據(jù)(當(dāng)為高電平時(shí)LED發(fā)光,否則不發(fā)光)。然后選取下一列來(lái)顯示下一列的數(shù)據(jù)。當(dāng)完成一個(gè)1616點(diǎn)陣的數(shù)據(jù)輸入時(shí),即列選擇計(jì)數(shù)到最后一列后,再?gòu)牡谝涣虚_始輸入相同的數(shù)據(jù)。這樣只要第一次顯示第一列的數(shù)據(jù)和第二次顯示第一列的數(shù)據(jù)的時(shí)間足夠短,那么人的眼睛就會(huì)看到第一列的數(shù)據(jù)總是顯示的,而沒(méi)有停頓現(xiàn)象。同樣的道理其它列也是這樣,直到顯示下一個(gè)漢字。在實(shí)際的運(yùn)用當(dāng)中,一個(gè)漢字是由多個(gè)八位的數(shù)據(jù)來(lái)構(gòu)成的,那么要顯示多個(gè)漢字的時(shí)候,這些數(shù)據(jù)可以根據(jù)一定的規(guī)則存放到存儲(chǔ)器中,當(dāng)要顯示這個(gè)漢字的時(shí)候只要將存儲(chǔ)器中對(duì)應(yīng)的數(shù)據(jù)取出顯示即可。本實(shí)驗(yàn)的示例程序依次顯示的是“歡迎使用嵌入式SOC開發(fā)系統(tǒng)”。數(shù)據(jù)量不大,所以沒(méi)有放入存儲(chǔ)器中,而在程序中直接輸入對(duì)應(yīng)的一個(gè)16位的數(shù)據(jù)。示例程序的字庫(kù)數(shù)據(jù)的格式如下圖115所示圖115字庫(kù)格式圖1171616點(diǎn)陣顯示的電路框圖在此實(shí)驗(yàn)中,1616點(diǎn)陣由4個(gè)88點(diǎn)陣組成,考慮到LED電流功耗與FPGA電流功耗的關(guān)系,在實(shí)驗(yàn)的電路中加入驅(qū)動(dòng)電路。具體電路如下圖116所示。與FPGA的管腳連接如表111所示。圖1161616點(diǎn)陣電路圖信號(hào)名稱對(duì)應(yīng)FPGA管腳名說(shuō)明DOTC0W19點(diǎn)陣的第1列輸入端口DOTC1U17點(diǎn)陣的第2列輸入端口DOTC2R8點(diǎn)陣的第3列輸入端口DOTC3T8點(diǎn)陣的第4列輸入端口DOTC4U7點(diǎn)陣的第5列輸入端口DOTC5W8點(diǎn)陣的第6列輸入端口DOTC6W10點(diǎn)陣的第7列輸入端口DOTC7Y11點(diǎn)陣的第8列輸入端口DOTC8AB18點(diǎn)陣的第9列輸入端口DOTC9AA18點(diǎn)陣的第10列輸入端口DOTC10AB20點(diǎn)陣的第11列輸入端口DOTC11AA20點(diǎn)陣的第12列輸入端口DOTC12AB21點(diǎn)陣的第13列輸入端口DOTC13W17點(diǎn)陣的第14列輸入端口DOTC14Y15點(diǎn)陣的第15列輸入端口DOTC15Y13點(diǎn)陣的第16列輸入端口DOTR0AD8點(diǎn)陣的第1行輸入端口DOTR1AC9點(diǎn)陣的第2行輸入端口DOTR2AD10點(diǎn)陣的第3行輸入端口DOTR3AC10點(diǎn)陣的第4行輸入端口DOTR4AD11點(diǎn)陣的第5行輸入端口DOTR5AC11點(diǎn)陣的第6行輸入端口DOTR6AD12點(diǎn)陣的第7行輸入端口DOTR7AC12點(diǎn)陣的第8行輸入端口DOTR8AD4點(diǎn)陣的第9行輸入端口DOTR9AC5點(diǎn)陣的第10行輸入端口DOTR10AD5點(diǎn)陣的第11行輸入端口DOTR11AC6點(diǎn)陣的第12行輸入端口DOTR12AD6點(diǎn)陣的第13行輸入端口DOTR13AC7點(diǎn)陣的第14行輸入端口DOTR14AD7點(diǎn)陣的第15行輸入端口DOTR15AC8點(diǎn)陣的第16行表11116X16點(diǎn)陣與FPGA的管腳連接表三、設(shè)計(jì)步驟1下面我們建立一個(gè)點(diǎn)陣顯示的工程1選擇開始程序ALTERAQUARTUSII51,運(yùn)行QUARTUSII軟件?;蛘唠p擊桌面上的QUARTUSII的圖標(biāo)運(yùn)行QUARTUSII軟件,出現(xiàn)如圖13所示。圖13QUARTUSII軟件運(yùn)行界面2選擇軟件中的菜單FILENEWPROJECTWIZARD,新建一個(gè)工程。如圖14所示。圖14新建工程對(duì)話框3)點(diǎn)擊圖14中的NEXT進(jìn)入工作目錄,工程名的設(shè)定對(duì)話框如圖15所示。第一個(gè)輸入框?yàn)楣こ棠夸涊斎肟?,用戶可以輸入如E/EDA等工作路徑來(lái)設(shè)定工程的目錄,設(shè)定好后,所有的生成文件將放入這個(gè)工作目錄。第二個(gè)輸入框?yàn)楣こ堂Q輸入框,第三個(gè)輸入框?yàn)轫攲訉?shí)體名稱輸入框。用戶可以設(shè)定如EXP1,一般情況下工程名稱與實(shí)體名稱相同。使用者也可以根據(jù)自已的實(shí)際情況來(lái)設(shè)定工程名和頂層文件名。注本處的頂層文件名必須和程序的實(shí)體名一致,否則編譯會(huì)出錯(cuò)。圖15指定工程名稱及工作目錄4)點(diǎn)擊NEXT,進(jìn)入下一個(gè)設(shè)定對(duì)話框,按默認(rèn)選項(xiàng)直接點(diǎn)擊NEXT進(jìn)行器件選擇對(duì)話框。如圖16所示。這里我們以選用CYCLONEII系列芯片EP2C35F672C8為例進(jìn)行介紹。用戶可以根據(jù)使用的不同芯片來(lái)進(jìn)行設(shè)定。圖16器件選擇界面首先在對(duì)話框的左上方的FAMILY下拉菜單中選取CYCLONEII,在中間右邊的SPEEDGRADE下拉菜單中選取8,在左下方的AVAILABLEDEVICES框中選取EP2C35F672C8,點(diǎn)擊NEXT完成器件的選取,進(jìn)入EDATOOL設(shè)定界面如圖17所示。圖17EDATOOL對(duì)話框5)按默認(rèn)選項(xiàng),點(diǎn)擊NEXT出現(xiàn)新建工程以前所有的設(shè)定信息,如圖18所示,點(diǎn)擊FINISH完成新建工程的建立。圖18新建工程信息2硬件模塊添加通過(guò)SOPCBUILDER添加工程所需組件。在QUARTUSII中,點(diǎn)擊工具欄中右側(cè)的圖標(biāo),或者通過(guò)單擊菜單“TOOLSSOPCBUILDER”都可以啟動(dòng)它。1)添加NIOSIICPUCORE雙擊左側(cè)選擇組件欄中的NIOSIIPROCESSOR,彈出配置對(duì)話框2)添加RAM添加內(nèi)部RAM選擇MEMORYONCHIPMEMORY,改名RAM;3)添加JTAGUART雙擊左側(cè)選擇組件欄中INTERFACEPROTOCOLSSERIALJTAGUART。選用所有的默認(rèn)設(shè)置,點(diǎn)擊“FINISH”完成添加,如下圖所示。4)添加PIO在左組件欄中添加GPIO。因?yàn)橐ㄖ?個(gè)按鍵輸入I/O口,所以設(shè)定數(shù)據(jù)寬度“WIDTH”為4,設(shè)定方向?yàn)椤癐TPUTPORTSONLY”,點(diǎn)擊“FINISH”,如下圖所示。依次添加下圖PIO5)添加完元件后,就要為每個(gè)外設(shè)分配基地址以及中斷號(hào)(IRQ)。SOPCBUILDER給我們提供了配置這兩個(gè)的命令,通過(guò)這兩個(gè)命令就可分別快速簡(jiǎn)單分配外設(shè)基地址和中斷。下圖是添加完所有組件后的SOPCBUILDER配置情況。然后生成硬件系統(tǒng)。6)設(shè)計(jì)頂層文件在QUARTUSII中的圖形編輯界面中進(jìn)行管腳連接鎖定工作將生成模塊以圖標(biāo)形式添加到BDF文件中于QUARTUS界面NEWBLOCKDIAGRAM/SCHEMATICFILE,于彈出畫圖界面雙擊空白彈出添加界面完成模塊的輸入輸出接口連接7)引腳鎖定和編譯新建引腳鎖定命令文件,F(xiàn)ILENEWTCLSCRIPTFILE,彈出新窗口,將引腳鎖定文件輸入進(jìn)去,通過(guò)查閱引腳文件從而對(duì)相應(yīng)輸入輸出對(duì)應(yīng)到硬件引腳上。然后編譯工程PROCESSSTARTCOMPILATION。8)配置FPGA這里要打開實(shí)驗(yàn)板電源、連接USB下載線將生成的SOF文件下載到目標(biāo)板上。步驟TOOLSPROGRAMMER目標(biāo)文件夾下載,選擇USBBLASTER模式,通過(guò)JTAG口對(duì)FPGA進(jìn)行配置;然后點(diǎn)START,進(jìn)度達(dá)到100便可將其關(guān)閉9)NIOSII軟件設(shè)計(jì)A打開NIOSIIIDE,新建工程FILENEWPROJECT,選擇C/CAPPLICATION,BROWSE選擇工程里面的PTF后綴文件,選擇HELLOWORLDSMALLFINISH。B添加C主程序文件選中工程右擊NEWNIOSIIC/CAPPLICATION,輸入程序。完成程序的添加后右擊工程BUILDERPROJECTD對(duì)工程編譯。C選擇RUNRUN,系統(tǒng)自動(dòng)檢測(cè)JTAG連接電纜于彈出窗口MAIN中選中工程,在TARGETCONNECTION選擇電纜USBBLASTERRUN,觀察實(shí)驗(yàn)結(jié)果。四、程序文件下面是引用庫(kù)LIBRARYIEEE庫(kù)函數(shù)USEIEEESTD_LOGIC_1164ALL定義了STD_LOGIC數(shù)據(jù)類型及相應(yīng)運(yùn)算USEIEEESTD_LOGIC_ARITHALL定義了SIGNED和UNSIGNED數(shù)據(jù)類型、相應(yīng)運(yùn)算和相關(guān)類型轉(zhuǎn)換函數(shù)USEIEEESTD_LOGIC_UNSIGNEDALL定義了一些函數(shù),可以使STD_LOGIC_VECTOR類型被當(dāng)作符號(hào)數(shù)或無(wú)符號(hào)數(shù)一樣進(jìn)行運(yùn)算ENTITYEXP11ISEXP11為實(shí)體名PORTCLKINSTD_LOGIC時(shí)鐘輸入KEYCOUTSTD_LOGIC_VECTOR15DOWNTO0點(diǎn)陣列控制KEYROUTSTD_LOGIC_VECTOR15DOWNTO0點(diǎn)陣行顯示ENDEXP11結(jié)束實(shí)體ARCHITECTUREBEHAVEOFEXP11ISBEHAVE為結(jié)構(gòu)體名SIGNALCDOUNTSTD_LOGIC_VECTOR3DOWNTO0信號(hào)量表示列掃描頻率SIGNALDOUNTSTD_LOGIC_VECTOR8DOWNTO0計(jì)數(shù),SIGNALSSTD_LOGIC_VECTOR3DOWNTO0單個(gè)漢字的掃描周期BEGINPROCESSCLK顯示時(shí)序控制進(jìn)程1BEGIN以BEGIN為標(biāo)志開始結(jié)構(gòu)體的描述IFCLKEVENTANDCLK1THEN上升沿DOUNTKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYR

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論