FPGA第一天

先说大概,通过FPGA让按键控制数码管的显示。

quartus ii的使用随便找本书就行了,网上也有图片示例的操作,这就不说了。我用的书《FPGA应用开发入门典型实例》。

让数码管显示,我还是51单片机的思想,来个输入,再来个输出控制。先从简单的开始

从网上复制过来一个程序:
/*
共阳极七段数码管的译码电路,输入要求显示的数字,输出七段码的译码信号
*/
`timescale 1ns/1ns

module SEG7_LUT(Dig_in,Seg_o);
input[3:0] Dig_in;
output reg[6:0] Seg_o;

always@(Dig_in)
begin
    case(Dig_in)
        4'h0: Seg_o=7'b1000000; //  -----
        4'h1: Seg_o=7'b1111001; // |     |
        4'h2: Seg_o=7'b0100100; // |     |
        4'h3: Seg_o=7'b0110000; //  -----
        4'h4: Seg_o=7'b0011001; // |     |
        4'h5: Seg_o=7'b0010010; // |     |
        4'h6: Seg_o=7'b0000010; //  -----
        4'h7: Seg_o=7'b1111000;
        4'h8: Seg_o=7'b0000000;
        4'h9: Seg_o=7'b0011000;
        default: Seg_o=7'b1111111;
    endcase
end

endmodule

来源:http://bbs.socvista.com/archiver/?tid-3353.html

 

根据我自己买的那个开发板,上有四个按键,和几个数码管输出,小改了一下:

`timescale 1ns/1ns

module led7(Dig_in,Seg_o,Seg_s);
 input[3:0] Dig_in;
 output reg[6:0] Seg_o;
 output reg Seg_s;                  //这个是用来控制位选的,这个地方先显示一位(做起来再说^_^)

 always@(Dig_in)
 begin
  Seg_s<=0;
  case(Dig_in)
   4'h0: Seg_o=7'b1000000; //  -----
   4'h1: Seg_o=7'b1111001; // |     |
   4'h2: Seg_o=7'b0100100; // |     |
   4'h3: Seg_o=7'b0110000; //  -----
   4'h4: Seg_o=7'b0011001; // |     |
   4'h5: Seg_o=7'b0010010; // |     |
   4'h6: Seg_o=7'b0000010; //  -----
   4'h7: Seg_o=7'b1111000;
   4'h8: Seg_o=7'b0000000;
   4'h9: Seg_o=7'b0011000;
   default: Seg_o=7'b1011101;
  endcase
 end
endmodule

 

选好引脚,通过编译,按着书上Tools-->Programmer设置好后,下载进我的开发板,出了效果OK

你可能感兴趣的:(input)