SOPC第一课 建立QSYS系统

开发板:小梅哥AC620
软件:quartus 13.1

  • 介绍
    软核处理器代表:nios II Xilinx 的 microBlaze核
    nios II提供强大的HAL系统库支持
    2004年推出nios II
    在QSYS完成后生成一个系统模块,由QSYS最终生成的系统模块相当于传统的单片机或ARM

本课程任务:
搭建带有2KB指令高速缓存的NIOS II/s
4KB片内ROM存储器(on chip ROM)用来存储程序代码以及程序运行空间
4KB片内RAM存储器(on_chip RAM)用来读取变量、堆栈等空间

在这里插入图片描述
用户可以在nios II指令集仿真器(ISS)上仿真软件运行。如果读者拥有开发板以及USB blaster下载电缆,用户,将能目睹。

  • 搭建QSYS
    QSYS提供GUI界面,所有设置保存在一个以系统命名的qsys文件中。该系统创建了所有的qsys输出文件(HDL逻辑文件、C程序的头文件和库文件、模拟仿真文件等)
    system.qsys:QSYS系统文件(.qsys)–用来描述系统的硬件架构
    system.sopcinfo:sopc信息文件(.sopcinfo)提供给eclipse 硬件信息

在这里插入图片描述

在这里插入图片描述
时钟频率要求要与系统实际运行的时钟频率相匹配。否则一些设计到精确时序参数的外设(定时器、UART、SPI等等)可能无法正常工作
在这里插入图片描述
在这里插入图片描述

复位向量:用来设置CPU复位后从何处开始启动,我们可以将CPU的复位向量设置于FLASH,例如EPCS存储器。这样系统即可上电后自动从flash中复制程序代码到内存中并运行。该选项只有当CPU的存储器系统就绪后方可设置
异常向量:用来存放CPU处理异常事件的代码,例如终端处理代码。在一个典型的系统中,该向量应该指向一个低延迟的存储器,例如SDRAM、SRAM、或者片上存储器(on chip RAM)
fast TLB Miss Exception vextor: 不做介绍,与MMU相关
在这里插入图片描述
本选项主要设置CPU的数据和指令缓存部件
instruction cache:用来缓存NIOS II处理器的各种指令,该缓存大小从512字节到64K字节。
data cache:数据缓存用于存放缓存数据的大小,改缓存大小从512字节到64K字节。
添加ROM和RAM
在这里插入图片描述

不用使能非默认初始化文件,默认会有IDE编译生成给QSYS。
同理,创建4KB的RAM
添加PIO
在这里插入图片描述
设置4个bit的PIO

添加ID
当QSYS生成NIOS系统时,将为该NIOS II系统生成一个ID号。该标识会被写入SYSTEM ID寄存器中,供IDE编译器和用户辨别所运行的程序是否与目标系统匹配。
如果用户程序不是基于IDE的NIOS II系统,那么调试时,NIOS II将阻止用户下载程序到NIOS II系统,当然,我们也可以在调试时候,选择忽略系统ID的核对。

将其PIO双击导出
copy verilog代码
点击generate

搭建软件部分
将QSYS软核纳入工程
在这里插入图片描述
ctrl+K编译综合
在这里插入图片描述
分配管教
在这里插入图片描述
BSP工程创建时会根据.sopcinfo文件中定义的NIOS II系统的硬件信息,生成对应的设备驱动(drivers)HAL库(HAL)以及硬件信息头文件(system.h)
在这里插入图片描述
在这里插入图片描述
在左端将BSP关联起来
在这里插入图片描述
在这里插入图片描述
关闭优化

#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
int main(void)
{
alt_u8 led = 0;
alt_u32 i;
while(1)
{
led = 0;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, led);//点亮LED灯
i = 0;
while(i<500000) //延时功能,非精确延时,数值太小将无法看到灯的闪烁效果
{
i++;
}
led = 1;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, led);//熄灭LED灯
i = 0;
while(i<500000) //延时功能,非精确延时,数值太小将无法看到灯的闪烁效果
{
i++;
}
}
return 0;
}

这部分代码在第二课讲解,为什么这么编写

注意事项:一旦重新编译quartus,就需要重新生成BSP
最后在开发板上面实现了小灯的闪烁。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值