Led

硬件开发

新建原理图

1、打开Quartus II 11.0,新建一个工程,File -> New Project Wizard…,忽略Introduction,之间单击 Next> 进入下一步。分别设置工程工作目录、工程名称。这里需要注意的是工程工作目录中请使用英文,不要含有空格等,否则在后面使用Nios II IDE的时候会出现问题。设置好后如图1所示。然后进行下一步。这里工程命名为lab2_led

2、添加已经存在的文件,这里没有需要添加的文件,直接单击 Next> 进入下一步。进行器件设置。使用的是 Cyclone IV家族的 EP4CE6E22C8芯片,选择好后直接进入下一步。进行EDA工具设置,由于工程中不进行仿真等,故不进行设置,如果需要进行ModelSim仿真,则在Simulation行中,选择Tool Name 为ModelSim-Altera(这里根据所安装的ModelSim版本进行选择),Format(s)选择为Verilog HDL(这里也是根据所掌握的硬件描述语言进行选择)。点击 Next> ,进入了Summary(摘要)页面,然后单击 Finish 完成即可。

3、新建 Block Diagram/Schematic File (方块图/原理图文件)。单击 File -> New..,选择Design Files中的Block Diagram/Schematic File,单击OK即可。

QSys调用模块

  1. 启动Qsys 工具,进行IP模块的调用。单击 Tools -> Qsys  ,进入Qsys设置界面。系统已经默认添加了时钟模块,名称为 clk_0 ,这里选中 clk_0,右击,选择Rename,将其名称更改为clk。以下再添加任何模块,都进行类似的名称更改,更改名称的方法类似,就不在重复叙述了。

  1. 添加软核处理器的各部分模块。总共需要添加

Nios II Processor、

JTAG UART、

System ID Peripheral

EPCS Serial Flash Controller

Sdram controller

pio

这6个模块。首先熟悉一下 Qsys 的界面。左面Component Library,是系统提供的元件库,里面有一些构成处理器的常用模块。右面是已经添加到系统的模块,也就是说,Nios II 软核处理器是可以定制的,根据具体需要来。在Component Library中搜索Nios II Processor,双击即可进行配置。首先需要选择的是Nios II 核心的类型。Nios II 软核的核心共分成三种,为e型、s型以及f型。e型核占用的资源最少,功能也最简单,速度最慢。s型核占用资源其次,功能和速度较前者都有所提升,f型核的功能最多,速度最快,相应的占用资源也最多,选择的时候根据需求和芯片资源来决定,这里选择s核。然后单击 Finish,结束当前配置。

  1. 添加SDRAM Controller,这里使用的SDRAM芯片,大小为64M      B = 1M x 16Bit x 4Banks,具体的其他内容大家可以查看其datesheet。

重命名为sdram;

  1. 添加EPCS/EPCQx1 Serial Flash Controller,这里不用进行任何设置,直接单击Finish完成即可。

  2. 添加Jtag下载调试接口。在元件库中搜索 jtag uart。双击进行设置。由于系统没有特殊要求,因此这里选择默认配置即可。单击 Finish 结束当前配置。

  1. 添加系统ID模块。系统ID是系统与其他系统区别的唯一标识。在元件库中搜索 system id peripheral,双击进行设置。这里随便进行设置,如设置为123。单击 Finish,结束当前配置。

  1. 添加PIO。双击打开后,根据实际需要选择位宽(Width)和方向(Direction),这里使用的是4个LED,所以Width设置为4,Direction设置为Output。单击Finish完成设置。

    重命名如下:

  2. 连线,即将右面 Connections栏目中的相关线通过设置节点进行连接。首先所有模块的clk连接起来。

然后片内存储器sdram的s1和处理器nios2的data_master和instruction_master相连。

JTAG调试模块jtag_uart的avalon_jtag_slave和处理器nios2的data_master相连。

系统ID模块sysid_qsys的control_slave和处理器nios2的data_master相连。

  1. Led_pio模块的S1连接处理器nios2的data_master;

    设置led_pio的输出端口,并重命名端口名;

  2. 设置复位信号。

  1. 处理器nios2的中断和jtag_uart的中断、epcs_flash的中断相连接。

  1. epcs_flash后面的小锁单击,将其锁上。

  2. 进行软核的相关设置。首先双击nios2,进入处理器设置模块。在Core Nios II标签下,Reset vector memory设置为epcs_flash.epcs_control_port,Exception vector memory设置为sdram.s1,然后单击Finish完成设置。

  1. 单击 System -> Assign Base Addresses,这时候会发现下部Messages窗口中原先的错误全部没有了,变为0 Errors,0 Warnings。如果不是这个结果,返回去按步骤检查。

  1. 单击 File -> Save,进行保存,这里保存文件名为lab2_led。
  2. 最后,选择Generation选项卡,设置Create simulation model为None,然后单击下面的Generate,进行生成。时间较长,大家耐心等待。

  3. 完成后单击close即可,然后关闭Qsys回到Quartus II界面。

原理图添加IP模块

  1. 添加niosII核

    双击Block1.bdf的空白处,打开Symbol对话框。选择project

  2. 添加PLL

    单击右下角的MegaWizard Plug-In Manager…,进入宏模块调用界面。

    选择Creat a new custom megafunction variation,单击 Next> 进入下一步,在What name do you want for the output file下面的地址后面添加输出文件的名称PLL。然后在右侧搜索框中搜索ALTPLL,选中即可,这一步主要为系统添加时钟模块,然后单击 Next>进入下一步。

    弹出ALTPLL设置对话框,这里在 General栏目的What is the frequency of the inclk0 input?地方,将时钟更改为50MHz。

    接着按照以下流程进行设置:

    接着一直默认设置,一直next到一下窗口,点击Finish。

    这时会弹出一个Quartus II IP Files对话框,单击Yes完成即可,不需要进行任何操作。然后单击Symbol对话框中的OK即可,然后将模块放在Block1.bdf中即可。

  3. 连接、添加引脚

    双击打开Symbol对话框,在Name中and2,添加与门。

    点击选择要添加引脚的模块,右击,选择generate pins for symbol ports。

    对引脚进行重命名,如下所示:

  4. 单击 Project -> Add/Remove Files in Project…,单击File name后面的浏览按钮,选择.qsys文件,单击Add将其添加进来,然后单击OK。
  5. 配置引脚

    首先,进行编译,然后采用脚本文件进行配置,toolsàtcl scripts;

  6. 设置工程参数

    设置AS配置器件EPCS4

    设置双用引脚;

  7. 综合,由于时间较长,请耐心等待。

每日推送不同科技解读,原创深耕解读当下科技,敬请关注微信公众号“科乎”。

nios II--实验2——led硬件部分的更多相关文章

  1. FPGA回忆记事(一):基于Nios II的LED实验

    实验一:基于Nios II的LED实验 一.    创建Quartus II工程 1.打开Quartus II环境.开始->程序->Altera->Quartus II 9.1. 2 ...

  2. nios II--实验6——串口硬件部分

    串口 硬件开发 新建原理图 打开Quartus II 11.0,新建一个工程,File -> New Project Wizard…,忽略Introduction,之间单击 Next> 进 ...

  3. nios II--实验5——定时器硬件部分

    定时器 硬件开发 新建原理图 打开Quartus II 11.0,新建一个工程,File -> New Project Wizard…,忽略Introduction,之间单击 Next>  ...

  4. nios II--实验2——led软件部分

    软件开发 首先,在硬件工程文件夹里面新建一个software的文件夹用于放置软件部分:打开toolsàNios II 11.0 Software Build Tools for Eclipse,需要进 ...

  5. 给NIOS II CPU添加一颗澎湃的心——sysclk的使用

    给NIOS II CPU添加一颗澎湃的心——系统时钟的使用 本实验介绍如何在Qsys中添加一个定时器作为NIOS II的心跳定时器,并在NIOS II中软件编程使用该定时器. 将上一个实验watchd ...

  6. Nios II 系统时钟timestamp的应用

    在用Nios II做外设时序驱动的时候,经常会用延时函数.有时会常使用某个FPGA芯片和时钟,比如笔者一直使用的芯片是cyclone系列 EP2C35F484C8N,PLL输入SOPC时钟是50M.因 ...

  7. FPGA与simulink联合实时环路系列——实验二LED

    实验二LED 实验内容 在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对 ...

  8. nios II--实验3——led 100M软件部分

    软件开发 参照实验二(led),该实验与实验二(led)的不同之处在于系统的时钟由50M提成为100M.运行结果,在调试窗口输出Hello from Nios II!,并且板上的四个LED灯流动显示, ...

  9. NIOS ii 流水灯

    为了做项目的前期验证工作,实验室购买了某开发板,下面是基于该板子的实现过程.作为笔记记录,供入门者参考. 1:创建一个Quartus II的工程 next选择器件,然后finish.我的器件是cycl ...

随机推荐

  1. Linux磁盘管理之设备文件详解04

    Linux一切接文件,除了普通文件和目录文件,还包括一些其它的特殊文件:块设备文件.字符设备文件.套接字文件.链接文件等.今天这里主要说一下常见的块设备文件和字符设备文件,这2类是最常见的设备文件类. ...

  2. 浅谈C++设计模式之抽象工厂(Abstract Factory)

    抽象工厂(Abstract Factory)模式是为了提供一系列相关或相互依赖对象的接口.对象创建型模式的一种. 客户Client 抽象工厂接口AbstractFactory 抽象工厂的实现类Conc ...

  3. Linux vim(4)

    vim相对于vi做了很多的提升: -VIM支持多集撤销 -VIM可以跨平台运行 —VIM支持语法高亮 -VIM支持图形界面 vim三大模式: command mode vi进入时的默认模式 esc进入 ...

  4. spring mvc 详细配置(转)

    转自: http://www.cnblogs.com/superjt/p/3309255.html 现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是 ...

  5. java设计模式之命令模式

    学校中.生活中.社会中总是会存在一定的阶层,虽然我们很多人都不可认可阶层的存在.命令这一词也就在阶层中诞生.家长命令孩子,老师命令学生,领导命令小娄娄.这些都在我们的生活存在的东西,相信这一个模式学习 ...

  6. Stanford机器学习笔记-9. 聚类(Clustering)

    9. Clustering Content 9. Clustering 9.1 Supervised Learning and Unsupervised Learning 9.2 K-means al ...

  7. POJ 1228 Grandpa's Estate --深入理解凸包

    题意: 判断凸包是否稳定. 解法: 稳定凸包每条边上至少有三个点. 这题就在于求凸包的细节了,求凸包有两种算法: 1.基于水平序的Andrew算法 2.基于极角序的Graham算法 两种算法都有一个类 ...

  8. 洛谷P2331 [SCOI2005] 最大子矩阵[序列DP]

    题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 输入输出格式 输入格式: 第一行为n,m,k(1≤n≤100,1≤m≤2 ...

  9. 如何查看文件是dos格式还是unix格式的?

    一.背景 由于windows和linux对换行的标识不一样,不同系统的代码传递导致代码格式的改变中可能会带来程序无法正常编译通过的问题.因此根据一些编译的错误提示,可以定位到是文件格式的问题,要对程序 ...

  10. 实现了与maya场交互的能力

    今天把模拟节点与maya场的对接做好了,效果如图: 图中黄色线为每个节点受到的外力,由于加了一个重力场,所以外力都是竖直向下. 节点连线方式如图所示: 交互的具体方法是在每次模拟之前,更新每个节点所受 ...