文章目录

  • 前言
  • 1.流水灯显示
  • 2.串口循环输出“Hello Nios-II”字符串到笔记本电脑

前言

学习 Quartus-II 、Platform Designer、Nios-II SBT 的基本操作;初步了解 SOPC 的开发流程,基本掌握 Nios-II 软核的定制方法;掌握 Nios-II 软件的开发流程,软件的基本调试方法。

完成以下实验:1) 流水灯显示; 2) 串口循环输出“Hello Nios-II”字符串到笔记本电脑。


1.流水灯显示

第一步:从开始菜单启动Quartus II 13.1(64 bit) ,如下

第二步:菜单栏选择File—>New Project Wizard,新建工程

第三步:弹出新建工程对话框,点击Next,下一步

第三步:如下图,依次设置工程的存放路径,工程名称,顶层文件名称,如图依次设置好,这里我们将所有工程相关的文件放在prj文件夹内,便于工程文件与源码文件的管理,同时要保持工程名称与顶层实体名称一致,继续Next
第四步:添加设计文件,这一步我们不需要添加,后续我们会新建相应的代码文件。这里继续Next

第五步:选择FPGA器件,如图所示,这里我们选择器件家族是CycloneIV系列的,封装是FBGA,管脚数为256,速度等级为8。这里速度等级越小,速度越快。这里我们FPGA的具体型号为EP4CE6F17C8。大家通过这个对话框了解这个器件的基本资源。这里我简单介绍一下这些资源的名称,在后面的章节里我们还会详细讲解FPGA内部资源与结构。

1、CoreVoltage是内核电压,Cyclone IV的内核电压是1.2V。

2、LE是Altera最基本的逻辑单元,LEs表示FPGA的所有的逻辑资源, 我们这款芯片的逻辑资源数为6272。

3、User I/Os表示用户IO数,这里共有180个IO可以供用户使用。

4、Memory Bits与embedded multiplier 9-bit elements实际是一回事,后者简称M9K,M9K就是指位宽为9bit,深度为1K的RAM。这里一共有30个M9K,大家计算一下9102430=276480就是Memory Bits。

5、PLL锁相环,内部一共有两个锁相环。

6、Global clocks全局时钟网络数,这里一共有10个。设计中的时钟信号会优先全局时钟资源。
第六步:设置EDA工具,这里我们就设置一下仿真工具,使用默认Modelsim

-Altera,语言选择Verilog。实际后面我们不建议大家使用Modelsim-Altera。我们会推荐大家在直接使用Modelsim-SE,后者的通用性更强。继续Next。
第七步:总结新建工程的基本信息。到这里就完成工程的建立

第八步:新建verilog源文件,如下图,点击新建文件图标,或者通过菜单栏File—>New打开新建文件向导
在新建文件向导中,选择Verilog HDL File,点击OK。

因为我们已经配置过UltraEdit为默认编辑器,此时会打开UltraEdit(注意:UltraEdit编辑Verilog代码前,要添加语法高亮文件,详见3.3.3节内容),弹出新建源文件,将源文件另存至src文件夹下,命名为led_test.v与顶层实体名称一致。我们将源码文件和工程文件放在不同文件夹下,方便日后的工程维护。

编写代码逻辑,这里我们实现了一个流水灯。这里我们用了一个27位的计数器,时钟频率为50MHz,周期为20ns,当计数到第25位置位时,计数器值为25’d16777216,此时时间为16777216*20ns=335ms。这样每大约经过335ms,计数器的[26:24]位就会加1。我们第一个always实现计数器,第二个always实现控制不同时间时LED的输出,即每隔335ms改变一次LED的输出状态
实验代码:

module led_test(input                  i_clk,      //input clk ,50mhzinput                  i_rst_n,    //reset, active lowoutput reg  [3:0]o_led      //led out);reg    [26:0]         led_count;   //-------------------------------------------------------------------
// 流水灯计数器
//-------------------------------------------------------------------
always @ (posedge i_clk or negedge i_rst_n)beginif(!i_rst_n)led_count  <=27'd0;  elseled_count  <=led_count   +   27'd1;                  end//-------------------------------------------------------------------//  计数器bit24置1,表示已大约计数335ms,每隔335ms,led_count[26:24]自动加1//-------------------------------------------------------------------      always @ (posedge clk or negedge i_rst_n)beginif(!i_rst_n)o_led   <=4'b1111;    else begincase(led_count[26:24]) //when 25th bit set= 335ms3'b000:     o_led<=  4'b1110;       3'b001:     o_led<=  4'b1101;   3'b010:     o_led<=  4'b1011;  3'b011:     o_led<=  4'b0111;  3'b100:     o_led<=  4'b1100;      3'b101:     o_led<=  4'b1001;  3'b110:o_led   <=  4'b0011;3'b111:     o_led<=  4'b0000;      default:    o_led<=  o_led;  endcaseendend
endmodule


2.串口循环输出“Hello Nios-II”字符串到笔记本电脑

第一步 创建工程如同1中的一样


第二步:选择合适芯片进行FPGA开发

第三步 设置tools中Qsys设置

第四步 配置,线路连接:


第五步 然后保存文件,关闭Qsys。
回到Quarters,选择New->Verilog HDL File。
实验代码

module hello_world(input clk,input reset_n
);
//此处的代码可以通过Qsys中的Generate->Generate Example,复制里面的内容,粘贴到此处,进行相应的修改
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

第八周---FPGA流水灯显示和串口循环输出实验相关推荐

  1. FPGA流水灯和跑马灯

    FPGA流水灯和跑马灯 流水灯和跑马灯的区别: 流水灯具体实现: 跑马灯具体实现: 流水灯和跑马灯的区别: 流水灯顾名思义就是让 LED 如同流水一般,从无灯亮,到亮一个,再到亮二个,以此类推,亮 3 ...

  2. [Keil][Verilog][微机原理] 流水灯、存储器、外部中断实验_北京邮电大学计算机原理与应用课程实验报告

    计算机原理与应用实验-流水灯.存储器.外部中断实验 1 实验一 流水灯实验 1.1 实验目的 掌握ARM开发工具的使用. 掌握基本IO的使用. 1.2 实验原理及内容 电路结构图 实现流水灯的电路结构 ...

  3. 基于STM32安装Stm32CubeMX,配合Keil完成LED流水灯和USART串口通讯程序,及其管脚的时序波形观察

    目录 一.使用HAL库完成LED流水灯 (一).用STM32CUBEMX生成工程文件 (二).用Keil仿真调试并生成hex文件 (三).用STM32串口烧录程序 (四).实物连接 二.使用HAL库完 ...

  4. FPGA流水灯(间隔1S)

    代码: `timescale 1ns/1ns module zyl_light(input clk,input rst,output reg[3:0] led_out );//1s一次,计数50000 ...

  5. 基于FPGA的花样流水灯

    今天一个学弟来问我关于状态机的事,我就给他讲了下经典的三段式状态机,然后就让他试着用状态机去点亮几个LED灯. 状态一:让所有的灯全部熄灭:状态二:全部的灯按照奇偶位的来进行闪烁:状态三:全部的灯从左 ...

  6. FPGA拨码开关控制流水灯(VHDL)

    一.实验目的 1.根据FPGA 开发板资源设计拨码开关控制流水灯实验: 2.利用VHDL 语言自行设计拨码开关控制流水灯程序: 3.在FPGA 开发板上验证. 二.实验原理 FPGA 芯片外部输入的固 ...

  7. verilog 8位流水灯_用单片机控制的LED流水灯设计

    1.引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代.单片机具有体积小.功能强.成 ...

  8. 基于 Nios II 的串口打印和流水灯设计【使用 Quartus 软件】【掌握 SOPC 开发流程】

    目录 一.前言 二.实验步骤 第一步:硬件部分设计 1)建立新项目 2)进行 Qsys 系统设计 3)完成 Qsys 设计的后续工作 4)原理图设计 5)编译工程及物理针脚分配. 第二步:软件部分设计 ...

  9. 单片机led流水灯实验c语言程序,单片机LED流水灯实验及流程图源代码详解

    利用实验室提供的单片机实验开发板的最小系统电路模块.流水灯电路模块,以及Protues仿真软件搭建电路,实现I/O口循环流水灯演示效果. LED流水灯控制电路如图2-1所示,八个LED灯D0-D7(可 ...

最新文章

  1. Oracle Connect to an idle instance
  2. VR/AR行业发展至今,它的市场规模如何
  3. luoguP5035金坷垃
  4. 清华90后博士后万蕊雪:科研这场马拉松,我会一直跑下去
  5. linux系统无法识别固态硬盘_linux查看硬盘是不是ssd
  6. OpenCV中Mat属性step,size,step1,elemSize,elemSize1
  7. 百度C2C对决淘宝的两把利器
  8. 拓端tecdat|matlab估计arma garch 条件均值和方差模型
  9. 毕设题目:Matlab电力负荷预测
  10. PLSQL注册码,亲测,可用
  11. wampserver图标为绿色,打开localhost页面错误提示:The requested URL / was not found on this server
  12. PS中添加插件 无法加载扩展,未经正确签署的解决方法
  13. SSH服务移植到ARM单板
  14. Disney Springs - 迪士尼之泉
  15. 操作系统原理分析实验
  16. SpringBoot 项目文件上传过大报错不返回解决方案
  17. 跨境电商wish账户被禁用暂停的原因有哪些?wish店铺封号注意事项
  18. HTML中的bgcolor,background,与color的初步小节
  19. 线性稳压电源和开关电源到底有什么区别
  20. 易知微入选「2022爱分析·低代码厂商全景报告」|共创数字孪生未来

热门文章

  1. 加勒比海盗——最优装载问题
  2. VMware Workstation创建虚拟机快照
  3. Yeelight LED智能灯泡(彩光版)代码控制(含pdf资料)
  4. illumina 双端测序(pair end)
  5. python 手机自动化交易股票_通达信转python,机智股票自动交易手机版
  6. WIN7电脑防火墙如何设置?
  7. 天馈线频谱综合信号测试仪是什么 什么品牌的好用
  8. 高性能无线综合测试仪 无线电综合测试仪 ---TFN PM5100 100KHz-1GHz
  9. 提问技巧(特别适用IT)
  10. 模电——开关电源中电容的放置及其取值