IIC系列文章:
(1)I2C 接口控制器理论讲解
(2)I2C接口控制设计与实现
(3)I2C连续读写实现
(4) 使用IIC进行多数据读取测试
前言
使用已完成的IIC模块,将256个数据写入,然后将256个数据读出,测试该模块写入与读取是否正常。
提示:以下是本篇文章正文内容,下面案例可供参考
文章来源:https://www.toymoban.com/news/detail-663791.html
一、control_RD_req模块
该模块主要用于读写测试的状态转换,其中状态CNT_1和CNT_2是计时5000000ns的延时,这个是仿真模型的两次操作时间间隔,小于这个延时的,操作就会有问题,初始阶段addr 为0000;写入
wrdata为 8’h00,当数据读出后让地址与数据自加1。当地址为256(0-255)是进入STOP状态。文章来源地址https://www.toymoban.com/news/detail-663791.html
`timescale 1ns / 1ps
//
// Create Date: 2023/08/17 16:18:01
// Tool Versions: Vivado 2018.3
// Module Name: control_RD_req
//
module control_RD_req(
input Clk,
input Rst_n,
input str_go,
input RW_Done,
output reg wrreg_req,
output reg rdreg_req,
output reg [15:0]addr,
output reg [7:0]wrdata
);
parameter a_second = 18'd249999;
reg [17:0]count;
reg [4:0]curr_state;
parameter IDLE = 6'b000001,
WRITE = 6'b000010,
CNT_1 = 6'b000100,
READ = 6'b001000,
CNT_2 = 6'b010000,
STOP = 6'b100000;
always @ (posedge Clk or negedge Rst_n)
if(!Rst_n)
begin
wrreg_req <= 0;
rdreg_req <= 0;
count <= 0;
curr_state <= IDLE;
addr <= 16'h0000;
wrdata <= 8
到了这里,关于使用IIC进行多数据读取测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!