Point 1. 我们边玩边学,所以玩!尝试几件事。看看这些工具的作用。感受一下问题所在。你不会通过这是你不尝试的东西。通常问题出在你认为它们会出现的地方。
第 2 点。您需要了解这些决定的背景。与 FPGA/您的设计的容量相比,向移位寄存器添加启用有多大?
第 3 点。有两种主要类型的“资源”需要考虑:- 细胞和时间。
从广义上讲,细胞相对容易。多少次翻牌?可识别块中有多少逻辑(例如在 ALU 中:乘法器、加法器等)?这通常由您尝试执行的设计定义。如果没有寄存器、乘法器、加法器等,就无法构建 ALU。
时间更加微妙,并且总是与细胞进行权衡。您将尝试达到一些性能目标,并认识到从第 1 点开始体验的结构会使这变得困难。
需要注意的事项包括:
- 单网带动大量事物。大扇出会导致单个驱动器负载过重,从而减慢速度。然后,该工具将不得不使用单元来缓冲该信号。经典时间与细胞之间的权衡。
- 寄存器级之间的深层逻辑块。同样,如果工具接近边缘,则该工具将不得不花费更多单元来使逻辑满足时序。简单的逻辑既快又小。有时引入流水线阶段可以减小设计的尺寸,因为它使双方的逻辑变得更加容易。
不要太担心大型总线,如果每个位都是低扇出并且您已经为寄存器进行了预算。大型总线通常是快速设计所固有的,因为您需要高带宽。宽频比提高时钟速度更容易。另一方面,考虑宽总线的控制逻辑,因为它可能有很大的扇出。
不同的工具和目标设备具有不同的特性,因此您必须玩游戏并学习设置规则。总是存在尺寸与速度(现在是“与功率”)的妥协。你需要了解是什么让你沿着这条曲线在每个方向上移动。那是有经验的。
有没有什么规则我可以用来快速决定一个设计选项是否值得编码和评估?
我能想出的唯一规则是‘我有时间吗?或不?'
如果有,我会去探索。如果不是,我最好做点什么。
啊,在最后期限前做设计的生活!