使用Quartus软件在DE2-115开发板上用Verilog语言实现三八译码器、四位加法器以及七段数码管显示

目录

一、准备实验软件和开发板

二、实验过程

1、三八译码器

1、配置quartus工程文件

2、敲写代码

​编辑

3、查表并配置引脚

4、烧录

5、实验结果

2、四位全加器

1、敲写代码

2、查表并配置引脚

3、烧录后结果

3、四位全加器结果在七段数码管显示

1、敲写代码

2、查表并配置引脚

3、烧录后结果

三、号召


一、准备实验软件和开发板

本次实验所用到的软件有:quartus、modelsim(可选)

quartus下载链接: https://pan.baidu.com/s/1QSVbJ9TXbsGq1WtT8VzQUA?pwd=d7gt 提取码: d7gt

注:这链接里面是一个pdf,是quartus的下载教学,modelsim我暂时没有下载链接。 

开发板:DE2-115开发板

二、实验过程

1、三八译码器

1、配置quartus工程文件

打开Quartus,选择File->new Project Wizard...

在第一排设置文件存储位置,第二排设置文件名。注:文件路径和名字不能存在中文

Family处选择Cyclone IV E,Name filter处输入EP4CE115F29C7,然后选择下方的同名芯片就是DE2-115中的芯片

然后点击Finish后找到左上角的创建新文件

找到并点击Verilog HDL File

然后就会出现下图

2、敲写代码

在其中复制进以下代码:

module decoder3_8 (  
    input [2:0] A,    // 3个按钮的输入  
    output reg [6:0] Y // 7个led灯的输出 
);  

    always @(*) begin  
        case (A)  
            3'b000: Y = 7'b0000000; // A = 0, Y0 = 1  
            3'b001: Y = 7'b0000001; // A = 1, Y1 = 1  
            3'b010: Y = 7'b0000010; // A = 2, Y2 = 1  
            3'b011: Y = 7'b0000100; // A = 3, Y3 = 1  
            3'b100: Y = 7'b0001000; // A = 4, Y4 = 1  
            3'b101: Y = 7'b0010000; // A = 5, Y5 = 1  
            3'b110: Y = 7'b0100000; // A = 6, Y6 = 1  
            3'b111: Y = 7'b1000000; // A = 7, Y7 = 1  
            default: Y = 7'b0000000; // 默认情况下,所有输出为0  
        endcase  
    end  

endmodule

然后点击编译

将该文件保存到你建立的文件夹下。注:module后的名称必须和你保存的文件名一致

若编译失败,原因可能很多,我提供一个可能原因:没默认设置顶部实体,找到下图位置点击即可解决

3、查表并配置引脚

找到并点击Assignments->Pin Planner

接下来会跳转置这个界面

现在我们先规划一下引脚设置

三八译码器要用到3个按钮和7个led灯

我们可以选择

通过查表我们可以得知这3个按钮和8个led灯在芯片中的引脚号

DE2-115的中文手册链接我也放这儿了:

 https://pan.baidu.com/s/11giuzmLEX3d7Vp74Es7PAw?pwd=89fy 提取码: 89fy 

按照查表结果,给对应的输入输出位置设置引脚

设置完后再编译一次

4、烧录

 找到并点击上方的烧录按钮

跳转置下图界面

打开DE2-115开发板电源

按照下图顺序设置

点击start

在烧录过程中可能出现俩个问题:

1、如下图中没出现芯片。解决方法:重新打开项目文件。

2、没有安装驱动。问题解决方法:

打开电脑的设备管理器,找到DE2-115开电后显示感叹号的位置,点击安装驱动,在本机有的驱动中选择,在quartus软件文件中找到驱动,位置在下图中,选择俩个其中的一个即可,若一个不行就选另一个。

5、实验结果

2、四位全加器

新建立一个项目,步骤按照三八译码器步骤即可

1、敲写代码
module a4_ (  
    input [3:0] A, // 四位数 A  
    input [3:0] B, // 四位数 B  
    output reg [4:0] seg1
);     
    wire [4:0] sum;
	 assign sum = A + B;
    always@(*)
	 seg1 = sum;  
endmodule

编译后进入下一步

2、查表并配置引脚

 四位加法器要用到8个按钮和5个led灯

我们可以选择

通过查表我们可以得知这8个按钮和5个led灯在芯片中的引脚号

将对应引脚填入

编译一遍后进入下一步

3、烧录后结果

3、四位全加器结果在七段数码管显示

新建立一个项目,步骤按照三八译码器步骤即可

1、敲写代码
module decoder3_8 (  
    input [3:0] A, // 四位数 A  
    input [3:0] B, // 四位数 B  
    output reg [6:0] seg1, // 第一个数码管显示  
    output reg [6:0] seg2,  // 第二个数码管显示  
	 output led0
);  
    wire [4:0] sum; // 5位,用于存放 A+B 的结果  
    reg [3:0] tens, units; // 结果的每一位  
    // 计算 A 和 B 的和  
    assign sum = A + B;  
	 assign led0 = 1'd1;
    // 将和分解为四个十进制位  
    always @(*) begin  
        tens = (sum % 100) / 10;  
        units = sum % 10;  

        // 将每一位数编码为7段数码管    
        seg2 = ~to_7seg(tens);  
        seg1 = ~to_7seg(units);  
    end  
    // 从4位二进制到7段数码管的编码转换  
    function [6:0] to_7seg(input [3:0] num);  
        case(num)  
            4'd0: to_7seg = 7'b0111111; // 0  
            4'd1: to_7seg = 7'b0000110; // 1  
            4'd2: to_7seg = 7'b1011011; // 2  
            4'd3: to_7seg = 7'b1001111; // 3  
            4'd4: to_7seg = 7'b1100110; // 4  
            4'd5: to_7seg = 7'b1101101; // 5  
            4'd6: to_7seg = 7'b1111101; // 6  
            4'd7: to_7seg = 7'b0000111; // 7  
            4'd8: to_7seg = 7'b1111111; // 8  
            4'd9: to_7seg = 7'b1101111; // 9  
            default: to_7seg = 7'b0000000; // Off  
        endcase
    endfunction
endmodule

编译一遍后进入下一步

2、查表并配置引脚

 四位全加器结果在七段数码管显示

要用到8个按钮和俩个七段数码管

我们可以用

通过查表我们可以得知这8个按钮和俩个七段数码管在芯片中的引脚号

将对应引脚填入

编译一遍后进入下一步

3、烧录后结果

三、号召

这次实验教学在网上有很多,但我在做的过程中遇到的部分问题,在其他博客中没有提出,所以我想做一个总体的解决在这个实验中出现的问题的博客,如果c友在实验中遇到了问题,可以来博客下留言或者私信我,我可以帮你看看,然后把问题解决方式增加到博客中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值