差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
fpga_implementation_process [2021/09/13 00:14] gongyu |
fpga_implementation_process [2021/09/13 00:20] (当前版本) gongyu [1. 综合] |
||
---|---|---|---|
行 14: | 行 14: | ||
#### 1.1 综合工具 | #### 1.1 综合工具 | ||
我们可以使用许多不同的工具来运行合成过程。两家主要的FPGA供应商(Xilnix和Intel)都提供了适用于大多数项目的免费合成工具。 | 我们可以使用许多不同的工具来运行合成过程。两家主要的FPGA供应商(Xilnix和Intel)都提供了适用于大多数项目的免费合成工具。 | ||
- | 除此之外,我们还可以使用许多开源的合成工具。这些工具中最流行的是yosys,它经常与[[https://www.latticesemi.com/fpga|Lattice fpga]]一起使用。 | + | 除此之外,我们还可以使用许多开源的合成工具。这些工具中最流行的是[[http://www.clifford.at/yosys/|yosys]],它经常与[[https://www.latticesemi.com/fpga|Lattice fpga]]一起使用。 |
我们也可以使用付费工具来实现这一目标。这些工具中最著名的是Synopsys公司的Synplify Pro和Mentor Graphics公司的Leonardo Spectrum。 | 我们也可以使用付费工具来实现这一目标。这些工具中最著名的是Synopsys公司的Synplify Pro和Mentor Graphics公司的Leonardo Spectrum。 | ||
行 33: | 行 33: | ||
设备中的单个单元因芯片而异,也因厂商而异。 | 设备中的单个单元因芯片而异,也因厂商而异。 | ||
几乎所有现代芯片都将包括RAM、某种形式的LUT和触发器。 | 几乎所有现代芯片都将包括RAM、某种形式的LUT和触发器。 | ||
- | 高端芯片还可以包括专用DSP核心、时钟管理模块(如锁相环)以及其他外围接口(如adc或专用高速接口)。 | + | 高端芯片还可以包括专用DSP核心、时钟管理模块(如锁相环)以及其他外围接口(如[[https://learn.sparkfun.com/tutorials/analog-to-digital-conversion/all|ADC]]或专用高速接口)。 |
在完成合成过程后,我们可以生成一份报告,告诉我们在我们的设计中使用了多少细胞,包括绝对数量和设备中所有可用细胞的百分比。 | 在完成合成过程后,我们可以生成一份报告,告诉我们在我们的设计中使用了多少细胞,包括绝对数量和设备中所有可用细胞的百分比。 | ||
在运行合成过程后,我们经常会发现我们的设计对于我们的设备来说太大了。当这种情况发生时,我们有很多选择。 | 在运行合成过程后,我们经常会发现我们的设计对于我们的设备来说太大了。当这种情况发生时,我们有很多选择。 | ||
- | 通常可以通过改变合成工具的配置来降低利用率。这方面的例子可以是改变FSM编码或选择不同的合成算法。 | + | 通常可以通过改变合成工具的配置来降低利用率。这方面的例子可以是改变[[https://www.allaboutcircuits.com/technical-articles/encoding-the-states-of-a-finite-state-machine-vhdl/|有限状态机FSM编码]]或选择不同的合成算法。 |
如果我们的设计只比所选的FPGA稍大一点,那么这种缩减就足够了。 | 如果我们的设计只比所选的FPGA稍大一点,那么这种缩减就足够了。 | ||
如果这不能充分降低利用率,那么我们必须选择一个新的FPGA或使我们的原始代码更有效。 | 如果这不能充分降低利用率,那么我们必须选择一个新的FPGA或使我们的原始代码更有效。 |