SOPC試驗(yàn)報(bào)告不含綜合試驗(yàn)_第1頁(yè)
SOPC試驗(yàn)報(bào)告不含綜合試驗(yàn)_第2頁(yè)
SOPC試驗(yàn)報(bào)告不含綜合試驗(yàn)_第3頁(yè)
SOPC試驗(yàn)報(bào)告不含綜合試驗(yàn)_第4頁(yè)
SOPC試驗(yàn)報(bào)告不含綜合試驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、#SOPC系統(tǒng)搭建實(shí)驗(yàn)步驟:一、系統(tǒng)模塊設(shè)計(jì)、建立Quartus工程設(shè)定工程目錄、工程名、選擇器件等;建立一個(gè)與工程名相同的頂層圖形設(shè)計(jì)文件;將兩個(gè)相關(guān)文件夾拷到工程目錄下;、進(jìn)入 SOPC Builde,搭建 Nios2系統(tǒng)模塊確定FPGA芯片型號(hào)和和系統(tǒng)工作頻率;添加Nios2處理器并配置;添加JTAG UART調(diào)試模塊;添加SDRAM控制器;添加Time core并配置;添加UART并配置;添加PIO Core,配置為4位輸出,控制臺(tái)上的 4個(gè)LED燈;添加 CH452_controllerIPcore;添加自主IPcore( PWM);選擇自動(dòng)分配地址和中斷號(hào);設(shè)定CPU啟動(dòng)地址和異常

2、處理地址;Gen erate 生成 Nios2 模塊;四、在Quartus頂層圖形設(shè)計(jì)文件中添加(insert symbol) Nios2 系統(tǒng)模塊;添加alt_pll并配置;添加Timer_out輔助電路;添加(in sert symbol) in put、output > bidir 引腳并連線(xiàn);設(shè)定未用引腳狀態(tài)為三態(tài),編譯工程; 進(jìn)行引腳分配(如下所示); 再次編譯;下載.sof文件下為引腳分配示意圖:"aiHR-*rilN 一 r / Hri17 r «! 1 I |ll1ila 4i" Ji-fi常k曾 口 N 4 _4 二二丄:3 0尊邑tifi

3、二hpse”E»he*F»ru|e hiUMiYTIKdri inyiiiA 屮t-E«Rpj*i;MM_gs卜-mj ma1-T.p*_lmqXfU沖:*tjii皐 j*iynia+*.U./h-wwSKur.叫rn-vdnn.c4M->Ih£i'MpMF2N0卜5Al-riVltLWd-;-1 時(shí) l¥TTL<do#札|+lMmhicaw吟bh.,piaN訥,詐JWkWthAK WplIJ如!=曲軸yFHL"nunFH-rjpLJKillvrnil W -皿宀Ji.常NjS I V LWtliailid H |

4、YIH. .Mj*jEH 7S M LVlil-SdlWjWfc/MpurTMfilYin.h*>ji-rfnil >«*,i j* ixmow:'91¥1l.rTn.<ds#?i 聲 e .iMrq a*一j*»rl4嚴(yán)fa 4i j r qYI 幾 kMh ) 、nm小4麗申屮 j r*iyTa*?a#J/MJI JH"J 呻i ?*-J!Ml* iltfl里* 如述:g J* h-XI « g jMhan1町社加甲匱I I , M N fit/H | iwwf V.> IIQb 4ir p-B TK.aiE

5、< ImIi2 2 胡4 -4 d乙2 * Pff :1心5* "嚴(yán)二* MJ(叮=5戸虬怛ni-4*_rt» £ ,duW4沖-:ew.aiPj 叫H三fM_J. Jtaraci耐戸.ailM*"H-l1M_T初町4刖豈恤皿1 *-*151 比沖|沖I卄川|HMjnUCH 1油|!TfasJC'3bMiTLifcJfah K> v» |Hji/k-Ml VTl IMnAI 亠JriT "iF Fi t I Hpj* r2-MurTL ifalfeJ ” i I iHjfI和MaJ-Phrtl.pU4 =.嚴(yán) ni

6、 | |niyf ? Z ! I 'Z.> *TlL I dhuC M-JKfcH|ll -it"rtrrjrtrtJlX"0-CZPE翠*p;M;gr:-W好wjn2?->nXlWr*!14bijfj二 AdhJTH. 1住甘:MHN”gtjHH FJPLMJ4 5Rl>1L1-ClA i.JgbiJOi MhAi沖MN JjiAHHjafBi fcii WhJ:mIM ePI flRyRiEMij-OJ|«Buj»Al jau. 111. 1i心、產(chǎn)耳>JpA刊Ji 口pi ja1 4 EILI HM 13»

7、亠:.”.iu*iA JM.Jhe .1 |bd.M'l系統(tǒng)搭建完畢后的硬件核截圖:實(shí)驗(yàn)小結(jié):系統(tǒng)搭建其實(shí)是本次實(shí)驗(yàn)中最難倒我們的部分,主要是在搭建過(guò)程中我們組與老師的進(jìn)度脫節(jié), 以至于出現(xiàn)了不切實(shí)際的設(shè)計(jì)部分而我們又不自知。 這帶來(lái)的后果則是 我們?cè)谧龊罄m(xù)的實(shí)驗(yàn)中頻頻遭遇問(wèn)題而難以從代碼和設(shè)置上解決,這個(gè)影響甚至持續(xù)到UART實(shí)驗(yàn)部分。好在我們?cè)谧詈笸耆拚讼到y(tǒng)的設(shè)置問(wèn)題也檢查了引腳的正確性,最終 使用了正確的系統(tǒng)完成了后續(xù)的實(shí)驗(yàn)。#基本實(shí)驗(yàn)實(shí)驗(yàn)步驟:1. 建立軟件工程 test ,并與硬件系統(tǒng)綁定2. 選擇 “hello world ”模板,設(shè)系統(tǒng)庫(kù)屬性,添加 #include

8、<system.h> 添加 #include <altera_avalon_pio_regs.h>3. builder 工程,有錯(cuò)則修改,直到正確4. run 程序,調(diào)試信息窗內(nèi)應(yīng)顯示 “Hello from Nios II! ”5. 打開(kāi)System.h ”,查看系統(tǒng)硬件信息,熟悉相關(guān)內(nèi)容打開(kāi) altera_avalon_pio_regs.h 熟悉 PIO 控制方法6. 修改程序,使調(diào)試信息窗內(nèi)顯示出和實(shí)驗(yàn)學(xué)生相關(guān)的信息,例如 “Hellofrom 12070005! ”7. 添加程序,通過(guò) PIO 控制 4 個(gè) LED 閃爍8. 運(yùn)行程序,觀察調(diào)試信息窗內(nèi)顯示內(nèi)容和

9、實(shí)驗(yàn)臺(tái) LED 現(xiàn)象,滿(mǎn)足要求后, 整理獲得實(shí)驗(yàn)報(bào)告使用的代碼和截圖,思考如何構(gòu)建測(cè)試程序的流程圖#i nclude <stdio.h>#i nclude <system.h>#in elude <altera_aval on _pio_regs.h>int mai n()prin tf("13073108 13073113'n ”);while(1)IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0); usleep(1000000);IOWR_ALTERA_AVALON_PIO_DATA(LED_PI

10、O_BASE, 0xf); usleep(1000000);return 0;開(kāi)始輸出“ 13073108 13073113設(shè)置無(wú)限循環(huán)設(shè)置LED狀態(tài)設(shè)置LED顯示時(shí)間實(shí)驗(yàn)小結(jié):基本實(shí)驗(yàn)其實(shí)沒(méi)什么好說(shuō)的,畢竟是為后續(xù)的實(shí)驗(yàn)熟悉編譯環(huán)境而設(shè)置的實(shí)驗(yàn),本身并沒(méi)有什么難度。 有意思的是盡管我們的系統(tǒng)在搭建之初是存在很大問(wèn)題的,但是基本實(shí)驗(yàn)卻憑借有缺陷的設(shè)計(jì)無(wú)障礙地完成了,這點(diǎn)知道撰寫(xiě)報(bào)告時(shí)我才發(fā)現(xiàn)。相比個(gè)中原因可能是基本實(shí)驗(yàn)涉及硬件核功能部分不多。# 鍵盤(pán)控制部分實(shí)驗(yàn)步驟:1. 建立軟件工程-disp&key,并與硬件系統(tǒng)綁定2. 選擇hello world ”模板,設(shè)系統(tǒng)庫(kù)屬性,添加 #i

11、nclude <system.h>3. run程序,調(diào)試信息窗內(nèi)應(yīng)顯示 Hello from Nios II! ”4. 復(fù)制相關(guān)文件夾下define.h到工程目錄,查看并理解相關(guān)內(nèi)容;查看并理解CH452_CORE使用說(shuō)明復(fù)制粘貼相關(guān)文件夾下的測(cè)試?yán)?,解析代碼結(jié)構(gòu)與功能5. 修改程序,使調(diào)試信息窗內(nèi)顯示出和實(shí)驗(yàn)學(xué)生相關(guān)的信息,例如 DISP and KEY test from 12070005 !”6. builder工程,有錯(cuò)則修改,直到正確7. 運(yùn)行程序,觀察數(shù)碼管顯示現(xiàn)象8. 修改程序,顯示學(xué)號(hào)(例如12070005),運(yùn)行程序,觀察數(shù)碼管顯示現(xiàn)象實(shí)驗(yàn)代碼:#include

12、 <stdio.h>#include <system.h>#include "alt_types.h"#include <define.h>#include <altera_avalon_CH452_regs.h>#include <altera_avalon_PIO_regs.h>void disp_init();void we_ch452_comand(alt_u16 data);void ch452_init();void delay(alt_u32 delay_data);void close_disp_k

13、ey();void open_disp_key();void KeyDownISR();void disp_init()we_ch452_comand(CH452_DIG0|3);we_ch452_comand(CH452_DIG1|1);we_ch452_comand(CH452_DIG2|8);we_ch452_comand(CH452_DIG3|0);we_ch452_comand(CH452_DIG4|1);we_ch452_comand(CH452_DIG5|3);we_ch452_comand(CH452_DIG6|7);we_ch452_comand(CH452_DIG7|0);

14、 void close_disp_key()we_ch452_comand(CH452_SYSOFF);void open_disp_key()we_ch452_comand(CH452_SYSON2);void delay(alt_u32 delay_data)usleep(delay_data);void we_ch452_comand(alt_u16 data)alt_u16 temp=IORD_ALTERA_AVALON_CH452_STATUS(CH452_BASE);while (temp&0x0001)=1) temp=IORD_ALTERA_AVALON_CH452_S

15、TATUS(CH452_BASE);IOWR_ALTERA_AVALON_CH452_INSTRACTION(CH452_BASE, data); delay(1000); /wait ch452 okalt_u8 keyvalue=0,flag=0;void KeyDownISR(void* context, alt_u32 id)keyvalue=IORD_ALTERA_AVALON_CH452_KEY_DATA(CH452_BASE); flag=1;void ch452_init()we_ch452_comand(CH452_SYSON2);/open disp & key w

16、e_ch452_comand(CH452_BCD); /BCD disp mode IOWR_ALTERA_AVALON_CH452_IRQ_MASK(CH452_BASE, 1);/enable key irq alt_irq_register(CH452_IRQ, NULL, KeyDownISR);int main()printf("Hello from Nios II!n");ch452_init();disp_init();while (1)if(flag=1) prin tf("regO=%lxn",keyvalue); flag=O;clo

17、se_disp_key(); delay(IOOOO);ope n_disp_key(); delay(10000);return 0;無(wú)限循環(huán)實(shí)驗(yàn)小結(jié): 實(shí)驗(yàn)的重點(diǎn)在于讀懂新的 ch452 的操作語(yǔ)句使用方法, 所幸老師在這方面的 講解十分詳細(xì), 我們很快通過(guò)老師的指導(dǎo)和對(duì)于實(shí)驗(yàn)流程及代碼的理解便完成了鍵盤(pán)控制顯 示實(shí)驗(yàn)。主要也是指導(dǎo)書(shū)內(nèi)容十分詳盡,以至于我們的實(shí)驗(yàn)也沒(méi)遇到什么大問(wèn)題。#UART一、實(shí)驗(yàn)步驟:1建立軟件工程-UART并與硬件系統(tǒng)綁定2. 選擇“hello world模板,設(shè)系統(tǒng)庫(kù)屬性,添加#include <system.h>3. run程序,調(diào)試信息窗內(nèi)應(yīng)顯示“

18、 Hello from Nios II! ”4. 復(fù)制粘貼相關(guān)文件夾下的測(cè)試?yán)?,解析代碼結(jié)構(gòu)與功能5. 修改程序,使調(diào)試信息窗內(nèi)顯示出和實(shí)驗(yàn)學(xué)生相關(guān)的信息,“UARTtest from 130731 13073108 13073113! ”6. 修改程序,alt_u8 tx_buffer1O=“ wa”d為aalt_u8 tx_buffer ? ? =n” 形式7. builder 工程,出現(xiàn) error 則修改程序直到正確。8. PC上運(yùn)行 串口助手”,完成相應(yīng)設(shè)置9運(yùn)行SOPC程序,觀察IDE和串口助手”顯示內(nèi)容,分析實(shí)驗(yàn)現(xiàn)象10.通過(guò) 串口助手”分別發(fā)送A123#、#,觀察IDE和 串

19、口助手”顯示內(nèi)容,分析實(shí)驗(yàn)現(xiàn)象二、程序清單#include <stdio.h>#include <system.h>#include <altera_avalon_pio_regs.h>#include <altera_avalon_timer_regs.h>#include <altera_avalon_uart_regs.h>#include <alt_types.h>/中斷接收,查詢(xún)發(fā)送alt_u16 aaa=0;alt_u8 i=0,j=0,k=0;alt_u8 flag=0,err_cmd=0;alt_u8 tx

20、_buffer20="1307310813 waitdatan"alt_u8 tx_err_buffer22="1307310813command errn"alt_u8 rx_buffer20;alt_u8 rx_data;void rx_uart_interrupt_server(void*context,alt_u32 id)rx_data=IORD_ALTERA_AVALON_UART_RXDATA(RS232_BASE);if (rx_data='#')&(j!=0) flag=1;j=0;else if (rx_dat

21、a='#')&(j=0) err_cmd=1;else rx_bufferj=rx_data;j+; void clr_rxbuffer()for (k=0;k<=19;k+) rx_bufferk=0; void init_uart()alt_irq_register(RS232_IRQ,NULL,rx_uart_interrupt_server);IOWR_ALTERA_AVALON_UART_CONTROL(RS232_BASE,ALTERA_AVALON_UART_CONTROL_RRDY_MSK );void send_wait_data()for (i

22、=0;i<=19;i+) aaa=IORD_ALTERA_AVALON_UART_STATUS(RS232_BASE)while(aaa&ALTERA_AVALON_UART_STATUS_TRDY_MSK)=0)aaa=IORD_ALTERA_AVALON_UART_STATUS(RS232_BASE);IOWR_ALTERA_AVALON_UART_TXDATA(RS232_BASE, tx_bufferi);void send_err_data()for (i=0;i<=21;i+) aaa=IORD_ALTERA_AVALON_UART_STATUS(RS232_B

23、ASE)5while(aaa&ALTERA_AVALON_UART_STATUS_TRDY_MSK)=0)aaa=IORD_ALTERA_AVALON_UART_STATUS(RS232_BASE);IOWR_ALTERA_AVALON_UART_TXDATA(RS232_BASE, tx_err_bufferi);int main()init_uart();clr_rxbuffer();printf("uart_tx Hello from 1307310813n");while (1)send_wait_data();usleep(3000000);if (fla

24、g=1) for (k=0;k<=19;k+) printf("%x ",rx_bufferk); flag=0;printf(" rx datan");clr_rxbuffer();if (err_cmd=1)err_cmd=O; prin tf("error rx data' n"); sen d_err_data(); return 0;流程圖:開(kāi)始NErr CMD=1?YN輸出錯(cuò)誤信息Flag=1?K>19?K=k+1測(cè)試結(jié)果與分析:氐L UB: PlUUM 陰 - 1!«_ i L TIPi D

25、i3l_aAET_TM:i IT A | BXL91_lBi5E.Llhll MLCid* 、心1 JliTm-也m(>ri amiem*11med cst Elna Itrtll_41 IklJaj ZLVfftmar rr ke4 4 1 11:ir *< Wil- ru-«vf I niiw inrn 0 nr.滬,iBk9 nrhjaiwrs滄ia 古 yi<iti.i4 >dJa_p<LI. c 1 j jl JnlJyla ii vw3WbnU-mMB.WT-VrwnvivarH,MiP iLXK- MbMJLL-nUdL JkJALKJUK

26、T dF KUJ Tj匸-kJtM:_«F_1T1 Sf BT I):w< 申! It >:«rrirr «i» III Tl 血:蠻1 I:t vtrrTT 1 hBUlia-ltESiLMi-l ifH IM Clt 審砂 WtIM 4t ftffl-C 44$ 皿 <'* rwai- s Huhn>E> 必 ElJ-pM-Lv «<|4.J'S<4Ok rtf* 3a* uniimh * mh.ih*-iui帀# 士43«4 if4ih W,.d -iSCfiri b丿I

27、 舉& |SWL*.* :uLlKl 了K 曲 lritl-l_;FH!|.l r*hT>4«4! -Flti; . luptf Lijli jt ZuLll ?。篕i M3 U14j-KLdl E -qLIllr-NM *lti KS*燈I:# 広門(mén)-耳屮拿呵Ilf)晉珂ir iu*aMi:iI fH lte*ftjfe>,*11l!1i*MI J,i£ LBiXd I *WK * n Xi Hat fax I IQ I ? e t*irhprnrf nrabufFvr i.|在串口助手的信息框中不斷顯 1307310813 waitdata在輸入了

28、0后程序顯示了 error data ;在輸入了學(xué)號(hào)后程序顯示了學(xué)號(hào)各位的 BCD碼;在實(shí)驗(yàn)過(guò)程中出現(xiàn)了硬件連接以及代碼沒(méi)有錯(cuò)誤, 但是在串口助手上總是無(wú)法顯示程序中編寫(xiě)的信息的問(wèn)題, 經(jīng)檢查是由于在引腳分配的 過(guò)程中,輸入與輸出引腳分配順序發(fā)生了顛倒, 導(dǎo)致數(shù)據(jù)無(wú)法正確輸 出,將輸入輸出引腳進(jìn)行修正之后, 在串口助手上即可正確的顯示提 前編寫(xiě)的信息。小結(jié):在實(shí)驗(yàn)過(guò)程中多次檢查了程序中的錯(cuò)誤, 然而試驗(yàn)中的問(wèn)題并 沒(méi)有出現(xiàn)在軟件方面, 而是在硬件上引腳的分配出現(xiàn)了問(wèn)題, 導(dǎo)致在 這項(xiàng)實(shí)驗(yàn)上浪費(fèi)了很多時(shí)間,這也從側(cè)面證明了 sopc 技術(shù)試驗(yàn)中, 每一個(gè)細(xì)節(jié)的重要性。#Timer一、實(shí)驗(yàn)步驟 :

29、1建立軟件工程-Timer,并與硬件系統(tǒng)綁定2. 選擇“hello world模板,設(shè)系統(tǒng)庫(kù)屬性,添加#include <system.h>3. 運(yùn)行程序,調(diào)試信息窗內(nèi)應(yīng)顯示 “ Hello from Nios II! ”4. 復(fù)制粘貼相關(guān)文件夾下的測(cè)試?yán)?,解析代碼結(jié)構(gòu)與功能5. 修改程序,使調(diào)試信息窗內(nèi)顯示出和時(shí)鐘相關(guān)的信息,“0:0:10:0:2”6. builder 工程,出現(xiàn) error 則修改程序直到正確。7. 運(yùn)行程序,觀察調(diào)試信息窗內(nèi)顯示內(nèi)容,分析實(shí)驗(yàn)現(xiàn)象。 二、程序清單#include <stdio.h> #include <system.h&g

30、t;#include <altera_avalon_pio_regs.h>#include <altera_avalon_timer_regs.h>#include <alt_types.h>#include <stdio.h>alt_u8 tm_sec,tm_min,tm_hour;alt_u8 flag=0;void timer_interrupt_server(void*context,alt_u32 id) tm_sec+;if(tm_sec=60)tm_sec=0;tm_min+;if(tm_min=60)tm_min=0;tm_hou

31、r+;if(tm_hour=24)tm_hour=0;IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE, 0); flag=1;void init_timer()alt_irq_register(TIMER_IRQ,NULL,timer_interrupt_server);IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE,ALTERA_AVALON_TIMER_CONTROL_ITO_MSK+ALTERA_AVALON_TIMER_CONTROL_CONT_MSK+ALTERA_AVALON_TIMER_CONTROL_

32、START_MSK );int main()init_timer();printf("Hello from Nios II!n");while (1)if (flag=1) prin tf("%d:%d:%dn",tm_hour,tm_mi n,tm_sec); flag=0;retur n 0;測(cè)試流程圖:開(kāi)始顯示 helloworld執(zhí)行timer函數(shù)、*Flag=1?Y I顯示"時(shí):分:秒”Flag歸零結(jié)束測(cè)試結(jié)果與分析:M'JLEWIBflla I-ii I lariBif5*r-dib| all F i-ill, '|

33、<. firJM- Jti才涉¥ WS»-”.iV- I Md>E< A WU"-P4L« *4*j.iaMeh irifX aX. I百± H qnLil- Cm-raE I*> U-W15i # MiH.i3ihuiP J仙心 4世二;so* iLTrnumv.TEtniTJHWiTzin jme. o¥# * i per塁 & lfe|l.|PLdp 比:m!4l W W 初 Iritl-ijFH'LK t13 4 皿 L 3.恤迅l! fa 世 ZulLL 劃鼻bb.K dj £014宴LiE cmn*Si:J 広f匚¥町沖阿HWWMurq r<g«= kt | nMEE TIQ iULL , c,e q»mp=.HrirL.iiiTcuon_ n n3_onrrecaL_ guft1 ic 卜11T 匸鮭二“ jUJOi! fj tfc: 口HfcFt *1訴.1|K j-cL U. LK+-mj£UfttZ:hf 袖f»»1 'i"*- Ti"= 13

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論