Altera FPGA .jic 文件中的校验和

问题描述 投票:0回答:4

我正在使用一个小算法修改固件文件 (.jic) JTAG 间接配置文件,但更改文件内的数据会使其无法使用,因为文件中的某处有一个校验和需要更新。

我需要找到 .jic 文件中的校验和并破译使用哪种算法(crc32 等)。

每个字节上的位都被反转,我检查了正常和反转的位文件,但没有成功。

有人知道或者有办法找出 .jic 文件中的校验和数据在哪里吗?

fpga crc intel-fpga
4个回答
1
投票

您需要生成一个.rpd 文件。 该数据将在上电时加载到 FPGA 中。 如果在加载 .jic 后逐字节读取闪存,您将看到以下内容。


0
投票

如果您有权使用创建 .jic 文件的软件(例如 Quartus),您可以创建两个有一点差异的 .jic 文件,并比较两个输出(两个 .jic)文件。它应该会提示您支票所在的位置(如果有的话)


0
投票

不是从

.jic
文件开始。但是,如果您尝试更新的数据是从
.hex
.mif
文件初始化的,则可以使用
quartus_cdb --update_mif
对项目执行部分重新编译。 (这也可以在 IDE 中作为“更新内存初始化文件”获得。)


0
投票

很可能是 CRC-16-IBM-SLDC,它是 .jic 文件的最后两个字节。删除这些,在更改的固件上重新运行 CRC,然后添加新的。

参见例如这里有一个例子https://github.com/Tsarpf/intellij-shapeshifter-serum-wavetables/blob/master/wavewriter.py#L71

就我而言,我比较了两个不同的 .jic 文件,发现除了标头版本信息之外,主要是最后两个字节不同。然后为了找到 CRC 算法参数,我使用了 CRC RevEng。

© www.soinside.com 2019 - 2024. All rights reserved.