用于在FPGA上反跳按钮的Verilog代码

此项目是用于在FPGA上反跳按钮的Verilog代码。这项目是将为FPGA上的按钮提供一个简单的防抖Verilog代码。机械开关/按钮在切换时会导致信号中无法预测的反弹。 有多种方法可以为FPGA上的按钮实现去抖动电路。 在该项目中,在Verilog中实现了一个简单的去抖动电路,当按下FPGA上的一个按钮时,该电路仅产生单个脉冲。在附件文件中包括:FPGA上按钮的反跳电路、在FPGA上反跳按钮的Verilog代码、用于反跳按钮的Testbench Verilog代码等等。

预览截图

应用介绍

此项目是用于在FPGA上反跳按钮的Verilog代码。这项目是将为FPGA上的按钮提供一个简单的防抖Verilog代码。机械开关/按钮在切换时会导致信号中无法预测的反弹。 有多种方法可以为FPGA上的按钮实现去抖动电路。 在该项目中,在Verilog中实现了一个简单的去抖动电路,当按下FPGA上的一个按钮时,该电路仅产生单个脉冲。在附件文件中包括:FPGA上按钮的反跳电路、在FPGA上反跳按钮的Verilog代码、用于反跳按钮的Testbench Verilog代码等等。【注意,此代码将在设计中创建另一个时钟域,因此在设计时必须注意多时钟域问题,例如在不同时钟域之间连接信号(需要同步器等)。 无需在设计中创建另一个慢速时钟,我们可以生成时钟使信号来驱动两个去抖触发器。】本人在预览区展示了FPGA上按钮的反跳电路、去抖电路的预期波形图、按钮去抖动的仿真波形图、用于反跳按钮的Verilog代码的仿真波形图;同时在下方也展示了在FPGA上反跳按钮的Verilog代码;想了解得更多请下载附件。

//fpga4student.com
// FPGA projects, Verilog projects, VHDL projects
// Verilog code for button debouncing on FPGA
// debouncing module 
module debounce(input pb_1,clk,output pb_out);
wire slow_clk;
wire Q1,Q2,Q2_bar;
clock_div u1(clk,slow_clk);
my_dff d1(slow_clk, pb_1,Q1 );
my_dff d2(slow_clk, Q1,Q2 );
assign Q2_bar = ~Q2;
assign pb_out = Q1 & Q2_bar;
endmodule
// Slow clock for debouncing 
module clock_div(input Clk_100M, output reg slow_clk
    );
    reg [26:0]counter=0;
    always @(posedge Clk_100M)
    begin
        counter <= (counter>=249999)?0:counter+1;
        slow_clk <= (counter < 125000)?1'b0:1'b1;
    end
endmodule
// D-flip-flop for debouncing module 
module my_dff(input DFF_CLOCK, D, output reg Q);
    always @ (posedge DFF_CLOCK) begin
        Q <= D;
    end
endmodule

文件列表(部分)

名称 大小 修改日期
用于在FPGA上反跳按钮的Verilog代码.txt0.94 KB2020-03-28
button_debouce1.png27.09 KB2020-03-28
button_debouce2.png29.49 KB2020-03-28
button_debouce3.png14.38 KB2020-03-28
debouncing_button_verilog.jpg37.82 KB2020-03-28
image0.00 KB2020-03-28

立即下载

相关下载

[算术逻辑单元(ALU)的Verilog代码] 此项目是算术逻辑单元(ALU)的Verilog代码。上一次,在VHDL中设计并实现了算术逻辑单元(ALU)。 提出了用于ALU的完整VHDL代码。现在,apollocode提供了ALU的Verilog代码。 还提供了用于ALU的testbench Verilog代码以进行仿真。附件中包括:ALU的Verilog代码、ALU的Testbench Verilog代码、ALU的仿真波形。了解更多请下载附件。
[16位RISC处理器的Verilog代码] 此项目是16位RISC处理器的Verilog代码。在此Verilog项目中,提供了用于16位RISC处理器的Verilog代码。RISC处理器是基于其指令集和哈佛式数据路径结构而设计的。 然后,RISC处理器在Verilog中实现,并使用Xilinx ISIM进行验证。附件中包括:RISC处理器的指令集、处理器控制单元设计、ALU控制单元设计、RISC处理器的Verilog代码等等;了解更多请下载附件。
[Full Adder的Verilog代码] 此项目是Full Adder的Verilog代码。在此Verilog项目中,提供了Full Adder的Verilog代码。 Full Adder的行为和结构Verilog代码均已实现。附件中包括:使用行为代码的完整加法器的Verilog代码、完整加法器的Verilog代码,使用结构代码。想了解的更多请下载附件。
[比较器的Verilog代码] 此项目是比较器的Verilog代码。在该项目中,在Verilog HDL中设计并实现了一个简单的2位比较器。 给出了真值表,K-Map和比较器的最小化方程。 比较器的Verilog代码由ModelSim仿真,并给出了仿真波形。2位比较器的规格如下:输入:2位A和B用于比较;输出:A_greater_B:如果A> B,则为高,否则为低;A_equal_B:如果A = B,则为高,否则为低;A_less_B:如果A [D触发器的Verilog代码] 此项目是D触发器的Verilog代码。D触发器是数字逻辑电路中的基本组件。 此项目中提供了D触发器的Verilog代码。 实现了两种类型的D型触发器,即上升沿D型触发器和下降沿D型触发器。附件文件中包括:上升沿D型触发器的Verilog代码、带有同步复位的上升沿D触发器的Verilog代码、具有异步复位高电平的上升沿D触发器的Verilog代码、具有异步复位低电平的上升沿D触发器的Verilog代码等等。了解更多请下载附件。
[4x4乘法器的Verilog代码] 此项目是4x4乘法器的Verilog代码。该项目将使用Verilog HDL实现4x4乘法器。所使用的技术是移位/相加算法,但不同的功能是使用两相自计时系统,以将乘法时间减少一半。此附件文件包括:乘法器的Verilog代码、4x4乘法器的仿真结果。注意:一旦确定了启动信号,乘法器便开始执行乘法。 通过创建2个相位时钟,它将乘法时间减少了一半。结束信号,通知乘法器乘法已经完成并且结果准备就绪。

评论列表 共有 0 条评论

暂无评论

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部