tag 标签: Radiant

相关博文
  • 热度 8
    2022-10-16 21:26
    1839 次阅读|
    1 个评论
    关于Radiant软件下Crosslink-NX物理层IP核MIPI_DPHY无法产生正确的非连续时钟时序的BUG修复办法
    作者: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 生成的文件,可以得到如下图所示的正确时序。
  • 热度 9
    2021-12-26 13:39
    4139 次阅读|
    3 个评论
    Hello,Panda 熊猫君在项目中使用 lattice Crosslink-NX 器件已经一年又半载了,这个器件只能使用 Lattice Radiant 和 Propel 集成环境进行开发,有一些常规的不方便,比如: (1) 这个环境对版本的管理很差, ES 样片、 ES2 样片、 LIFCL-17 样片、 LIFCL-40 样片只能使用特定的版本进行开发,转正式版还有不少问题,要重新搭建工程; (2) 有限的几个 IP 在版本升级过程中几乎全部改头换面,对外端口名改动太大,如果升级了 Radiant 的版本,得把工程重新搭建一边才行。 还有几个让人奔溃的问题: (1) 在一个资源使用较多的工程中,若对其中一个文件的源代码内容修改较多,且不使用增量编译,工程中仍然会保留原来文件生成的结果,会报告原来文件中的信号或寄存器不存在的错误,即使删除所有的综合和布局布线的中间与结果文件,并执行 prj_clean_impl, 清理磁盘并重启都没有什么卵用,只能重建工程; (2) 布局布线算法的时序收敛性很差,以我手上在使用的 Radiant3.0 版本来说,差到每次布局布线都会报告一大堆不同的时序问题,而且每次的结果都相差很大。工程稍微复杂一点,如果使用 RISC-V 软核,竟然只能跑到 50MHz 。要想工程运行的主频高一些,要加很多的位置约束和关键路径约束才能办得到,十分考验基本功,增加了技术难度和开发时间。 熊猫君也就是纯粹吐槽一下 Lattice Radiant 软件的一些问题,发泄一下底层码农面对不友好环境时,心中的郁闷与不满。