怎么做网站导航,三门峡做网站,电脑优化软件推荐,淘宝网站首页设计分析IIC系列文章: (1)I2C 接口控制器理论讲解 (2)I2C接口控制设计与实现 (3)I2C连续读写实现 (4)使用IIC进行多数据读取测试 文章目录 前言一、control_RD_req模块二、顶层文件(IIC_control_EEPROM)三、测试文件(control_RD_req_tb)前言
使用已完成的IIC模块,将256个数据写入…IIC系列文章: (1)I2C 接口控制器理论讲解 (2)I2C接口控制设计与实现 (3)I2C连续读写实现 (4)使用IIC进行多数据读取测试 文章目录 前言一、control_RD_req模块二、顶层文件(IIC_control_EEPROM)三、测试文件(control_RD_req_tb) 前言
使用已完成的IIC模块,将256个数据写入,然后将256个数据读出,测试该模块写入与读取是否正常。
提示:以下是本篇文章正文内容,下面案例可供参考
一、control_RD_req模块
该模块主要用于读写测试的状态转换,其中状态CNT_1和CNT_2是计时5000000ns的延时,这个是仿真模型的两次操作时间间隔,小于这个延时的,操作就会有问题,初始阶段addr 为0000;写入 wrdata为 8’h00,当数据读出后让地址与数据自加1。当地址为256(0-255)是进入STOP状态。
`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)beginwrreg_req = 0;rdreg_req = 0;count = 0;curr_state = IDLE;addr = 16'h0000;wrdata = 8'h00;endelse begin case (curr_state) IDLE : begin