小舍YZ 发表于 2017-9-22 17:04:05

数据接收模块程序

数据接收模块程序

如图2

`timescale 1 ns/100 ps
module iic_wreg(data, addr, rst_l, clock, scl_cnt_en, rd_wr_l, cs_l, wrd_add,iic_go, ack_l); //端口列表
inputdata;//处理器输出的数据码
inputaddr;//处理器输出的地址码
input      rst_l;//复位信号
input      clock;//系统时钟
input      cs_l, scl_cnt_en;//系统使能信号
input      rd_wr_l;//命令信号
outputwrd_add;//字地址
output       iic_go;//iic总线启动信号
output       ack_l;//反馈给处理器的响应信号
//寄存器型
reg   wrd_add;
reg          iic_go;
reg          ack_l;
//寄存器参数
parameter    w_add=2'b00;//地址寄存器
parameter    d_add=2'b01;//数据寄存器
parameter    s_add=2'b10;//状态寄存器
always@(posedge clock or negedge rst_l)
if(!rst_l)
wrd_add <= #1 8'b0;
else if(cs_l&&!rd_wr_l&&(addr= =w_add))
wrd_add <= #1 data;
always@(posedge clock or negedge rst_l)
if(!rst_l)
iic_go<= #1 1'b0;
else if(cs_l&&!rd_wr_l&&(addr= =w_add))
iic_go<= #1 1'b1;//iic总线的启动信号
else if(scl_cnt_en)
iic_go<= #1 1'b0;
//反馈响应信号
always@(posedge clock or negedge rst_l)
if(!rst_l)
ack_l<= #1 1'b1;
else if(cs_l)
ack_l<= #1 1'b0;
else
ack_l<= #1 1'b1;
endmodule

页: [1]
查看完整版本: 数据接收模块程序