Nios-II入门实践

本文详细介绍了使用Nios-II软核在DE2-115开发板上实现LED流水灯的过程,涵盖了Quartus Prime、Platform Designer和Nios-II SBT的基本操作,包括Verilog代码实现、Nios软件设计以及硬件和软件的调试。
摘要由CSDN通过智能技术生成


一、实验目的

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

二、实验内容

学习 Quartus 、Platform Designer、Nios-II SBT 的基本操作;初步了解 SOPC 的开发流程,基本掌握 Nios-II 软核的定制方法;掌握 Nios-II 软件的开发流程,软件的基本调试方法。
并完成以下试验:
1、在DE2-115开发板上分别用Verilog和Nios软件编程两种方式完成LED流水灯显示,理解两种方式的差异;

三、实验步骤

1、实现流水灯

1、Verilog实现——功能:

第一秒:点亮第一个LED灯,LED灯亮1s
第二秒:熄灭第一个LED灯,点亮第二个LED灯,第二个LED灯亮1s
第三秒:熄灭第二个LED灯,点亮第三个LED灯,第三个LED灯亮1s

2、Verilog实现——设计:

首先肯定需要一个计数器来计时是否已经到1s了。每计时到1s,就说明这个灯已经亮了1s了,该下一个灯亮了,这里可以再用一个计数器来判断状态。

3、Verilog实现——代码:

module water_led (
    clk,
    rst_n,
    leds
);
input           clk;
input           rst_n;
output  [7:0]   leds;

// 1s计时器
reg     [25:0]  cnt0;
wire            add_cnt0;
wire            end_cnt0;
always @(posedge clk or negedge rst_n)
begin
    if (rst_n == 0)
    begin
        cnt0 <= 0;
    end
    else if (add_cnt0)
    begin
        if (end_cnt0)
            cnt0 <= 0;
        else
            cnt0 <= cnt0 + 1; 
    end
end
assign add_cnt0 = 1;
assign end_cnt0 = add_cnt0 && cnt0 == 50_000_000 - 1;  // 开发板的频率是50MHz,所以一秒钟会有50M个周期

// 应该第几个灯亮
reg     [3:0]   cnt1;
wire            add_cnt1;
wire            end_cnt1;
always @(posedge clk or negedge rst_n)
begin
    if (rst_n == 0)
    begin
        cnt1 <= 3'b000;
    end
    else</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值