已有工程:Model(在此基础上进行)

FPGA型号:Cyclone IV E - EP4CE40F23C8

其结构:GPIO_PA、GPIO_PB、GPIO_PC、GPIO_PD:左边四排插座。点击Pin Planner查看管脚

左上角的按钮:复位。

复位键右边:USB Blaster

FPGA电源:12V 屏幕电源:5V

敲入代码:实现按下按钮时,对应的LED灯亮。

开机后点击Programmer 选择Hardware里的USB Blaster 然后烧录start

Nios部分:

点击Tools 里的Nios ll Software Build Tools for Eclipse

workspace选择Model里的software

helloagain:放.c .h 主要文件夹 写代码的地方 hello_world.c里写

定义放在define.h里面,然后在其他调用地方#include "define.h"即可

helloagain_bsp:system.h系统相关的文件夹

  • 按键key.c:
if(keyirq==0x1 && keyvalue==0x5)         //SW1  判断sw1是否按下,按下执行下面的过程{}else  if(keyirq==0x1 && keyvalue==0x6)       //SW2{}else  if(keyirq==0x2)          //Clockwise旋钮的顺时针和逆时针,不推荐按下旋钮{}else  if(keyirq==0x4)           //Anti-Clockwise{}
printf("keyirq = 0x%x, keyvalue = 0x%x\n", keyirq, keyvalue);//显示按键的值
  • 触控屏

    //触摸按键if(local_x >= 10 && local_x <= 105 && local_y >= 10 && local_y <= 70){//x坐标在(10,105)  y坐标在(10,70)时,触发}else if(local_x >= 10 && local_x <= 105 && local_y >= 70 && local_y <= 130){}else if(local_x >= 10 && local_x <= 105 && local_y >= 130 && local_y <= 190){}
    
  • lcd 显示动画用 看lcd.h

    清屏:

    void lcdRectClear(u16 xs, u16 ys, u16 xe, u16 ye, u16 color);//区域填白色

    划线:

    void lcdDrawVerLine(u16 x, u16 ys, u16 ye, u16 color);水平 竖直线
    void lcdDrawHorLine(u16 y, u16 xs, u16 xe, u16 color);
    void lcdDrawLine(u16 xs, u16 ys, u16 xe, u16 ye, u16 color);斜线

    字符串:

    void lcdDispStringSmall(u16 xs, u16 ys, u16 fore, u16 back, const charstr);
    void lcdDispStringBig(u16 xs, u16 ys, u16 fore, u16 back, const char
    str);

    输出整数:

    void lcdDispDecSmall(u16 xs, u16 ys, u16 fore, u16 back, int dec);
    void lcdDispDecBig(u16 xs, u16 ys, u16 fore, u16 back, int dec);

    lcdDispDecBig(100,100,BLACK,WHITE,2018302120011);//输出

    输出浮点数:

    void lcdDispFloatSmall(u16 xs, u16 ys, u16 fore, u16 back, float flo);
    void lcdDispFloatBig(u16 xs, u16 ys, u16 fore, u16 back, float flo,int weishu);

    画网格:

    void lcdDrawGrid(u16 xs, u16 ys, u8 row, u8 col, u8 width, u16 color);

    参数:x,y:恒纵坐标 xs,ys:起始坐标 xe,ye:结束坐标

    颜色:color:

    enum COLOR {BLACK = 0x0000,NAVY = 0x000F,DGREEN = 0x03E0,DCYAN = 0x03EF,MAROOON = 0x7800,PURPEL = 0x780F,OLIVE = 0x7BE0,LGRAY = 0xC618,DGRAY = 0x7BEF,BLUE = 0x001F,GREEN = 0x07E0,CYAN = 0x07FF,RED = 0xF800,MAGENTA = 0xF81F,YELLOW = 0xFFE0,WHITE = 0xFFFF,BACKGROUND = 0xFFFF,
    };
    

    分辨率:水平分辨率:HDP 800; 垂直分辨率:VDP 480

    在main()的while(1)里编程:

    int main() {printf("Hello lemon\n");if (deviceInit() < 0) {printf("device initial failed\n");return -1;}//project_init();lcdRectClear(0,0,HDP,VDP,WHITE);while (1){lcdDispDecBig(100,100,BLACK,WHITE,20201120);}return 0;
    }
    

    运行:点击Run 下面的Run Confiqurations ——Target Connection 遇到问题选上复选框

然后点Refresh Connections 更新后点击Run

效果:可以在触摸屏上显示“20201120”

Qsys部分:

  • 连接硬件和Nios
  • 搜索pio 点击PIO (Parallel I/O):

  • 设置选项:Bidir双向 InOut输入输出 Input输入 Output输出(Nios向FPGA其他硬件输出信号)

Output Port Reset Value:默认输出的值 选择Output 数据宽度选4 设置好后点击finish

  • 然后修改名字和接口名字:

  • 按照上面模块连线:

  • 为它们分配地址:

  • 分配好后保存,然后点击Generate

里面内容不用改 或者保持与下列内容一致:

生成结束即可关闭:

点击finish关闭

  • 添加文件:(回到quartus)

选择Files

这里可以添加文件。

这里已经默认添加了,点击

查看是否添加pio

上述内容说明已添加。

  • 实例化接口:

实例化后有mios2_inst.v (工程目录下)

  • 复制实例化,并用它替换工程代码下的默认的 nios2 nios2_inst

  • 新的pio的参数改变为自己定义的变量

  • 然后 删除

的最后一行,防止出错。然后编译,然后烧录。

  • Nios和Qsys互联

再次打开Nios,同步地址过程:右键helloagain_bsp:

此时,system.h里面已经添加了new_pio:

  • 现在可以在main()里编程:
int main() {printf("Hello lemon\n");if (deviceInit() < 0) {printf("device initial failed\n");return -1;}//project_init();lcdRectClear(0,0,HDP,VDP,WHITE);while (1){IOWR(NEWPIO_0_BASE,0,10)//(基地址,偏移,值),基地址从system.h里面找lcdDispDecBig(100,100,BLACK,WHITE,20201120);}return 0;
}

这里可能会出错:IOWR()找不到,相应解决:

  • 新建文件夹:

SOPC Information File name文件选择:


作为种子生成。然后填写名字:

然后把helloagain里的.c .h文件复制到新的文件“xxx”:

此时查找不到“system.h”,解决:右键xxx,选择Build All,如下:
把新建的工程编译。

  • 接下来就可以Run:注意改文件名。

Run后就可以看到效果:

IOWR(NEWPIO_0_BASE,0,10);//(基地址,偏移,值),基地址从system.h里面找
//值“10”对应的是1010,LED灯是低电平使能,所以是第二和第四个灯点亮。

Nios和Qsys互连相关推荐

  1. (原創) Altera Technology Roadshow 2011 Taipei (SOC) (Quartus II) (Nios II) (Qsys)

    Abstract 這是我第一次參加Altera一年一度的Technology Roadshow. Introduction 今年的Altera Technology Roadshow是在台北喜來登大飯 ...

  2. 基于Quartus Prime的NiosII基础开发流程

    基于Quartus Prime的NiosII基础开发流程 2018年11月23日 21:44:13 bt_ 阅读数 2246 更多 分类专栏: FPGA 版权声明:本文为博主原创文章,遵循 CC 4. ...

  3. SOPC第一课 建立QSYS系统

    开发板:小梅哥AC620 软件:quartus 13.1 介绍 软核处理器代表:nios II Xilinx 的 microBlaze核 nios II提供强大的HAL系统库支持 2004年推出nio ...

  4. 工程师的NIOS II学习笔记(转)

    来源:嵌入式在线 作者:山城棒棒儿军 发布时间:2009-09-22 12:29:31 Nios Development Board Reference Manual, Stratix II Edit ...

  5. nios ii小实验——第一个demo指导书

    1.新建工程:打开Quartus II 13.0,点击File->New Project Wizard,点击Next后可以看到如图2所示的对话框,选择工程路径给工程命名(注意:工程名必须和顶层模 ...

  6. [FPGA][DE0] Qsys 加入 FLASH 記憶體 方法及步驟

    如何在DE0中設定Qsys加入4MB Flash設定步驟: 步驟1. 先在Qsys中加入Generic Tri-State Controller.其設定如圖1及圖2所示. 圖1 基本設定 圖2 Mod ...

  7. Quartus 调试中的Nios 程序

    FPGA的程序通常包含硬件和软件两部分.正常情况下调试需要分别进行下载,过程繁琐. 为了将Nios II的软件程序包含到.sof文件中方便调试,可以在SOPC Builder中的RAM初始化为Nios ...

  8. NIOS软核处理器入门实验

    NIOS软核处理器入门实验 脚本方式的优势: •便于工程的复制和搬移, 命令脚本能够较好的解决文件路径的相对关系 •便于参数的集中修改,命令脚本的参数相对集中, 在配置文件的集中区域可以完成所有的设定 ...

  9. NIOS II 15:AD7606共享SDRAM

    1.首先登陆analog官网下载此文件 下载此文档如下 2.解压后一会这个文件复制到我们工程内 3.把之前SDRAM工程复制一份,在ip文件夹内复制第2步里边的AD7606文件夹. 4.打开qsys, ...

最新文章

  1. 管道、重定向、vim文本编辑器
  2. 模拟电路技术之基础知识(六)
  3. python爬虫urllib文档_11.【文本】Urllib(下) - 零基础学习Python爬虫系列
  4. 开启HDR视觉盛宴:究竟什么视频算得上HDR?
  5. Solr管理页面 上
  6. ubuntu设置静态ip
  7. 基于React的表单开发的分析(上)
  8. 截取地址栏URL参数
  9. 【开发者成长】每个人都在编写草率代码
  10. 正则表达式的介绍与底层分析
  11. qq群管+引流+娱乐机器人
  12. xp系统能不能安装mysql_win xp32位系统安装mysql详细步骤
  13. 【算法】07 AM-MCMC算法C++实现
  14. Linux下安装hbase
  15. ffmpeg命令操作 合并视频 取图片帧数 获取音频
  16. navicat连接mysql2003错误_navicat连接失败出现2003怎么办
  17. 怎么把PDF转换成图片?这几种转换方法都可以做到
  18. 【华为机试】【校招】【Java】机器人走迷宫(DFS)
  19. Rest Stops
  20. 拉屎的自由,你有吗?

热门文章

  1. 数据库内外联接查询语句
  2. 云服务器上通过wget安装JDK
  3. python文本分类算法_基于Naive Bayes算法的文本分类
  4. 项目管理 之七 SSH、GPG 密钥生成步骤、部署 Github、Gitee 及使用效果
  5. file.exists(),file.isFile()和file.isDirectory()的区别
  6. A Strong Baseline and Batch Normalization Neck for Deep Person Re-identification(论文笔记)(2019CVPR)
  7. 全志T3开发板——嵌入式入门学习测试教程(4)
  8. 桌面悬浮窗口(可拖动)
  9. neogeo模拟器 linux,neogeo模拟器
  10. Win10 无法加载操作系统,因为无法验证文件或某个xx数字签名 蓝屏错误代码0xc0000428