3

我开始我的第一个商业规模的应用程序,我经常发现自己在做一个设计,但阻止自己编码和实现它,因为这似乎是对资源的巨大使用。当它位于外围设备上时尤其如此(例如,启用移位寄存器的输出抽头)。当我想到通用实现可以得到多大(抽头示例为 4k 位)时,情况会变得更糟。最干净的实现会有这些,但在我看来,它会增加大量开销。

有没有什么规则我可以​​用来快速决定一个设计选项是否值得编码和评估?一般来说,我不太担心触发器的数量,而更多地担心信号的宽度。这可能只是来自 CS 背景,其中所有应用程序边界都应尽可能小,以防止开销。

4

2 回答 2

2

Point 1. 我们边玩边学,所以玩!尝试几件事。看看这些工具的作用。感受一下问题所在。你不会通过这是你不尝试的东西。通常问题出在你认为它们会出现的地方。

第 2 点。您需要了解这些决定的背景。与 FPGA/您的设计的容量相比,向移位寄存器添加启用有多大?

第 3 点。有两种主要类型的“资源”需要考虑:- 细胞和时间。

从广义上讲,细胞相对容易。多少次翻牌?可识别块中有多少逻辑(例如在 ALU 中:乘法器、加法器等)?这通常由您尝试执行的设计定义。如果没有寄存器、乘法器、加法器等,就无法构建 ALU。

时间更加微妙,并且总是与细胞进行权衡。您将尝试达到一些性能目标,并认识到从第 1 点开始体验的结构会使这变得困难。

需要注意的事项包括:

  • 单网带动大量事物。大扇出会导致单个驱动器负载过重,从而减慢速度。然后,该工具将不得不使用单元来缓冲该信号。经典时间与细胞之间的权衡。
  • 寄存器级之间的深层逻辑块。同样,如果工具接近边缘,则该工具将不得不花费更多单元来使逻辑满足时序。简单的逻辑既快又小。有时引入流水线阶段可以减小设计的尺寸,因为它使双方的逻辑变得更加容易。

不要太担心大型总线,如果每个位都是低扇出并且您已经为寄存器进行了预算。大型总线通常是快速设计所固有的,因为您需要高带宽。宽频比提高时钟速度更容易。另一方面,考虑宽总线的控制逻辑,因为它可能有很大的扇出。

不同的工具和目标设备具有不同的特性,因此您必须玩游戏并学习设置规则。总是存在尺寸与速度(现在是“与功率”)的妥协。你需要了解是什么让你沿着这条曲线在每个方向上移动。那是有经验的。

有没有什么规则我可以​​用来快速决定一个设计选项是否值得编码和评估?

我能想出的唯一规则是‘我有时间吗?或不?'

如果有,我会去探索。如果不是,我最好做点什么

啊,在最后期限前做设计的生活!

于 2012-06-19T08:36:59.597 回答
1

这是经验带来的东西。这里有一些提示:

  • 添加数字相当便宜
  • 如果多路复用器有很多输入(每个输入的宽度也是次要问题),那么在它们之间进行选择(多路复用)会很快变大。
  • 如果您的芯片中有备用乘法器,则乘法是免费的,当您用完硬 DSP 块时,它们会突然变得昂贵。
  • 内存也很便宜,直到你用完为止。例如,您的 4Kbit 移位寄存器可以轻松装入单个 Xilinx 块 RAM,如果您有一个空闲块,这很好。如果不是,它将需要大量 LUT(取决于设备 - 较旧的 Spartan 3 可以将 17 位放入 LUT(包括 CLB 寄存器),因此需要约 235 个 LUT)。并不是所有的 LUT 都可以移位寄存器。如果您只担心寄存器的启用,请不要。除非您正在提高设备的性能,否则将这种信号路由到几百个 LUT 不太可能导致重大时序问题。
于 2012-06-19T08:34:05.120 回答