第6周-实验2-Nios-II入门实践

实验任务: 在DE2-115开发板上分别用Verilog和Nios软件编程两种方式完成LED流水灯显示,理解两种方式的差异;   用Nios软件编程通过DE2-115开发板串口输出“Hello Nios-II”字符到笔记本电脑串口助手。

NiosII实现hello world

 

 设置系统时钟

 添加Nios II Processor,然后在搜索框中,输入nio,找到Nios II Processor,点击Add

 

 添加On_Chip Memory,然后在搜索框中,输入on_chip,找到On_Chip Memory,点击Add

 

 JTAG UART的添加,然后在搜索框中,输入jtag,找到JTAG UART,点击Add

 

 System ID Peripheral的添加,在搜索框中,输入sys,找到System ID Peripheral,点击Add

 

 IP核的连接

 对Reset Vector和Exception Vector的设置,设置完成后,选择Finish

 

 系统分配地址,然后选择System->Assign Base Address,选择Generate->Generate,保持默认设置,点击Generate,选择Save,然后保存文件,关闭Qsys。

创建顶层文件,回到Quarters,选择New->Verilog HDL File

module hello_world(
    input clk,
    input reset_n
);
system_qsys u_qsys (
        .clk_clk       (clk),       //   clk.clk
        .reset_reset_n (reset_n)  // reset.reset_n
    );

endmodule

软件设计

打开Nios II Software Build Tools for Eclipse

 创建文件
File->New->Nios II Application and BSP from Template

 打开hello_world中的.c文件

#include <stdio.h>

int main()
{
  printf("Hello world!\n");

  return 0;
}

点击保存,选择hello_wold_bsp,右键后,选择Nios II中的Generate BSP

硬件的下载

 软件的下载

 最终结果

 

1.PIO的相关介绍
PIO IP核:Avalon-MM从端口和通用I/O端口提供了一个存储器映射(memory-mapped)接口。
用户逻辑或外围器件提供了简单的I/O控制
例如控制LED灯,获取按键的电平变化信息,控制显示设备,与片外器件通信(SPI,I2C)
寄存器
实现流水灯

添加其他IP核,添加PIO,然后在搜索框上输入pio,选择PIO(Parallel I/O),点击Add

 

点击finish,保持默认设置,连接时钟和复位

 

设置led的输出

 

 创建顶层文件,回到Quarters,选择New->Verilog HDL File,顶层文件内容

module hello_world(
    input clk,
    input reset_n,
    output  [3:0] led
);
system_qsys u0 (
        .clk_clk       (clk),       //   clk.clk
        .reset_reset_n (reset_n), // reset.reset_n
        .led_export    (led)     //   led.export
    );

endmodule

软件设计

#include <stdio.h>
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
const alt_u8
led_data[4]={0x01,0x03,0x07,0x0F};
int main (void) {
 int count=0;
 alt_u8 led;
 volatile int i;
 while (1)
  {
      if (count==4)
      {
          count=0;
      }
      else
      {
          count++;
      }
      led=led_data[count];
      IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, led);
      //延时的设置
      i = 0;
      while (i<5000000)
          i++;
   }    
 return 0;
}

点击保存,选择hello_wold_bsp,右键后,选择Nios II中的Generate BSP,编译应用文件,选择hello_world右键后,点击Build Project

硬件和软件下载

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值