Spartan-6 ax309学习日记7——按键 、使用ISE RTL Viewer

本文介绍了使用Spartan-6AX309开发板实现按键控制LED灯的电路设计,涉及硬件连接、代码逻辑分析(包括按键消抖用DFlip-flops)、以及RTL图和编译过程,确保按键信号稳定控制LED状态。
摘要由CSDN通过智能技术生成

目录

一、前言

 二、硬件连接分析

三、代码逻辑分析以及编写

四、RTL图分析

一、前言

连接开发板,上电,调试串口是否正常连接。

目标:实现不按按键时,灯灭,按按键对应的灯亮(闪烁)

对应关系key0---led0,以此类推。 

 二、硬件连接分析

ax309开关按键部分电路,如图可知按键抬起为高电平、按键按下为低电平,而led是共阴极,高电平输入亮,怎么使按键按下产生高电平输出并且连接到led输入端是我们的设计核心。 

三、代码逻辑分析以及编写

代码逻辑设计:按键按下本身低电平输出怎么转换为led的高电平输入——反相器

那么我们都知道按键存在抖动,如何消抖——锁存器

常见的消抖电路、以及消抖原理:Spartan-6 ax309学习日记7——按键消抖电路、原理_永远前进不waiting的博客-CSDN博客

设计图:

在clk控制下, 第一级寄存器的作用是在时钟上升沿时将按键信号锁存。这样,即使按键信号出现短暂抖动,只要在一个完整的时钟周期内抖动结束,在下一个时钟上升沿触发时,将保留稳定的按键状态。第二级寄存器的作用是在第一级寄存器的基础上再次锁存,确保即使在第一个时钟上升沿和第二个时钟上升沿之间的抖动期间,LED的状态仍然是稳定的。这样,可以防止抖动期间的高低电平变化对LED的控制产生干扰。


代码段如下:

`timescale 1ns / 1ps
module key_test
(
	input                 clk,       //system clock 50Mhz on board
	input [3:0]           key,       //input four key signal,when the keydown,the value is 0
	output[3:0]           led        //LED display ,when the siganl high,LED lighten
);

reg[3:0] led_r;           //define the first stage register , generate four D Flip-flop 
reg[3:0] led_r1;          //define the second stage register ,generate four D Flip-flop
always@(posedge clk)
begin
	led_r <= ~key;        //first stage latched data
end

always@(posedge clk)
begin
	led_r1 <= led_r;      //second stage latched data
end

assign led = led_r1;

endmodule 

ucf文件

NET "clk" LOC = T8 | TNM_NET = sys_clk_pin;
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 50000 kHz;

########LED Pin define#####################
NET led<0>             LOC = P4 | IOSTANDARD = "LVCMOS33";       ## LED1
NET led<1>             LOC = N5 | IOSTANDARD = "LVCMOS33";       ## LED2
NET led<2>             LOC = P5 | IOSTANDARD = "LVCMOS33";       ## LED3
NET led<3>             LOC = M6 | IOSTANDARD = "LVCMOS33";       ## LED4
########KEY Pin define#####################
NET key<0>             LOC = C3 | IOSTANDARD = "LVCMOS33";       ## KEY1
NET key<1>             LOC = D3 | IOSTANDARD = "LVCMOS33";       ## KEY2
NET key<2>             LOC = E4 | IOSTANDARD = "LVCMOS33";       ## KEY3
NET key<3>             LOC = E3 | IOSTANDARD = "LVCMOS33";       ## KEY4

四、RTL图分析

  1. 编译成功,三个绿色勾                            
  2. 结果和预期一致,接着下载到芯片中即可
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值