一 顶层模块: 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