我正在开始我的第一个商业规模的应用程序,我经常发现自己在进行设计,但却阻止了自己编码和实现它,因为这似乎是对资源的巨大使用。当它位于外围设备上时尤其如此(例如,移位寄存器的输出抽头的使能)。当我想到泛型实现可能会变得多大时,情况会变得更糟( taps示例中的4k位)。最干净的实现应该有这些,但在我看来,它增加了大量的开销。
有没有什么规则可以让我快速决定一个设计选项是否值得编码和评估?一般来说,我不太担心触发器的数量,而更担心信号的宽度。这可能只是来自CS背景,其中所有应用程序边界都应该尽可能小,以防止开销。
发布于 2012-06-19 16:37:00
要点1.我们在玩中学习,所以玩吧!试着做一些事情。看看这些工具能做些什么。感受一下这个问题。你不会过去的这就是你不去尝试。通常情况下,问题并不是你所想的那样。
要点2.你需要了解这些决定的背景。与FPGA /您的设计的容量相比,向移位寄存器添加使能有多大?
要点3.有两种主要的“资源”需要考虑:-单元格和时间。
从广义上讲,Cells相对容易。有多少次失败?可识别块中有多少逻辑(例如在ALU中:乘法器、加法器等)?通常,这是由你想要做的设计定义的。你不能在没有寄存器、乘法器、加法器等的情况下构建ALU。
时间是更微妙的,并且总是与细胞进行权衡。你将尝试达到一些性能目标,并认识到将使这一点变得困难的结构是从第一点开始的。
需要注意的事项包括:
不要担心大型总线,如果每个位都是低扇出,并且已经为寄存器做了预算。大型总线通常是快速设计所固有的,因为您需要高带宽。更宽的时钟速度比更高的时钟速度更容易。另一方面,考虑一下宽总线的控制逻辑,因为它可能有一个很大的扇形。
不同的工具和目标设备具有不同的特性,因此您必须针对您的设置来使用和学习规则。总会有尺寸和速度(以及现在的“功率”)的折衷。你需要了解是什么让你沿着这条曲线朝每个方向移动。这需要经验。
有没有什么规则可以让我快速决定一个设计选项是否值得编码和评估?
我能想出的唯一规则是‘我有时间吗?’
如果我有,我会去探索。如果不是,我最好让的东西工作。
啊哈,在截止日期前做设计的生活!
发布于 2012-06-19 16:34:05
这是经验带来的东西。这里有一些建议:
https://stackoverflow.com/questions/11091303
复制相似问题