数码管显示电路的Verilog HDL实现

想用FPGA控制4位8段数码管分别显示数字1、2、3、4。假设位选信号为低有效,当位选有效时,段选为0对应的二极管段被点亮。程序如下:

module LED_Display(clk,seg,dp,an);

       input clk;        //输入时钟

       output[6:0] seg;      //7个公共段选信号,从低到高对应七段数码管的ABCDEFG

       output dp;       //小数点段选信号DP

       output[3:0] an;              //4位数码管的位选信号

 

       reg[15:0] count_for_clk=0;   //分频计数器

       reg[3:0] an_reg=0;

       reg[6:0] seg_reg=0;

 

       assign seg=seg_reg;       //7个段选赋值

       assign dp=1;          //小数点段选赋值

       assign an=an_reg;          //4个位选赋值

      

       parameter              //七段数码管显示数字0-9的段选值

              zero=7’b100_0000;

              one=7’b100_0000;

              two=7’b100_0000;

              three=7’b100_0000;

              four=7’b100_0000;

              five=7’b100_0000;

              six=7’b100_0000;

              seven=7’b100_0000;

              eight=7’b100_0000;

              nine=7’b100_0000;

 

       //分频计数器

       always@(posedge clk) begin

              count_for_clk<=count_for_clk+1;

       end

 

       //段选寄存器赋值,4位数码管分时复用

       always@(posedge clk) begin

              case(count_for_clk[15:14])

                     0:    seg_reg<=one;              //数码管1段选

                     1:    seg_reg<=two;       //数码管2段选

                     2:    seg_reg<=three;     //数码管3段选

                     3:    seg_reg<=four;      //数码管4段选

              endcase

       end

 

       //位选寄存器赋值,每次只能选通一位数码管

       always@(posedge clk) begin

              case(count_for_clk[15:14])

                     0:    an_reg<=4’b0111; //选通数码管1

                     1:    an_reg<=4’b1011;        //选通数码管2

                     2:    an_reg<=4’b1101;        //选通数码管3

                     3:    an_reg<=4’b1110; //选通数码管4

              endcase

       end

 

  • 15
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
七段共阳数码管是一种常见的显示设备,由七个LED组成。为了控制数码管显示不同的数字和字符,需要使用译码电路将输入的二进制信号转换为七段共阳数码管的控制信号。 在Verilog HDL实现七段共阳数码管译码电路,可以按照以下步骤进行: 1. 定义输入和输出端口:根据数码管的位数确定输入的二进制信号位数,并将其定义为输入端口。然后定义七段共阳数码管的七个控制信号,将其定义为输出端口。 2. 定义控制信号与输入信号的关系:根据真值表或逻辑表达式,确定每个输入二进制信号与七段共阳数码管的控制信号之间的关系。 3. 编写逻辑电路代码:根据控制信号与输入信号的关系,使用Verilog HDL语言编写逻辑电路代码,实现译码功能。 4. 进行仿真测试:使用Verilog HDL的仿真工具,对译码电路进行仿真测试,验证其功能和正确性。 5. 进行综合与布局布线:根据目标芯片的规格和设计要求,对译码电路进行综合与布局布线,生成实际可用的电路。 6. 下载到目标芯片:将综合布局后的电路下载到目标芯片中,即可实现七段共阳数码管的译码功能。 七段共阳数码管译码电路实现过程相对简单,但需要熟悉Verilog HDL语言和数字逻辑电路的知识。鉴于回答字数限制,以上是一个简要的回答,未能详细展开每个步骤。如有进一步疑问,请进一步咨询。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值