集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1060|回复: 0

数据接收模块程序

[复制链接]
小舍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); //端口列表
input  [7:0]  data;//处理器输出的数据码
input  [1:0]  addr;//处理器输出的地址码
input        rst_l;//复位信号
input        clock;//系统时钟
input        cs_l, scl_cnt_en;//系统使能信号
input        rd_wr_l;//命令信号
output  [7:0]  wrd_add;//字地址
output       iic_go;//iic总线启动信号
output       ack_l;//反馈给处理器的响应信号
//寄存器型
reg   [7:0]  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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-20 09:26 , Processed in 0.070588 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表