【问题标题】:which one is more complex? calculating a 64 bits CRC or two 32 bits CRCs with different polynomials?哪个更复杂?用不同的多项式计算一个 64 位 CRC 或两个 32 位 CRC?
【发布时间】:2021-08-19 08:34:59
【问题描述】:

我想知道 FPGA 上的 64 位 CRC 与同一 FPGA 上的两个 32 位 CRC(不同的多项式)有何不同。两个 32 位 CRC 会比执行单个 64 位 CRC 更复杂吗?是需要一段时间还是会很快?

如何计算复杂度(或进行复杂度分析)?

任何帮助将不胜感激 谢谢。

【问题讨论】:

    标签: complexity-theory fpga crc


    【解决方案1】:

    我想知道 FPGA 上的 64 位 CRC 与同一 FPGA 上的两个 32 位 CRC(不同的多项式)有何不同。

    在“普通”FPGA 上,比较哪种信息(CRC、校验和、浮点值……)并不重要:

    检查一个 64 位值是否等于另一个 64 位值需要相同数量的资源(门或时间)。

    如果您使用具有内置 CRC 单元(例如)支持 CRC32 但不支持 CRC64 的 FPGA,这当然不是真的......

    两个 32 位 CRC 会比执行单个 64 位 CRC 更复杂吗?

    在这两种情况下,您都需要 64 个逻辑单元(这意味着:64 个 LUT 和 64 个触发器)。

    在 64 位 CRC 的情况下,63 个逻辑单元必须连接到前一个逻辑单元,并且必须有一条信号线连接第一个和最后一个逻辑单元。

    在两个 32 位 CRC 的情况下,62 个逻辑单元必须连接到前一个逻辑单元,并且必须有两条信号线连接每个 CRC 的第一个和最后一个逻辑单元。

    如果您的 FPGA 允许在不使用“长”信号线的情况下连续连接 64 个单元,则 64 位 CRC 会节省一条“长”信号线。

    (编辑:在我的评估板上的 FPGA 上,您可以连续连接 16 个单元;在这样的 FPGA 上,onw 64 位 CRC 和两个 32 位 CRC 都将花费 5"长”信号线。)

    需要一段时间还是很快?

    如何计算复杂度(或进行复杂度分析)?

    每个位都需要一个时钟周期 - 在这两种情况下。

    请注意,FPGA 的工作方式与计算机完全不同:

    您通常不需要时间来执行某些操作,但所有操作都是同时执行的......

    【讨论】:

    • 也就是说,它们通常是相同的,但在某些情况下,这取决于FPGA的类型。正确的?你知道如何计算CRC复杂度吗? (或者你有任何资源)
    • 他给了你复杂性。及时,每个消息位一个周期。在空间中,每个位一个触发器加上相关的查找表。那是用最少的空间和最多的时间。您可以提出与软件中类似的其他实现,例如,每个周期可以运行 8 位,但需要更多的逻辑资源来实现 32 或 64 x 256 表。在这种情况下,两个不同的 32 位 CRC 与一个 64 位 CRC 的逻辑量仍然大致相同。
    猜你喜欢
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多