数码管

硬件开发

新建原理图

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

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

timer

这7个模块。首先熟悉一下 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),所以Width设置为8,Direction设置为Output。单击Finish完成设置。

    重命名如下:

  2. 添加PIO,作为数码管的位选信号。双击打开后,根据实际需要选择位宽(Width)和方向(Direction),所以Width设置为4,Direction设置为Output。单击Finish完成设置。

  3. 添加定时器模块timer

  4. 连线,即将右面 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. Seg_duan模块的S1连接处理器nios2的data_master;

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

  2. Seg_wei模块的S1连接处理器nios2的data_master;

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

  3. timer模块的S1连接处理器nios2的data_master;

  4. 设置复位信号。

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

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

原理图添加IP模块

参照实验二(led),重新调用脚本对引脚进行配置

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

nios II--实验7——数码管IP硬件部分的更多相关文章

  1. nios II--实验7——数码管IP软件部分

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

  2. DE1-SOC开发板上搭建NIOS II处理器运行UCOS II

    DE1-SOC开发板上搭建NIOS II处理器运行UCOS II   今天在DE1-SOC的开发板上搭建NIOS II软核运行了UCOS II,整个开发过程比较繁琐,稍微有一步做的不对,就会导致整个过 ...

  3. 【小梅哥SOPC学习笔记】NIOS II处理器运行UC/OS II

    SOPC开发流程之NIOS II 处理器运行 UC/OS II 这里以在芯航线FPGA学习套件的核心板上搭建 NIOS II 软核并运行 UCOS II操作系统为例介绍SOPC的开发流程. 第一步:建 ...

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

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

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

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

  6. 初探NIOS II之hello_world

    平台背景: 操作系统:win7  64bit 开发板:DE2-115 Quartus ii:15.0及配套的NIOS ii开发平台 一.硬件系统的建立 1.在Quartus里新建工程,这是很基本的就不 ...

  7. 给NIOS II CPU增加看门狗定时器并使用

    给NIOS II CPU增加看门狗定时器并使用   配置看门狗定时器: 设置计时溢出时间为1秒 计数器位宽为32位 勾选No Start/Stop control bits 勾选Fixed perio ...

  8. 【推荐图书】+ 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例+C#入门经典等

    [推荐图书]+ 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例+C#入门经典等 3赞 发表于 2016/7/4 21:14:12 阅读(1921) 评论(3) 初次接触FPGA,到 ...

  9. Nios ii调试问题集

    如果定义了一个类的.hpp,而在相应的.cpp中定义其中的函数时,根本找不到定义的类,这说明类在定义时出错,要注意类括号后的冒号. 2. 问题1:NiosII/Eclipse 中遇到“Launchin ...

随机推荐

  1. Let's Encrypt 正式出發(免费HTTPS证书即将到来)

    转自:https://blog.gslin.org/archives/2015/10/20/6073/lets-encrypt-%E6%AD%A3%E5%BC%8F%E5%87%BA%E7%99%BC ...

  2. 深入理解Nginx之调试优化技巧

    在开发过程中,我们经常会碰到段错误等异常,这时我们需要有相应的机制来进行调试,特别是服务提供在线上时,面对大量的日志信息,合理的调试处理机制对于开发来说是一件非常重要的事情,幸好Nginx本身提供了很 ...

  3. Spark SQL 官方文档-中文翻译

    Spark SQL 官方文档-中文翻译 Spark版本:Spark 1.5.2 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 Data ...

  4. android 利用Path.cubicTo 画 贝塞尔曲线

    Path.cubicTo void android.graphics.Path.cubicTo(float x1, float y1, float x2, float y2, float x3, fl ...

  5. android XML布局 属性与运用

    padding 设置组件四边的间距,如20.0dip

  6. plain framework 1 参考手册 入门指引之 代码风格

    代码风格 介绍 介绍 框架自身采用了google的C++风格,作者也鼓励在你的应用中使用此风格,有关此风格你可以查阅相关资料了解.下面是一段plain framework中的代码,以便大家参考: 你可 ...

  7. file_get_contents模仿浏览器头(user_agent)获取数据

    本篇文章是对file_get_contents模仿浏览器头(user_agent)获取数据进行了详细的分析介绍,需要的朋友参考下     什么是user agentUser Agent中文名为用户代理 ...

  8. USACO1.1Broken Necklace[环状DP作死]

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

  9. vs2015产品密钥

    HM6NR-QXX7C-DFW2Y-8B82K-WTYJV 博主验证有效

  10. IT菜鸟的第2天(输入输出,数据类型,运算符的使用)

    1:输入输出 另一种读写方法: 注释:Console.Write(Line{自动换行})是输入,string xxx = Console.ReadLine();是输出. string :字符串类型   ...