verilog实现IIC时序逻辑控制.pdf

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
verilog实现IIC时序逻辑控制

Verilog 实现IIC 时序逻辑 控制代码 (注释详细,验证可用) Email:xxxxx0901@126.com Address: Haidian.Beijing.China 2015-04-09 Verilog 实现IIC 时序逻辑控制代码 (注释详细,验证可用) 2015-04-09 一 顶层模块: module iic_top( clk,rst_n, sw1,sw2, scl,sda, sm_cs1_n,sm_cs2_n,sm_db ); input clk; // 50MHz input rst_n; //复位信号,低有效 input sw1,sw2; //按键1、2,(1 按下执行写入操作,2 按下执行读操作) output scl; // 24C02 的时钟端口 inout sda; // 24C02 的数据端口 output sm_cs1_n,sm_cs2_n; //数码管片选信号,低有效 output[6:0] sm_db; //7 段数码管(不包括小数点) wire[7:0] dis_data; //在数码管上显示的 16 进制数 iic_com iic_com( .clk(clk), .rst_n(rst_n), .sw1(sw1), .sw2(sw2), .scl(scl), .sda(sda), .dis_data(dis_data) ); led_seg7 led_seg7( .clk(clk), .rst_n(rst_n), .dis_data(dis_data), .sm_cs1_n(sm_cs1_n), .sm_cs2_n(sm_cs2_n), .sm_db(sm_db) ); endmodule 二 IIC 时序模块: module iic_com( clk,rst_n, sw1,sw2, scl,sda, dis_data ); input clk; // 50MHz input rst_n; //复位信号,低有效 input sw1,sw2; //按键1、2,(1 按下执行写入操作,2 按下执行读操作) output scl; // 24C02 的时钟端口 inout sda; // 24C02 的数据端口 output[7:0] dis_data; //数码管显示的数据 // //按键检测 // reg sw1_r,sw2_r; //键值锁存寄存器,每20ms 检测一次键值 reg[19:0] cnt_20ms; //20ms 计数寄存器 always @ (posedge clk or negedge rst_n) if(!rst_n) cnt_20ms = 20d0; else cnt_20ms = cnt_20ms+1b1; //不断计数 always @ (posedge clk or ne

您可能关注的文档

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档