QUARTUSII软件开放性实验报告.docx
- 文档编号:25107217
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:24
- 大小:1.08MB
QUARTUSII软件开放性实验报告.docx
《QUARTUSII软件开放性实验报告.docx》由会员分享,可在线阅读,更多相关《QUARTUSII软件开放性实验报告.docx(24页珍藏版)》请在冰豆网上搜索。
QUARTUSII软件开放性实验报告
开放性实验报告
专业:
电子信息工程
班级:
*电信*班
姓名:
学号:
指导老师:
实验一:
流水灯
1.实验内容
利用QUARTUSII软件,构建NIOSII软核系统,编写程序,实现实验箱上LED灯的流水功能。
2.实验原理
通过提前设定NIOSII软核处理器的相关寄存器,控制led的IO口的高低电平输出及响应间隔时间,从而改变LED的亮灭并达到流水灯效果。
3.实验步骤
1.硬件设计
(1).构建NIOSII软核
NIOSII软核处理器包括cpu,sdram控制器,串行flash控制器,jtag_uart,sysid,pio端口。
(2).PLL模块的构建
实验箱的板载有源晶振频率为50MHZ,NIOSII及SDRAM需要100MHZ的时钟源,因此需要用PLL模块进行倍频。
PLL模块的配置如图所示:
输入时钟频率为50MHZ
输出时钟c0为输入时钟的2倍频
输出时钟c1为输入时钟的2倍频,相位偏移-75度,为SDRAM提供工作时钟
PLL模块:
(3).系统连线及引脚分配
qsf文件中的引脚分配:
set_location_assignmentPIN_AF21-tosdram_addr[0]
set_location_assignmentPIN_AE20-tosdram_addr[1]
set_location_assignmentPIN_AF20-tosdram_addr[2]
set_location_assignmentPIN_AE19-tosdram_addr[3]
set_location_assignmentPIN_B20-tosdram_addr[4]
set_location_assignmentPIN_A21-tosdram_addr[5]
set_location_assignmentPIN_B21-tosdram_addr[6]
set_location_assignmentPIN_A22-tosdram_addr[7]
set_location_assignmentPIN_B22-tosdram_addr[8]
set_location_assignmentPIN_A23-tosdram_addr[9]
set_location_assignmentPIN_AE21-tosdram_addr[10]
set_location_assignmentPIN_B23-tosdram_addr[11]
set_location_assignmentPIN_B24-tosdram_addr[12]
set_location_assignmentPIN_AE22-tosdram_ba[0]
set_location_assignmentPIN_AF22-tosdram_ba[1]
set_location_assignmentPIN_AE24-tosdram_cas_n
set_location_assignmentPIN_B25-tosdram_cke
set_location_assignmentPIN_AF23-tosdram_cs_n
set_location_assignmentPIN_AD25-tosdram_dq[0]
set_location_assignmentPIN_AC25-tosdram_dq[1]
set_location_assignmentPIN_AC26-tosdram_dq[2]
set_location_assignmentPIN_AB25-tosdram_dq[3]
set_location_assignmentPIN_AB26-tosdram_dq[4]
set_location_assignmentPIN_AA25-tosdram_dq[5]
set_location_assignmentPIN_AA26-tosdram_dq[6]
set_location_assignmentPIN_Y25-tosdram_dq[7]
set_location_assignmentPIN_W26-tosdram_dq[8]
set_location_assignmentPIN_V25-tosdram_dq[9]
set_location_assignmentPIN_V26-tosdram_dq[10]
set_location_assignmentPIN_U25-tosdram_dq[11]
set_location_assignmentPIN_U26-tosdram_dq[12]
set_location_assignmentPIN_T25-tosdram_dq[13]
set_location_assignmentPIN_R25-tosdram_dq[14]
set_location_assignmentPIN_P24-tosdram_dq[15]
set_location_assignmentPIN_N24-tosdram_dq[16]
set_location_assignmentPIN_M25-tosdram_dq[17]
set_location_assignmentPIN_L25-tosdram_dq[18]
set_location_assignmentPIN_K26-tosdram_dq[19]
set_location_assignmentPIN_K25-tosdram_dq[20]
set_location_assignmentPIN_J26-tosdram_dq[21]
set_location_assignmentPIN_J25-tosdram_dq[22]
set_location_assignmentPIN_H26-tosdram_dq[23]
set_location_assignmentPIN_G25-tosdram_dq[24]
set_location_assignmentPIN_F26-tosdram_dq[25]
set_location_assignmentPIN_F25-tosdram_dq[26]
set_location_assignmentPIN_E26-tosdram_dq[27]
set_location_assignmentPIN_E25-tosdram_dq[28]
set_location_assignmentPIN_D26-tosdram_dq[29]
set_location_assignmentPIN_D25-tosdram_dq[30]
set_location_assignmentPIN_C25-tosdram_dq[31]
set_location_assignmentPIN_Y26-tosdram_dqm[0]
set_location_assignmentPIN_W25-tosdram_dqm[1]
set_location_assignmentPIN_H25-tosdram_dqm[2]
set_location_assignmentPIN_G26-tosdram_dqm[3]
set_location_assignmentPIN_AE23-tosdram_ras_n
set_location_assignmentPIN_AE25-tosdram_we_n
set_location_assignmentPIN_F21-toclk_sdram
2.软件设计
system.h文件中关于PIO_LED的宏定义
#definePIO_LED_NAME"/dev/pio_LED"
#definePIO_LED_TYPE"altera_avalon_pio"
#definePIO_LED_BASE0x00001800
#definePIO_LED_SPAN16
#definePIO_LED_DO_TEST_BENCH_WIRING0
#definePIO_LED_DRIVEN_SIM_VALUE0
#definePIO_LED_HAS_TRI0
#definePIO_LED_HAS_OUT1
#definePIO_LED_HAS_IN0
#definePIO_LED_CAPTURE0
#definePIO_LED_DATA_WIDTH8
#definePIO_LED_RESET_VALUE0
#definePIO_LED_EDGE_TYPE"NONE"
#definePIO_LED_IRQ_TYPE"NONE"
#definePIO_LED_BIT_CLEARING_EDGE_REGISTER0
#definePIO_LED_BIT_MODIFYING_OUTPUT_REGISTER0
#definePIO_LED_FREQ100000000
#defineALT_MODULE_CLASS_pio_LEDaltera_avalon_pio
利用system.h文件编写sopc.h,通过操作结构体PIO_STR完成对PIO_寄存器的操作。
sopc.h文件:
#ifndefSOPC_H_
#defineSOPC_H_
#include"system.h"
#define_LED
typedefstruct
{
unsignedlongintDATA;
unsignedlongintDIRECTION;
unsignedlongintINTERRUPT_MASK;
unsignedlongintEDGE_CAPTURE;
}PIO_STR;
#ifdef_LED
#defineLED((PIO_STR*)PIO_LED_BASE)
#endif
#endif
Main.c文件全部源码:
#include
#include
#include"../inc/sopc.h"
intmain()
{
inti;
while
(1){
for(i=0;i<8;i++){
LED->DATA=~(1<
usleep(500000);
}
}
return0;
}
实验二:
数码管显示
1.实验内容
利用QUARTUSII软件,构建NIOSII软核处理器系统,在NIOSIDE软件中编写程序,实现实验箱上数码管的动态显示。
2.实验原理
在NIOSII软核处理器中添加段选,位选IO,通过控制PIO寄存器,逐次点亮数码管,利用人眼的视觉暂留效应,实现数码管的动态显示。
3.实验步骤
1.硬件设计
(1).构建NIOSII软核
NIOSII软核包括cpu,sdram控制器,串行flash,jtag_uart,sysid,段选IO,位选IO。
(2).构建PLL模块
PLL输入时钟频率为20MHZ
PLL输出时钟c0为输入的5倍频
PLL输出时钟c1为输入时钟的5倍频,相位偏移为-75度
PLL模块:
(3).系统连线及引脚分配
利用qsf文件进行引脚分配:
set_location_assignmentPIN_27-toRESET
set_location_assignmentPIN_24-toCLOCK
set_location_assignmentPIN_88-toS_DB[0]
set_location_assignmentPIN_87-toS_DB[1]
set_location_assignmentPIN_86-toS_DB[2]
set_location_assignmentPIN_84-toS_DB[3]
set_location_assignmentPIN_82-toS_DB[4]
set_location_assignmentPIN_81-toS_DB[5]
set_location_assignmentPIN_80-toS_DB[6]
set_location_assignmentPIN_77-toS_DB[7]
set_location_assignmentPIN_45-toS_DB[8]
set_location_assignmentPIN_46-toS_DB[9]
set_location_assignmentPIN_47-toS_DB[10]
set_location_assignmentPIN_48-toS_DB[11]
set_location_assignmentPIN_56-toS_DB[12]
set_location_assignmentPIN_57-toS_DB[13]
set_location_assignmentPIN_58-toS_DB[14]
set_location_assignmentPIN_59-toS_DB[15]
set_location_assignmentPIN_64-toS_A[0]
set_location_assignmentPIN_63-toS_A[1]
set_location_assignmentPIN_61-toS_A[2]
set_location_assignmentPIN_60-toS_A[3]
set_location_assignmentPIN_31-toS_A[4]
set_location_assignmentPIN_33-toS_A[5]
set_location_assignmentPIN_34-toS_A[6]
set_location_assignmentPIN_35-toS_A[7]
set_location_assignmentPIN_37-toS_A[8]
set_location_assignmentPIN_39-toS_A[9]
set_location_assignmentPIN_67-toS_A[10]
set_location_assignmentPIN_40-toS_A[11]
set_location_assignmentPIN_43-toS_CLK
set_location_assignmentPIN_69-toS_BA[0]
set_location_assignmentPIN_68-toS_BA[1]
set_location_assignmentPIN_74-toS_nCAS
set_location_assignmentPIN_41-toS_CKE
set_location_assignmentPIN_72-toS_nRAS
set_location_assignmentPIN_75-toS_nWE
set_location_assignmentPIN_70-toS_nCS
set_location_assignmentPIN_44-toS_DQM[1]
set_location_assignmentPIN_76-toS_DQM[0]
set_location_assignmentPIN_169-toDIG[0]
set_location_assignmentPIN_168-toDIG[1]
set_location_assignmentPIN_165-toDIG[2]
set_location_assignmentPIN_164-toDIG[3]
set_location_assignmentPIN_175-toDIG[4]
set_location_assignmentPIN_173-toDIG[5]
set_location_assignmentPIN_171-toDIG[6]
set_location_assignmentPIN_170-toDIG[7]
set_location_assignmentPIN_185-toSEL[5]
set_location_assignmentPIN_182-toSEL[4]
set_location_assignmentPIN_181-toSEL[3]
set_location_assignmentPIN_180-toSEL[2]
set_location_assignmentPIN_179-toSEL[1]
set_location_assignmentPIN_176-toSEL[0]
2.软件设计
system.h中关于段选IO和位选IO的宏定义
#defineDIG_NAME"/dev/DIG"
#defineDIG_TYPE"altera_avalon_pio"
#defineDIG_BASE0x00001800
#defineDIG_SPAN16
#defineDIG_DO_TEST_BENCH_WIRING0
#defineDIG_DRIVEN_SIM_VALUE0
#defineDIG_HAS_TRI0
#defineDIG_HAS_OUT1
#defineDIG_HAS_IN0
#defineDIG_CAPTURE0
#defineDIG_DATA_WIDTH8
#defineDIG_RESET_VALUE0
#defineDIG_EDGE_TYPE"NONE"
#defineDIG_IRQ_TYPE"NONE"
#defineDIG_BIT_CLEARING_EDGE_REGISTER0
#defineDIG_BIT_MODIFYING_OUTPUT_REGISTER0
#defineDIG_FREQ100000000
#defineALT_MODULE_CLASS_DIGaltera_avalon_pio
#defineSEL_NAME"/dev/SEL"
#defineSEL_TYPE"altera_avalon_pio"
#defineSEL_BASE0x00001810
#defineSEL_SPAN16
#defineSEL_DO_TEST_BENCH_WIRING0
#defineSEL_DRIVEN_SIM_VALUE0
#defineSEL_HAS_TRI0
#defineSEL_HAS_OUT1
#defineSEL_HAS_IN0
#defineSEL_CAPTURE0
#defineSEL_DATA_WIDTH6
#defineSEL_RESET_VALUE0
#defineSEL_EDGE_TYPE"NONE"
#defineSEL_IRQ_TYPE"NONE"
#defineSEL_BIT_CLEARING_EDGE_REGISTER0
#defineSEL_BIT_MODIFYING_OUTPUT_REGISTER0
#defineSEL_FREQ100000000
#defineALT_MODULE_CLASS_SELaltera_avalon_pio
利用system.h文件编写的sopc.h文件:
#ifndefSOPC_H_
#defineSOPC_H_
#include"system.h"
#define_DIG
typedefstruct
{
unsignedlongintDATA;
unsignedlongintDIRECTION;
unsignedlongintINTERRUPT_MASK;
unsignedlongintEDGE_CAPTURE;
}SEL_STR;
typedefstruct
{
unsignedlongintDATA;
unsignedlongintDIRECTION;
unsignedlongintINTERRUPT_MASK;
unsignedlongintEDGE_CAPTURE;
}DIG_STR;
#ifdef_DIG
#defineSEL((SEL_STR*)SEL_BASE)
#defineDIG((DIG_STR*)DIG_BASE)
#endif
#endif
main.c文件全部源码:
#include
#include
#include"../inc/sopc.h"
unsignecharsegtab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90};
unsignedcharbittab[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
intmain()
{
inti=0;
while
(1){
SEL->DATA=bittab[i];
DIG->DATA=segtab[i++];
if(i==6)i=0;
usleep(500000);
}
return0;
}
实验三.定时器应用
1.实验内容
在QUARTUSII软件中构建NIOSII软核系统,在NIOSIDE软件中编写程序,实现对固定时间段的计数。
2.实验原理
配置NIOSII软核的定时器,当定时器溢出时计数,利用数码管的动态显示技术值。
3.实验步骤
1.硬件设计
(1).构建NIOSII软核系统
NIOSII软核包括cpu,sdram控制器,串行flash,jtag_uart,sysid,段选IO,位选IO,定时器。
(2).构建PLL模块
PLL输入时钟频率为20MHZ
PLL输出时钟c0为输入的5倍频
PLL输出时钟c1为输入时钟的5倍频,相位偏移为-75度
PLL模块:
(3).系统连线及引脚分配
利用qsf文件进行引脚分配:
set_location_assignmentPIN_27-toRESET
set_location_assignmentPIN_24-toCLOCK
set_location_assignmentPIN_88-toS_DB[0]
set_location_assignmentPIN_87-toS_DB[1]
set_location_assignmentPIN_86-toS_DB[2]
set_location_assignmentP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QUARTUSII 软件 开放性 实验 报告