云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > FPGA课程设计报告 - 图文

FPGA课程设计报告 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/6/6 11:53:57

//系统输入

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课程设计报告 - 图文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

//系统输入 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

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com