查看: 935|回复: 0

【小脚丫Step FPGA】FPGA学习记录(1)----微风细雨

[复制链接]
  • TA的每日心情
    郁闷
    2017-12-4 18:33
  • 签到天数: 94 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2015-11-19 08:58:55 | 显示全部楼层 |阅读模式
    分享到:
    折腾了这么久,从今天开始好好玩玩FPGA。
    不管是单片机,DSP,还是高大上的FPGA,大多数实验都是从点灯开始。那么今天先从按键点灯开始讲。
    功能实现:
    按下板卡上的KEY1,KEY2,点亮或者熄灭对应的LD1,LD2。
    功能分析:
    首先分析一下板卡上按键与LED的电路:

    可见,均为上拉操作。在按键未按下时,KEY1/KEY2输出高电平,当按键按下时,KEY1/KEY2输出低电平。同理,在LED1/LED2电平为高时,LED熄灭,当LED1/LED2电平为低电平时,LED点亮。
    既然需要利用按键控制LED灯,那么按键的动作必须作为一个触发事件。当按键按下或者弹起时,事件触发。(本文选择按下作为触发条件,即信号的下降沿。)当下降沿产生是,对应的LED灯反转状态。
    代码实现如下:
    module btn_led_module(        input clk,        input wire [1:0]btn,        output wire [1:0]led);        //defination of the register        reg [1:0]btn_reg0;        reg [1:0]btn_reg1;        wire [1:0]btn_neg;        reg [1:0]led_reg;                //get the negedge of btn[1:0]        always@(posedge clk)begin                btn_reg0 <= btn;                btn_reg1 <= btn_reg0;        end                assign btn_neg = btn_reg1 & (~btn_reg0);        //light the led[1:0]        always@(posedge clk)begin                if(btn_neg[0])                        led_reg[0] <= ~led_reg[0];                else                        led_reg[0] <= led_reg[0];        end                always@(posedge clk)begin                if(btn_neg[1])                        led_reg[1] <= ~led_reg[1];                else                        led_reg[1] <= led_reg[1];        end                assign led = led_reg;endmodule此处需要提醒的是,上电复位后,芯片输出引脚默认为低电平。所以上电后,LED灯就已经点亮。按下KEY后,对应的LED熄灭,再次按下同一个KEY后,LED又被点亮。
    管脚分配如下:(个人制作,还望笑纳)

    本实验暂未考虑按键消抖,将在下一节讲解。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 17:51 , Processed in 0.115598 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.