第一范文网 - 专业文章范例文档资料分享平台

FPGA课程设计报告 - 图文

来源:用户分享 时间:2025/7/24 20:02:16 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

//系统输入

reg clk;//外部输入时钟 reg rst_n;//系统复位

reg key_rd;//读信号(低电平有效) //系统输出

wire scl;//iic的时钟线

wire [15:0] data_out;//输出数据 wire sda; //iic的数据线

iic iic(

.clk(clk), //外部输入时钟 .rst_n(rst_n), //系统复位

.key_rd(key_rd), //读信号(低电平有效) .scl(scl), //iic的时钟 .sda(sda), //iic的数据线 .data_out(data_out)//输出数据 );

initial begin clk = 1; rst_n = 0; key_rd = 1;

#1000.1 rst_n = 1; #10000

key_rd = 0;//读信号有效

#40000 key_rd = 1;//读写号释放 end

always #10 clk=~clk; //50M的时钟

endmodule

top.v文件代码

module top(

clk, //外部输入时钟 rst_n, //系统复位

key_in, //读信号(低电平有效) scl, //iic的数据线 sda, //iic的时钟线 sel, seg );

input clk; //外部输入时钟 input rst_n; //系统复位

19

input key_in;//读信号(低电平有效) //系统输出

output scl; //iic的时钟线 inout sda; //iic的数据线 output [2:0] sel; output [7:0] seg;

wire key_out;

wire [15:0] data_out;

key_filter key_filter( .clk (clk), .rst_n (rst_n),

.key_in (key_in), .key_out(key_out) );

iic iic(

.clk (clk), //外部输入时钟 .rst_n (rst_n), //系统复位

.key_rd (key_out), //读信号(低电平有效) .scl (scl), //iic的数据线 .sda (sda), //iic的时钟线 .data_out (data_out) //输出数据 ); led led(

.clk (clk), .rst_n (rst_n), .data_in (data_out),

.sel (sel), //位选

.seg (seg) //段选 都是低电平点亮 );

endmodule

top_tb.v文件代码

module top_tb;

reg clk; //外部输入时钟 reg rst_n; //系统复位

reg key_in; //读信号(低电平有效) wire scl; //iic的数据线 wire sda; //iic的时钟线

20

wire [2:0] sel; wire [7:0] seg;

initial begin clk = 1; rst_n = 0; key_in = 1;

#1000.1 rst_n = 1; #10000

key_in = 0; //读信号有效 #40000 key_in = 1;//读写号释放 end

always #10 clk=~clk; //50M的时钟

top top(

.clk (clk), //外部输入时钟 .rst_n (rst_n), //系统复位

.key_in (key_in), //读信号(低电平有效) .scl (scl), //iic的数据线 .sda (sda), //iic的时钟线 .sel (sel), .seg (seg) );

endmodule

key_filter.v文件代码

`timescale 1ns/1ps

module key_filter(clk, rst_n, key_in, key_out);

parameter MASK_TIME = 1_00; //20ms/20ns=10^6

input clk; input rst_n; input key_in;

output reg key_out;

localparam s0 = 1'b0; localparam s1 = 1'b1;

reg temp;

reg [31:0] count; reg state;

21

always @ (posedge clk, negedge rst_n) begin

if (!rst_n) begin

count <= 0; key_out <= 1; temp <= 1; state <= s0; end else

case (state)

s0 : if (key_in == temp) state <= s0; else

begin

temp <= key_in; state <= s1; end

s1 : if (key_in == temp)

if (count < MASK_TIME) begin

count <= count + 1; state <= s1; end else

begin

key_out <= temp; count <= 0; state <= s0; end else

begin

count <= 0; temp <= key_in; state <= s1; end endcase end

endmodule

led.v文件代码

22

搜索更多关于: FPGA课程设计报告 - 图文 的文档
FPGA课程设计报告 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c266rf9lqih0vngl59en9_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top