- 0
- 0
- 约2.74千字
- 约 8页
- 2017-11-11 发布于天津
- 举报
奋斗的小孩之altera系列第十七篇按键控制led
FPGA 培训专家
奋斗的小孩之altera 系列
第十七篇 按键控制led
对于每一个的小实验,我们都可以把它看作是一个小项目,逐步
的去分析,设计,调试,最后完成功能。下面我们就开始我们的“小
项目”。
项目名称:按键控制led。
具体要求:按下按键led 亮,释放按键 led 灭。
通过分析上述的“项目名称”和“具体要求”,我们可以设计出如
下的架构:
当我们需要用到外部按键和led 时,我们应该去分析它们的工作
原理,如下:
至芯科技论坛
FPGA 培训专家
独立按键的电路图
Led 的电路图
简单的分析得知:按键按下为低电平,按键释放为高电平。输出
至芯科技论坛
FPGA 培训专家
为高电平时,led 灭,输出为低电平时,led 亮。
在verilog 中/* ······*/,中间的内容会被注释掉,不被编译进
去。‘// ·····’表示这一行//后面的内容会被注释掉,不被编译进去。
设计代码如下:
/*
模块名称:key_led
模块功能:按下按键led 亮,释放按键 led 灭
编写时间:2016-08-11
作者:至芯科技奋斗的小孩
邮箱:zxopenhxs@126.com
*/
module key_led (clk, rst_n, key, led);
input clk;
input rst_n;//低电平有效的复位
input key;
output reg led;//低电平led 亮
always @ (posedge clk or negedge rst_n )
begin // 时序逻辑,异步复位
至芯科技论坛
FPGA 培训专家
if (!rst_n)
begin
led = 1b1;
end
else
begin
if (key == 1b0)
begin//按键按下
led = 1b0;
end
else
begin//按键释放
led = 1b1;
end
end
end
endmodule
激励代码如下:
/*
至芯科技论坛
FPGA 培训专家
模块名称:key_led_tb
模块功能:为key_led 模块提供激励信号
编写时间:2016-08-11
作者:至芯科技奋斗的小孩
邮箱:zxopenhxs@126.com
*/
`timescale 1ns/1ps
module key_led_tb;
reg clk;
reg rst_n;//低电平有效的复位
reg key;
wire led;//低电平led 亮
initial begin
clk = 1b1;
rst_n = 1b0;
key = 1b1;//复位时,按键释放
#
原创力文档

文档评论(0)