首页 > 解决方案 > 将excel二维数组整数数据转换成systemverilog二维数组

问题描述

我有一个 excel 表,它有 512 个整数,数组格式为 32(行)x16(列)。我想将这些值读入 verilog/SystemVerilog 2D 整数数组。执行此任务的最佳方法是什么。我正在考虑将这些值复制粘贴到单列的文本文件中,然后一一阅读,但不确定这是否是有效的方法?

标签: arraysverilogsystem-verilog

解决方案


您可以使用空格作为分隔符将电子表格导出到 CSV 文本文件。

如果您可以将表格转换为十六进制值,则$readmemh可以直接执行此操作。=DEC2HEX()(使用Excel 或其他脚本转换为十六进制)。

否则你可以使用$fscanf

foreach(integer_array[i,j]) 
  if(1==$fscanf(fd,"%d",integer_array[i][j]))
    continue;
  else
    $fatal(1, "not enough data to fill the array");

推荐阅读