作者:Hello,Panda 一、问题描述: ( 1 )器件: Lattice Crosslink-NX LIFCL-40-7MG121I ; ( 2 )软件: Radiant 3.1 ; ( 3 ) MIPI_DPHY IP 核版本: 1.4.0 ; ( 4 ) IP 核的配置: 1-lane MIPI 发送,无 CIL ,非连续时钟模式,见下图。 存在的问题是: MIPI CSI 层控制以下信号无法产生正确的非连续时钟发送时序。 hs_tx_en_i, hs_tx_data_i, hs_tx_data_en_i, lp_tx_data_p_i, lp_tx_data_n_i, lp_tx_data_en_i, lp_tx_clk_p_i, lp_tx_clk_n_i 。 二、问题查找 对封装的模块逐层追踪发现, DPHY 原语里面,时钟 HS_TX 的使能信号直接接到了 hs_tx_en_i, 时钟的 LP_TX 使能信号接到 lp_tx_en_i, 但是这个 lp_tx_en_i 在顶层例化的时候却直接赋值为“ 0 ”,这就导致在非连续时钟模式下, CLK 通道无法发出 LP 状态信号。 配置为非连续时钟并操控 IP 核引出的控制接口,实际得到的波形如下,时钟通道的 LP 状态为高阻,没有 HS 的状态变化过程: 三、解决办法 将 Radiant 软件自动生成的只读 IP Verilog 文件复制出来,重新命名,将需要的 lp_tx_en_i 引出给 CSI 层控制用于产生正确的 LP 信号。 hs_tx_en_i 可以用来控制产生 HS 时钟, hs_tx_en_i 和 hs_tx_data_en_i 相与可以使能 HS 数据发送。为了便于直观操作,也可以将 UCENCK 单独引出 hs_tx_clk_en_i 进行控制。 将复制并修改好的文件添加进去,写好正确的控制逻辑,并删除掉 IP 生成的文件,可以得到如下图所示的正确时序。