FPGA进阶教程二--组合逻辑电路的Verilog实现

版权说明:未经许可,不得转载

 

一.目的

1.了解FPGA在组合逻辑电路中的实现过程

2.掌握组合逻辑电路的设计方法

3.学习7段数码显示管的使用方法

 

二.工具

1.Digilent Anvy1 开发板

2.安装ISE Design Suite软件的pc机一台

3.USB数据线一根

 

三.简单上手实验内容

1.使用开关SW0~SW6完成对6个7段显示器的控制。

1)SW3~SW0控制显示的数据,从0到F;

2)SW6~SW4控制用六个7段数码管,000对应7SD-1,001对应7SD-2,一次类推,101对应7SD-6,其他情况下都不显示。

 

四.实验原理

详细原理见FPGA原理2

这里给出相关引脚信息,见下图:

五.实验步骤级结果分析

设计过程:

SW3~SW0可对应4位2进制总共16位数,正好是0到F。

并且0-F的7段数码管对应信息如下(1代表亮,0代表暗):

0: 7'b1111110;

1: 7'b0110000;

2: 7'b1101101;

3: 7'b1111001;

4: 7'b0110011;

5: 7'b1011011;

6: 7'b1011111;

7: 7'b1110000;

8: 7'b1111111;

9: 7'b1111011;

'hA: 7'b1110111;

'hB: 7'b0011111;

'hC: 7'b1001110;

'hD: 7'b0111101;

'hE: 7'b1001111;

'hF: 7'b1000111;

由此,我们就可以写出源程序:

.v文件:

 

module test21(

    input [3:0] x,

input [2:0] y,

    output reg [0:6] z1,

output reg [5:0] z2

    );

 

always@(*)

begin

case(x)

0:z1=7'b1111110;

1:z1=7'b0110000;

2:z1=7'b1101101;

3:z1=7'b1111001;

4:z1=7'b0110011;

5:z1=7'b1011011;

6:z1=7'b1011111;

7:z1=7'b1110000;

8:z1=7'b1111111;

9:z1=7'b1111011;

'hA:z1=7'b1110111;

'hB:z1=7'b0011111;

'hC:z1=7'b1001110;

'hD:z1=7'b0111101;

'hE:z1=7'b1001111;

'hF:z1=7'b1000111;

default z1=7'b1111110;

endcase

case(y)

0:z2=6'b000001;

1:z2=6'b000010;

2:z2=6'b000100;

3:z2=6'b001000;

4:z2=6'b010000;

5:z2=6'b100000;

default z2=6'b000001;

endcase

end

endmodule

 

.ucf文件:

 

NET x<0> LOC=V5;

NET x<1> LOC=U4;

NET x<2> LOC=V3;

NET x<3> LOC=P4;

NET y<0> LOC=R4;

NET y<1> LOC=P6;

NET y<2> LOC=P5;

NET z1<0> LOC=AA21;

NET z1<1> LOC=AA22;

NET z1<2> LOC=Y22;

NET z1<3> LOC=N15;

NET z1<4> LOC=AB19;

NET z1<5> LOC=P20;

NET z1<6> LOC=Y21;

NET z2<0> LOC=P16;

NET z2<1> LOC=M17;

NET z2<2> LOC=N16;

NET z2<3> LOC=P19;

NET z2<4> LOC=AA20;

NET z2<5> LOC=AB21;

 

实验结果截图如下:





六.实验总结

1.本实验需要注意实验所用的Digilent Anvy1开发板上数码管为共阴极数码管还是共阳极数码管。

2.实验中对7段数码管编码的时候,要注意[6-0]对应的是g-a。

 

由于笔者的知识和水平有限,文章中不足之处在所难免,恳请各位读者赐正。

---------------------------------@weekdawn 版权所有--------------------------------------

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值