实验04_SOPC_PIO读写应用S

合集下载

SOPC实验指导书

SOPC实验指导书

SOPC实验指导书电信学院实验中心目录第一章EL-SOPC4000实验系统的资源介绍 (1)一、系统功能概述 (1)二、系统硬件资源 (2)三、特别说明 (11)第二章数字可编程设计实验 (12)实验一组合逻辑3-8译码器的设计 (12)第三章基于NIOS的软核设计实验 (23)实验一 Nios软核的设计 (23)实验二外设模块的设计 (27)实验三 SOPC应用系统的生成 (40)实验四 Nios II软核验证以及Nios II IDE软件的介绍 (46)实验五 SOPC系统的PIO验证 (52)实验六基于NIOS的交通灯实验 (55)实验七 7段数码管显示实验 (59)实验八按键及拨码开关实验 (61)实验九 16×16 LED点阵实验 (62)实验十 UART与PC机通信实验 (64)第一章EL-SOPC4000实验系统的资源介绍一、系统功能概述EL-SOPC4000实验箱是集EDA 和SOPC 开发为一体的综合性实验箱,它不仅可以独立完成各种EDA 设计,也可以完成多种SOPC开发。

主CPU适配器E-PLAY-SOPC配合EL-SOPC4000底板,可完成各种基本的EDA实验。

在实验板上有丰富的外围扩展资源,有常用的按键,拨码开关,LED灯,蜂鸣器,交通灯,16x16点阵,数码管,4x4矩阵键盘,AD/DA,CAN功能单元,RS232,RS485,可调时钟输出。

实验板上还集成了一个8寸的VGA接口的液晶屏,可完成视频图像的显示。

由于CPU 适配器E-PLAY-SOPC本身具有E_PLAY接口,只需提供电源即可独立完成功能测试,也可控制用户开发的E_PLAY接口模块。

由于EL-SOPC4000底板加入了两路E_LAB外扩接口,可以配合公司现有的多种E_LAB模块,来完成大学生毕业设计、电子设计竞赛、及创新设计,同时该系统也是从事教学及科研的广大教师和工程师们的理想开发工具,具有极高的灵活性,开放性和可开发性。

实验05_SOPC_PIO中断及应用S

实验05_SOPC_PIO中断及应用S

实验拓展
拓展要求: (1)本设计未增加按键防抖动设计,试设计代码,探究一
次按键是否多次触发(执行)中断。 (2)如何设计按键防抖动设计。
拓展提示: (1)可将LED值设置全局变量。在按键处理过程中,即改变
使能信号值,同时也顺序调整LED闪烁值,通过灯的亮灭确认 是否一次按键,出现多次执行。
(2)软件防抖可参考用单片机延时按键防抖的方法,但也不 建议在中断服务程序中,加入过大的延时,否则中断快速响应 的优越性就难以体现。
系统需求:
1.实验之前,请以课件为基础,预习实验内容。 2.在指定的文件夹存储、命名各工程项目和文件。 3.规范实验报告的书写内容和格式。
一.实验原理
1.0 系统需求分析
中断指CPU在执行A任务时,发生了某个事件 (程序自身或外界)使CPU暂停对A任务的处理, 保留现场,去执行B任务;B任务完成后,回到A 的现场,继续执行A任务。
6.按下按键2。再 单步运行,观察运 行情况及各变量的 值得。
5.判断结束 后,全速运 行,观察现 象并总结。
3.按下开发 板上矩阵键 盘上的按键1, 程序在断点 处停下。
(4)暂停调试后的再调试
1.如需修改代码,需按【停止 键】,结束调试。否则下次再启 动调试会报错。停止调试后,可 直接在调试界面修改代码。
(3)编写代码,编译,改错,调试,下载,观察记录现象
硬件中 断号
中断控制 器ID
系统重要文件 Alt_sys_init.c
Main()函数运行前的 初始化函数。
PIO设置开了 中断,所以初 始化闪烁方式及调试
中断执行时, 先关中断,出 之前再开中断。
(3)可尝试在处理器IO端口前,增减用硬件描述语言设计的 防抖动逻辑单元。

sopc实验心得

sopc实验心得

sopc实验心得
在进行SOPC(系统级可编程器件)实验的过程中,我深刻体会到了它的强大和灵活性。

SOPC是一种基于现场可编程门阵列(FPGA)技术的系统设计方法,它将硬件与软件相结合,可以实现高度集成和可重构的设计。

在实验中,我首先学习了SOPC的基本概念和原理,了解了它的组成部分以及各个组件之间的连接方式。

然后,我利用Quartus II软件进行了仿真和综合,将设计的硬件描述语言(HDL)代码转化为FPGA可以理解的形式。

通过仿真,我可以预先验证设计的正确性,并对其进行修改和优化。

接着,我进行了FPGA的编程和配置,将设计好的逻辑电路加载到FPGA芯片中。

通过这一步骤,我可以将自己的设计直接在硬件上实现,并进行实时的测试和调试。

这种即时性和灵活性是SOPC的一个重要优点,它使得我们能够更加高效地进行系统级设计和验证。

在SOPC实验中,我还学习了使用Nios II软核处理器进行嵌入式系统设计。

Nios II是一款可编程的32位RISC处理器,可以根据需求进行定制和配置。

通过Nios II,我可以在FPGA上实现复杂的嵌入式系统,并编写C语言程序进行控制和操作。

总的来说,SOPC实验让我深入了解了系统级可编程器件的原理和应用。

通过实践,我学会了使用Quartus II软件进行FPGA设计和配置,掌握了硬件描述语言
和嵌入式系统的开发方法。

这些知识和技能对我未来的学习和工作都具有重要的意义,我相信在不久的将来,SOPC技术将会在各个领域得到广泛应用。

实验四 外部IO中断和外扩RAM使用

实验四 外部IO中断和外扩RAM使用

实验四外部IO中断和外扩RAM使用一、实验目的1. 熟悉DSP中GPIO的配置。

2. 掌握IO口中断的配置。

3. 学习如何将程序代码和数据存入外扩RAM中。

二、实验内容1. 使用CCS配置DSP中GPIO19为下降沿触发中断,并在中断中开启定时器中断并开始计数。

2. 使用#pragma DATA_SECTION()和#pragma CODE_SECTION() 函数将代码和数据存入指定外扩RAM中。

三、实验基本原理1.GPIO中断实验GPIO的主要寄存器包括GPIO复用寄存器(GPxMUXn)、GPIO限制控制寄存器(GPACTRL、GPBCTRL)、GPIO限制选择寄存器(GPxQSELn)、GPIO方向寄存器(GPxDIR)、GPIO上拉禁用寄存器(GPxPUD)、GPIO数据寄存器(GPxDAT)、GPIO置位、清零、翻转寄存器(GPxSET、GPxCLEAR、GPxTOGGLE)、GPIO外部中断源选择寄存器(GPIOXINTnSEL和GPIOXNMISEL)、GPIO低功耗唤醒源选择寄存器(GPIOLPMSEL)。

对上述寄存器中特定寄存器的特定位进行赋值后,可以做到GPIO输入输出属性的配置及中断引脚、中断条件的配置等。

若需用I/O口作为外部中断源的输入引脚,则需配置GPIOINTxSEL和GPIOXNMISEL寄存器来指定I/O口。

2.外扩RAM使用实验XINTF模块用到了两个时钟:XTIMCLK和XCLKOUT,图给出了这两个时钟和CPU 时钟SYSCLKOUT的关系。

对XINTF区域的访问都是基于内部XINTF时钟(XTIMCLK)。

配置XINTF时,用户必须配置内部时钟XTIMCLK与SYSCLKOUT的比率关系。

通过配置XINTCNF2寄存器,可以将XTIMCLK频率设置成等于SYSCLKOUT或SYSCLKOUT的1/2。

XINTF寄存器包括XINTF时序寄存器(XTIMING0/6/7)、XINTF配置寄存器。

实验四 Nios II 嵌入式处理器关浩亮2012029180002

实验四 Nios II 嵌入式处理器关浩亮2012029180002

实验四 Nios II 嵌入式处理器一、实验要求:1、实现一个由Nios II控制的由18个发光二级管组成的流水灯效果;2、为了点亮LED灯,程序运行速度不要太快,需要进行适当延时。

二、实验目的:1,掌握基于SOPC Builder和Nios SBT实现嵌入式系统的硬件、软件设计过程;2,学会根据需求定制一个Nios II硬件系统,并在此基础上编写应用程序。

三、实验原理和实验内容:1、SOPC技术SOPC(System On a Programmable Chip)是指用可编程逻辑技术把整个系统放到一块硅片上。

它是一种特殊的嵌入式系统。

一方面,它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;另一方面,它是可编程系统,具有灵活的设计方式,可裁减、扩充、升级,并具备软硬件在系统可编程的功能。

这项技术将EDA、计算机设计、嵌入式系统、DSP等技术融为一体。

SOPC 结合了SOC 和PLD、FPGA 各自的优点,一般具备以下基本特征:至少包含一个嵌入式处理器内核;具有小容量片内高速RAM 资源;丰富的IP Core资源可供选择;足够的片上可编程逻辑资源;处理器调试接口和FPGA 编程接口;可包含部分可编程模拟电路;单芯片,低功耗,微封装。

随着EDA 技术的发展和大规模可编程器件性能的不断提高,SOPC 技术已被广泛应用于许多领域。

首先,SOPC 在极大提高了许多电子系统性能价格比的同时,还开辟了许多新的应用领域,如高端的数字信号处理、通信系统、软件无线电系统的设计、微处理器及大型计算机处理器的设计等等;同时,由于SOPC 具有基于EDA 技术标准的设计语言与系统测试手段、规范的设计流程与多层次的仿真功能以及高效率的软硬件开发与实现技术,使得SOPC 及其实现技术无可争议地成为现代电子技术最具时代特征的典型代表。

与基于ASIC 的SOC 相比,SOPC 具有更多的特点与吸引力:开发软件成本低,硬件实现风险低,产品上市效率高,系统结构可重构及硬件可升级等,它还具有设计者易学易用、高附加值、产品设计成本低等优势。

SOPC设计基础实验报告

SOPC设计基础实验报告

黑龙江科技大学SOPC设计基础实验报告学院:黑龙江科技大学学号: ********** 姓名:实验一开发软件使用练习一实验目的实验目的:掌握基于SOPC硬核处理器的设计流程。

二实验设备安装Quartu II的PC、实验箱三实验内容1 添加SOPC硬核1,.创建一个工程,取名。

2.添加.bdf文件,取名和工程名同名。

3.在Tools菜单下打开SOPC Builder。

4.创建系统,取名NIOS2,选择使用Verilog语言。

5.设置系统主频和指定FPGA。

6.加入NIOS2 CPU模块,选择型号,并设置相关参数。

7.依次添加定时器、Butoon PIO、LCD控制器、外部RAM和Flash接口、外部RAM和Flash总线、JTAG UART接口,并将这些模块命名成自己熟悉的名字。

8.分配IP模块的地址和中断号9.配置NIOS2 系统10.生成NIOS2并加入到工程中2 创建PLL器件由于Sdram的时钟是由fpga提供的,所以要创建一个PLL器件来实现对时钟的控制,Quartus II提供了Megawizard Plug-In Manager工具对Plug-In器件以及IP Core进行创建和管理,在Megawizard Plug-In Manager中可以创建各种逻辑门电路以及存储器件。

选择Tools/Megawizard Plug-In Manager点击“Next”,进入Manager,选择“IO/ALTPLL”,选择输出文件类型为“VHDL”,选择输出文件的名字“mypll”点击“Next”,选择器件的速度为8,输出的频率为50MHz,其它设置不变。

点击“Next”,去掉复位、使能等选项点击“Next”,进入Clock c0的设定。

改变“Enter output clock frequency”为50MHz点击“Next”,进入Clock c1的设定,不作改变点击“Next”进入Clock e0的设定。

SOPC实验讲稿

SOPC实验讲稿

2、实验内容
本实验通过使用 NiosII SDK Shell 、 QuartusII 和 SOPC Builder 共同建立
本开发板的目“ UP_AR2000_board ”。 然后新建工程“ USB_test ”,使用
SOPC Builder 定制一个标准的 NiosII 系统,该系统是“ UP_AR2000_board ” 为目标板建立的。从而完成硬件开发。用QuartusII 分配管脚,编译、生成 sof 文件。然后,使用 NiosII IDE 移植 uClinux 操作系统、 编译、 烧写。 建立根 文件系统编译、 烧写。 建立应用程序工程, 编译生成 .exe 文件。把 exe 文 件拷贝到根文件系统中的 bin 文件夹下。 再重新编译根文件系统, 烧写。 最 后 sof 文件。 运行通过超级终端我们就可以运行位于 bin 文件夹下的应用程 序命令了。
2在sopcbuilder上完成niosii硬件系统配置然后完成硬件系统生成3在quartusii上完成硬件引脚的添加与硬件锁定综合3在quartusii上完成硬件引脚的添加与硬件锁定综合4在niosiiide上完成中建立的linux内核工程和linux根文件系统工程然后新建应用工程5添加应用程序到应用工程
仿真波形图
4、实验要求 (1)记录调试与验证的结果 (2 )记录实验过程中出现的问题及解决办法
(3) 实验结束,保持实验室整洁
实验二
1、实验目的
LED实验
(1)学习使用 SOPC Builder 定制 一个最小NiosII 硬件系统的设计。
(2)学习使用 NiosII IDE 软件完成应用程序开发。
(6)将实验箱的JTAG与主机连接好,在Quartus II完成 .sof文件编程, 在NiosII上运行硬件调试,观察实验箱上LED的显示 (7)对 makefile 进行修改, 保存。指定 Rules.mak 的路径。改为: TOPDIR=E:\example\cheng\example\USB_test\software\Linux_app1

SOPC实验报告

SOPC实验报告

SOPC系统设计技术实验报告姓名:学号:院系: 信息科学与工程学院专业:电子科学与技术指导老师:完成日期: 2015年04月25日实验二、NIOSII实现串口收发数据及LCD显示一、实验目的(1)进一步熟悉Quartus II、SOPC Builder、NIOS II IDE的操作;(2)掌握SOPC硬件系统及NIOS II软件的开发流程。

二、实验内容(1)、实验平台:硬件:PC级、SmartSOPC+教学实验开发平台;软件:Quartus II 9.0, SOPC Builder 9.0, NIOS II IDE 9.0。

(2)、实验内容:建立包含SDRAM、JTAG_UART、Timer、LCD的NIOS II处理器系统,通过JTAG_UART从IDE的控制端窗口读取输入值N,计算1至N的累加值,并将计算结果及计算花费时间的显示在LCD中。

三、实验步骤3.1硬件设计根据实验内容,可以得出本次实验的硬件结构图如图3.1所示:图3.1 硬件设计结构图具体硬件设计步骤如下:1)、在Quartus II中建立一个工程命名为:smallCore,器件设置为EP3C55F484C8;2)、以原理图输入方式建立空白顶层模块,并保持;3)、打开SOPC Builder,命名SOPC系统名称为nios2system,开始建立NIOS II 系统。

4)、双击SOPC Builder主界面左侧中的“Nios II Processor”,出现Nios II CPU 的配置向导对话框,如图1.4所示,在这里可以有三种Nios II CPU选择,我们选择快速型的Nios II/f,不使用硬件乘法器及除法器。

然后单击Next进入下一步配置;Instruction Cache项中选择2 Kbytes,在Data Cache项中选择512 Bytes,单击Next 进行下一步配置;在“Advanced Features”和“MMU and MPU Settings”选项卡中选择默认参数,然后单击Next,到了“JTAG Debug Module”选项卡,如图1.6所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.1 系统框架
1.2 硬件电路
插入方法:在DIP40接 口,8P排线插入靠外 的一排,左右各空6个 针。6+8+8=20.
1.3 具体操作步骤
1.启动QUARTUS II,创建或移动系统设计工程。 (1)在计算机最后一个盘,新建Experiment_SOPC文件夹,新 建本实验工程文件夹,命名为:Experiment_**_04(**为两位学 号,04为第一个实验)。 (2)按实验2的方法,新建一个NIOS II工程项目,在Qsys创建 NIOS II系统。或者按照实验3的方法,移动原设计好工程到新 工程目录下并设置。
系统重要文件 Altera_ avalon_pio_reg s.h
Main()函数运行前的 初始化函数。
此文件定义了 PIO寄存器访 问操作的宏定 义(箭头为方 向寄存器读写 及设置)。
箭头为边沿捕 获寄存器读写 及设置。
(a)修改方向寄存器,编写程序,查看运行情况。
#include "system.h" #include "altera_avalon_pio_regs.h" #include "alt_types.h"
(3)编写代码,编译,改错,调试,下载,观察记录现象
PIO内核 的基地质
PIO内核 的位宽
总线频率 设置的中 断号
系统重要文件 System.h
记录所有硬件信息并进 行宏定义(双击打开)
系统重要文件 Alt_sys_init.c
Main()函数运行前的 初始化函数。
PIO设置开了 中断,所以初 始化程序内含 中断初始化函 数。
2.在对话框左侧,下拉选择 【weak Pull-up Resister】, 添加到右侧,【OK】确认。
3.此时weak Pullup Resister可见, 在对应的引脚行, 双击,选择【on】, 即设置该引脚内部 上拉。
3.在QUARTUS II工程,更新NIOS II系统,编译、设置引脚,全程 编译,下载硬件设计.sof文件
3.设置中断号,修改其值为【0】。注释:本实验无 需中断,此处设置对实验现象无影响。下一个实验, 需要中断,为避免重复修改硬件,故此处设置。
4.其他设置略,生 成NIOS系统。在顶 层更新NIOS II符 号,生成引脚,分 析综合,分配引脚, 全编译,下载。 (自行按实验2步 骤操作)。
注释1.因开发板上SW1—SW3按 键连接的FPGA引脚为输入引脚。 而本例中PIO端口类型为三态, 按键也需接三态引脚,故本例 按键由键盘上的两个按键替代。 两按键的行接入端口(并上 拉),列信号固定接地,则形 成两个按键形式。
用同一个PIO核,设置其位宽为6位,低4位为输出,控制 LED灯的亮灭,高两位连接按键,作为控制信号输入。最终通 过按键来控制LED的亮灭,以此熟悉PIO端口的各种操作。
实验要完成如下任务:
(1)PIO核的设置。 (2)方向控制寄存器函数的设置及对PIO端口的影响验证; (3)数据读写宏定义相关函数的应用; (4)边沿捕获宏定义相关函数的应用; (5)矩阵键盘的简单应用。
【.qsys】文件,打开Qsys软件, 允许边沿
并自动打开NIOS II系统设置文 捕获寄存
件对话框。
器。
2.双击【pio_led】栏,调出 PIO设置对话框,并做如右图所 示设置,设置完后,点 【finish】完成设置。
中断允许
位输出允 许
捕获下降 沿
边沿中断
(2)完成其他操作及生成NIOS II系统。
2.启动Qsys对原NIOS II处理器系统中的PIO核进行设置。 (1)打开 Qsys软件,对PIO核进行设置。
(2)完成其他操作及生成NIOS II系统。
3.在QUARTUS II工程,更新NIOS II系统,编译、设置引脚,全程 编译,下载硬件设计.sof文件。
4.使用NIOS II Software Build Tools For Eclipse
二关的操作意外,还 需要注意以下几个问题。 (1)为什么本次实验不用开发板上的案件,而要接入 矩阵键盘?可否调整一下,直接使用开发板上的案件 呢? (2)掌握BSP库文件中,相关文件的作用,充分利用 相关文件,辅助C语言编程。 (3)要注意确认下载的文件、工程文件夹、NIOS II 软件工程目录,具体的指向位置,不可随意,否则编 译下载可能会出现莫名其妙的问题。
设置IO端口弱上拉的方式
注释2.因矩阵键盘接直接接 FPGA的IO端口上,无外接上拉 电路,电路工作可能不稳定。 因此,设置IO端口芯片内部上 拉,同样可以实现上拉功能。 PIN Planner默认不显示上拉选 项,需要调出。
1.在上图区域内,右键,调出 右键对话框,选择【customize columns】。
1.启动QUARTUS II,创建或移动系统设计工程(略)
2.启动Qsys对原NIOS II处理器系统中的PIO核进行设置
(1)打开 Qsys软件,对PIO核进行设置
位宽6位, 2输入,4 输出。
双向(三 态)输入 输出。
初始值,1, 灯不亮。
1.选择菜单栏,启动Qsys软件。
或直接在文件导航栏上双击
{ i++;
} } return 0; }
(b)读写端口值变化,实现按键值变化。
(c)边沿捕获编程,实现按键值变化
实验拓展
拓展要求: (1)将按键和LED分别用两个不同的PIO内核进行控制。 (2)简化(b)和(c)的代码。
拓展提示: (1)注意多个PIO内核的命名和软件编程时的调用。
(2)创建软件工程中,需创建BSP。 (3)注意实验代码中注释的阅读,从中总结代码编写经验。 (4)若软件编译下载不成功,在以下两个方向思考:
系统需求:
1.实验之前,请以课件为基础,预习实验内容。 2.在指定的文件夹存储、命名各工程项目和文件。 3.规范实验报告的书写内容和格式。
一.实验原理
1.0 系统需求分析
NIOS II嵌入式系统的开发,含软件、硬件设计两 大部分。硬件部分主要是NIOS II处理器和其他外围IP的 应用和设置,最终在QUARTUS端产生硬件设计。
开发用户程序并调试。 (1) 删除原工程,再导入工程,修改setting文件内地 址,clean project,refresh,generate BSP。 (2)修改(查看软件工程属性)。 (3)编写代码,编译,改错,调试,下载,观察记录现 象。 (a)修改方向寄存器,编写程序,查看运行情况。 (b)读写端口值变化,实现按键值变化。 (c)边沿捕获编程,实现按键值变化。
以硬件(主要为NIOS II处理器系统)为基础,使 用NIOS II EDS开发系统软件工程。经典的控制方法是采 用数据结构的方式或宏定义的方式。
通过本实验,主要是为了了解:
1.软件工程产生的BSP库文件与硬件设计部分的联系。
2.如何用宏定义的方式设置、使用各类IP核,以实现各类 控制。
本实验开发任务:
4.使用NIOS II Software Build Tools For Eclipse 开发用户程序并调试。
(1) 删除原工程,再导入工程,修改setting文件内地址,clean project,refresh,generate BSP。 (2)修改(查看软件工程属性)。
1.通过菜单栏,启动NIOS II EDS软件, 如上图,调整工作区间为本次实验的 工程文件夹目录。其他步骤参照实验3 内容进行设置。页可以删掉原软件工 程,重新创建软件工程。
int main(void) {
alt_u8 led = 0x0; alt_u32 i;
//本例中,设置6位PIO端口后四位为输出,用写端口、延时方式实现其闪烁。
//PIO模块设置 IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_LED_BASE, 0x35); //输出方向寄 存器,1输出,0 输入,不设置默认0
(a)是否先下载了.sof文件。 (b).sof文件下载的是不是本工程的文件。软件工程的 工作区间是否指向本工程。
实验04:PIO读写控制应用
实验任务:
在新建含PIO工程或在原有工程中,设置PIO核功能,实现 对PIO的控制。
知识点:
1.掌握Qsys修改、增删及重设置IP核的方法。 2.掌握修改NIOS II系统后,硬件的设置、编译及软件工程 部分的更改及设置。 3.掌握PIO寄存器的设置及宏定义控制语句的使用。 4.了解系统相关文件对编程的影响及作用。
while(1) {
led = 0x0; //四个灯全亮 IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);//点亮LED灯
i = 0; while(i<500000) //延时功能,非精确延时,数值太小将无法看到灯的闪烁效

{ i++;
} led = 0xf; //四个灯全灭 IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);//熄灭LED灯 i = 0; while(i<500000) //延时功能,非精确延时,数值太小将无法看到灯的闪烁效 果
相关文档
最新文档