




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#SOPC系统搭建实验步骤:一、系统模块设计、建立Quartus工程设定工程目录、工程名、选择器件等;建立一个与工程名相同的顶层图形设计文件;将两个相关文件夹拷到工程目录下;、进入 SOPC Builde,搭建 Nios2系统模块确定FPGA芯片型号和和系统工作频率;添加Nios2处理器并配置;添加JTAG UART调试模块;添加SDRAM控制器;添加Time core并配置;添加UART并配置;添加PIO Core,配置为4位输出,控制台上的 4个LED灯;添加 CH452_controllerIPcore;添加自主IPcore( PWM);选择自动分配地址和中断号;设定CPU启动地址和异常
2、处理地址;Gen erate 生成 Nios2 模块;四、在Quartus顶层图形设计文件中添加(insert symbol) Nios2 系统模块;添加alt_pll并配置;添加Timer_out辅助电路;添加(in sert symbol) in put、output > bidir 引脚并连线;设定未用引脚状态为三态,编译工程; 进行引脚分配(如下所示); 再次编译;下载.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 时 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严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* "严二* 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 =.严 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心、产耳>JpA刊Ji 口pi ja1 4 EILI HM 13»
7、亠:.”.iu*iA JM.Jhe .1 |bd.M'l系统搭建完毕后的硬件核截图:实验小结:系统搭建其实是本次实验中最难倒我们的部分,主要是在搭建过程中我们组与老师的进度脱节, 以至于出现了不切实际的设计部分而我们又不自知。 这带来的后果则是 我们在做后续的实验中频频遭遇问题而难以从代码和设置上解决,这个影响甚至持续到UART实验部分。好在我们在最后完全修正了系统的设置问题也检查了引脚的正确性,最终 使用了正确的系统完成了后续的实验。#基本实验实验步骤:1. 建立软件工程 test ,并与硬件系统绑定2. 选择 “hello world ”模板,设系统库属性,添加 #include
8、<system.h> 添加 #include <altera_avalon_pio_regs.h>3. builder 工程,有错则修改,直到正确4. run 程序,调试信息窗内应显示 “Hello from Nios II! ”5. 打开System.h ”,查看系统硬件信息,熟悉相关内容打开 altera_avalon_pio_regs.h 熟悉 PIO 控制方法6. 修改程序,使调试信息窗内显示出和实验学生相关的信息,例如 “Hellofrom 12070005! ”7. 添加程序,通过 PIO 控制 4 个 LED 闪烁8. 运行程序,观察调试信息窗内显示内容和
9、实验台 LED 现象,满足要求后, 整理获得实验报告使用的代码和截图,思考如何构建测试程序的流程图#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;开始输出“ 13073108 13073113设置无限循环设置LED状态设置LED显示时间实验小结:基本实验其实没什么好说的,毕竟是为后续的实验熟悉编译环境而设置的实验,本身并没有什么难度。 有意思的是尽管我们的系统在搭建之初是存在很大问题的,但是基本实验却凭借有缺陷的设计无障碍地完成了,这点知道撰写报告时我才发现。相比个中原因可能是基本实验涉及硬件核功能部分不多。# 键盘控制部分实验步骤:1. 建立软件工程-disp&key,并与硬件系统绑定2. 选择hello world ”模板,设系统库属性,添加 #i
11、nclude <system.h>3. run程序,调试信息窗内应显示 Hello from Nios II! ”4. 复制相关文件夹下define.h到工程目录,查看并理解相关内容;查看并理解CH452_CORE使用说明复制粘贴相关文件夹下的测试例程,解析代码结构与功能5. 修改程序,使调试信息窗内显示出和实验学生相关的信息,例如 DISP and KEY test from 12070005 !”6. builder工程,有错则修改,直到正确7. 运行程序,观察数码管显示现象8. 修改程序,显示学号(例如12070005),运行程序,观察数码管显示现象实验代码:#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;无限循环实验小结: 实验的重点在于读懂新的 ch452 的操作语句使用方法, 所幸老师在这方面的 讲解十分详细, 我们很快通过老师的指导和对于实验流程及代码的理解便完成了键盘控制显 示实验。主要也是指导书内容十分详尽,以至于我们的实验也没遇到什么大问题。#UART一、实验步骤:1建立软件工程-UART并与硬件系统绑定2. 选择“hello world模板,设系统库属性,添加#include <system.h>3. run程序,调试信息窗内应显示“
18、 Hello from Nios II! ”4. 复制粘贴相关文件夹下的测试例程,解析代码结构与功能5. 修改程序,使调试信息窗内显示出和实验学生相关的信息,“UARTtest from 130731 13073108 13073113! ”6. 修改程序,alt_u8 tx_buffer1O=“ wa”d为aalt_u8 tx_buffer ? ? =n” 形式7. builder 工程,出现 error 则修改程序直到正确。8. PC上运行 串口助手”,完成相应设置9运行SOPC程序,观察IDE和串口助手”显示内容,分析实验现象10.通过 串口助手”分别发送A123#、#,观察IDE和 串
19、口助手”显示内容,分析实验现象二、程序清单#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>/中断接收,查询发送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;流程图:开始NErr CMD=1?YN输出错误信息Flag=1?K>19?K=k+1测试结果与分析:氐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 浴:Ki M3 U14j-KLdl E -qLIllr-NM *lti KS*灯I:# 広门-耳屮拿呵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 ;在输入了学号后程序显示了学号各位的 BCD码;在实验过程中出现了硬件连接以及代码没有错误, 但是在串口助手上总是无法显示程序中编写的信息的问题, 经检查是由于在引脚分配的 过程中,输入与输出引脚分配顺序发生了颠倒, 导致数据无法正确输 出,将输入输出引脚进行修正之后, 在串口助手上即可正确的显示提 前编写的信息。小结:在实验过程中多次检查了程序中的错误, 然而试验中的问题并 没有出现在软件方面, 而是在硬件上引脚的分配出现了问题, 导致在 这项实验上浪费了很多时间,这也从侧面证明了 sopc 技术试验中, 每一个细节的重要性。#Timer一、实验步骤 :
29、1建立软件工程-Timer,并与硬件系统绑定2. 选择“hello world模板,设系统库属性,添加#include <system.h>3. 运行程序,调试信息窗内应显示 “ Hello from Nios II! ”4. 复制粘贴相关文件夹下的测试例程,解析代码结构与功能5. 修改程序,使调试信息窗内显示出和时钟相关的信息,“0:0:10:0:2”6. builder 工程,出现 error 则修改程序直到正确。7. 运行程序,观察调试信息窗内显示内容,分析实验现象。 二、程序清单#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;测试流程图:开始显示 helloworld执行timer函数、*Flag=1?Y I显示"时:分:秒”Flag归零结束测试结果与分析: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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗健康管理在商业领域的应用与挑战
- 教案检查工作总结模版
- 上海 房东租房合同范例
- 红褐色扁平风网络安全模板
- 储罐厂家供货合同范例
- 产品定制打样合同范例
- 供销付款合同范例
- 防溺水安全家长会发言稿模版
- 住建部买房合同范例
- 职业性硬皮病的临床护理
- 水费计算、水权与水价课件
- 有限空间作业及应急物资清单
- 思想道德与法治教案第一章:领悟人生真谛把握人生方向
- 61850报文解析-深瑞版-131016
- 0-6岁儿童随访表
- 江西新定额2017土建定额说明及解释
- 国家电网有限公司十八项电网重大反事故措施(修订版)-2018版(word文档良心出品)
- 语文四年级下册《失落的一角》绘本阅读 课件(共61张PPT)
- 附件一∶ 教育部专家实地评估案头必备材料
- 余甘果的栽培与加工工艺
- 中考英语双向细目表
评论
0/150
提交评论