world呀 2022-12-30 23:13 采纳率: 33.3%
浏览 19
已结题

FPAG_IIC协议

img


为什么这里的i2c_sda在读阶段(state==13)有一个时钟周期低电平(assign i2c_sda = state_in ? 1'bz : i2c_sda_copy;)
i2c_sda_copy波形正确,i2c_sda和i2c_sda_copy波形不一样

  • 写回答

2条回答 默认 最新

  • heart_6662 2023-01-01 14:59
    关注

    在读阶段的state==13时,i2c_sda的值由state_in决定,当state_in为1时,i2c_sda为高电平,当state_in为0时,i2c_sda为低电平。i2c_sda_copy的值与i2c_sda的值不同,这可能是因为在读阶段的其他状态(非state==13)中,i2c_sda的值可能与i2c_sda_copy的值不同。你可以查看代码的其他部分,了解i2c_sda和i2c_sda_copy的值是如何更改的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • m0_57781768 2023-01-01 15:28
    关注

    FPGA I2C协议是I2C协议的硬件级实现,I2C协议是一种用于设备间传输数据的通信协议。I2C 协议使用两条线进行通信:SDA(串行数据)线和 SCL(串行时钟)线。

    在您提供的代码中,看起来 i2c_sda 信号正在根据 state_in 信号和 i2c_sda_copy 信号的状态分配一个值。具体来说,如果state_in为高,i2c_sda被赋值为i2c_sda_copy。如果 state_in 为低电平,则 i2c_sda 被分配为“z”的值,这是一个高阻抗状态。

    从您提供的代码中不清楚为什么在读取阶段为 i2c_sda 信号分配此值(状态==13)。没有更多上下文,很难对您所看到的行为提供具体解释。

    代码中可能存在错误,或者代码未在正确的上下文中使用。i2c_sda 和 i2c_sda_copy 波形之间的差异也可能是预期行为,并且是 I2C 协议正确运行所必需的。

    为了更好地理解为什么 i2c_sda 信号以这种方式运行,检查完整代码和任何相关文档以及考虑 i2c_sda 信号在 I2C 协议中的具体作用可能会有所帮助。

    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月9日
  • 已采纳回答 1月1日
  • 创建了问题 12月30日

悬赏问题

  • ¥15 OpenFOAM多孔介质传热模型建模
  • ¥15 QT 实现 RSTP 语音对讲功能
  • ¥50 AES魔改之后的安全性关于PRF(相关搜索:密码学)
  • ¥15 用C语言写的一个程序遇到了两个问题第一是偏移正确但读取不到坐标,第二个问题是自己定义的函数实现不了获取指定进程模块。
  • ¥15 在安装Anaconda时总是闪退怎么办?
  • ¥15 对图中电路进行以下几个方面的分析
  • ¥15 对图中电路进行以下几个方面的分析
  • ¥15 对图中电路进行以下几个方面的分析
  • ¥15 对图中电路进行以下几个方面的分析
  • ¥500 抖音主页视频预存加载卡bug