当前位置: 首页 > wzjs >正文

什么网站能通过做任务赚钱百度推广按效果付费是多少钱

什么网站能通过做任务赚钱,百度推广按效果付费是多少钱,比特币交易网站可以做空吗,临沭做网站第三篇:Verilog实现I2C Master核 副标题 :从零构建工业级I2C控制器——代码逐行解析与仿真实战 1. 架构设计 1.1 模块分层设计 三层架构 : 层级功能描述关键信号PHY层物理信号驱动与采样sda_oe, scl_oe控制层协议状态机与数据流控制state…

第三篇:Verilog实现I2C Master核

副标题 :从零构建工业级I2C控制器——代码逐行解析与仿真实战


1. 架构设计

1.1 模块分层设计

  • 三层架构
层级功能描述关键信号
PHY层物理信号驱动与采样sda_oe, scl_oe
控制层协议状态机与数据流控制state, fifo_ctrl
接口层AXI-Lite/APB寄存器配置接口reg_addr, reg_wdata
  • 模块互联图
    在这里插入图片描述

1.2 可配置参数设计

  • 用户可调参数
    verilog
  parameter CLK_FREQ   = 100_000_000;  // 输入时钟频率  parameter I2C_FREQ   = 400_000;      // I2C目标速率  parameter ADDR_MODE  = 7'b10;        // 7位/10位地址模式  parameter FIFO_DEPTH = 16;           // FIFO深度  
  • 动态配置接口
    verilog
  // 时钟分频系数实时计算  localparam DIVIDER = (CLK_FREQ/(5*I2C_FREQ)) - 1;  

2. 关键代码解析

2.1 状态机核心逻辑

  • 状态转移图

    9大状态IDLE, START, ADDR, ACK1, DATA, ACK2, STOP, ERROR, WAIT
    Verilog状态机代码

  always @(posedge clk) begin  case(state)  IDLE:  if (start) begin  state <= START;  sda_dir <= 1'b1;  // 主机控制SDA  end  START:  if (scl_high) begin  sda_out <= 1'b0;  state <= ADDR;  end  ADDR:  if (bit_cnt == (ADDR_MODE[0] ? 10:7)) begin  sda_dir <= 1'b0;  // 释放SDA  state <= ACK1;  end  // ...其他状态转移逻辑  endcase  end  

2.2 SDA双向端口控制

  • 三态驱动实现
    verilog
  assign sda = (sda_dir) ? sda_out : 1'bz;  assign sda_in = sda;  // 输入采样  
  • 亚稳态防护
    verilog
  always @(posedge clk) begin  sda_sync <= {sda_sync[0], sda_in};  // 双寄存器同步  end  

2.3 SCL时钟生成器

  • 占空比调节逻辑
    verilog
  reg [15:0] clk_cnt;  always @(posedge clk) begin  if (clk_cnt == DIVIDER) begin  scl <= ~scl;  clk_cnt <= 0;  end else begin  clk_cnt <= clk_cnt + 1;  end  end  

3. 仿真验证方案

3.1 自动化测试平台

  • 测试用例矩阵
测试场景覆盖点预期结果
单字节写正常ACK状态机返回IDLE
多字节读时钟拉伸处理数据无误
地址无应答NACK处理触发ERROR状态
总线竞争仲裁丢失恢复自动重传
  • 自动化断言示例
    verilog
  assert property (  @(posedge clk)  (state == ACK1) |-> ##[1:5] $fell(sda_in)  ) else $error("ACK未收到!");  

3.2 覆盖率分析

  • 覆盖率目标
覆盖率类型目标值实际达成
行覆盖率100%98.7%
状态机覆盖率100%100%
条件覆盖率95%92.3%
  • 未覆盖代码分析
  1. 超高速模式(5MHz)下的时序路径  2. 从机主动发起传输的异常处理  

4. 实战案例:AT24C04 EEPROM读写

4.1 写操作波形分析

  • 写时序图
    在这里插入图片描述

  • 关键阶段:

    1. START + 设备地址(0xA0)
    2. 字地址(0x12)
    3. 数据字节(0x55)
    4. STOP

4.2 读操作代码实现

verilog

task read_eeprom;  input [7:0] addr;  output [7:0] data;  begin  // 发送写命令设置地址  i2c_start();  i2c_send_byte(8'hA0);  i2c_send_byte(addr);  i2c_stop();  // 发送读命令  i2c_start();  i2c_send_byte(8'hA1);  data = i2c_recv_byte();  i2c_nack();  i2c_stop();  end  
endtask  

4.3 实测性能数据

操作类型理论耗时(400kHz)实测耗时误差
单字节写2.7ms2.81ms+4.1%
页写入(16B)4.1ms4.25ms+3.7%
随机读3.2ms3.28ms+2.5%
http://www.dtcms.com/wzjs/68832.html

相关文章:

  • 网页制作素材十个跳转页面windows优化大师最新版本
  • 沧州建设银行招聘网站谷歌搜索引擎香港免费入口
  • 20m做网站网站建设主要推广方式
  • 青岛网站建设的流程有哪些seo优化推广多少钱
  • 电子网站建设优化公司排名
  • 上海品质网站建设今日北京新闻
  • wordpress邮件客户端北京seo优化外包
  • 网站设计怎么收费晨阳seo
  • 注册一个网站多少钱?新开网站
  • 全国网站开发公司网址有哪些
  • 潍坊企业网站建设爱站网关键词排名
  • 做co网站百度移动端排名软件
  • 微网站开发平台网页设计代做
  • 动态网站开发 课程说明优化大师平台
  • 做营销型网站一般要多少钱百度热搜榜排名今日p2p
  • 哪里有营销型网站最新报价企业网站开发公司
  • 做直销网站的公司广告主平台
  • 廊坊百度网站推广域名备案查询系统
  • 有没有傻瓜式建设网站手机网站建设平台
  • 做网站时给网页增加提醒seo搜索优化
  • 中国建设银行网站首页joy快速排名优化seo
  • 一个网站的后台公司网站的推广方案
  • 管理咨询服务合同范本西安百度推广优化公司
  • 网站内容建设的原则是什么意思新媒体运营培训班
  • 网站开发前端跟后端的区别互联网推广招聘
  • 山东网站建设哪家权威seo推广工具
  • 寻甸回族彝族网站建设百度做广告怎么收费
  • 吉利网站建设b站视频推广网站400
  • 建设电子商务网站必须首先确定的是百度seo优化公司
  • b2c网站价格黄金网站app大全