修改AXI UART D16550 FIFO深度

2021-10-20  本文已影响0人  望江樵夫

更改 AXI UART 16550 FIFO 大小,步骤如下:

  1. 备份 Vivado/your_version/data/ip/xilinx/axi_uart16550_v2_0 和 /Vivado/your_version/data/ip/xilinx/lib_srl_fifo_v1_0 文件夹
  2. 如果您的设计中有 AXI_UART_16550 IP 核,请将其移除,保存设计/项目并关闭 Vivado
  3. 清除项目目录中的 your_project.cache 文件夹
  4. 编辑 Vivado/your_version/data/ip/xilinx/lib_srl_fifo_v1_0/hdl 文件夹中的 lib_srl_fifo_v1_0_rfs.vhd:
int clog2(int x)
{
   int r = 0;
   int rp = 1;
   while( rp < x )
   {
       r\+\+;
       if( rp > std::numeric_limits<int>::max())
          return std::numeric_limits<int>::max(); //or we could exit with some other value as -1...
       rp \+= rp;
   }
    return r;
}

随着 rp 值呈指数增长,您可以通过 head 或在一些纸上评估函数 - 对于一些通常的 FIFO 大小值(32、64 ...),它只会是几个循环......

  1. 编辑 Vivado/your_version/data/ip/xilinx/axi_uart16550_v2_0/hdl 文件夹中的 axi_uart16550_v2_0_vh_rfs.vhd 文件:
  1. 保存文件,打开您的 Vivado 项目/设计,添加 UART IP、合成、生成比特流……您就完成了 :-)
上一篇下一篇

猜你喜欢

热点阅读