自从学习了FPGA这么个东西后,只是粗浅的知道FPGA能够实现并行设计,但怎么就并行设计了,一直稀里糊涂,今天查阅了资料,隐隐觉得有一条设计观念很重要,就是,以面积换速度。电路是并行执行的,这是显而易见的,电信号嘛,很快的,这边输入给个高电平,那边立马就会有个输出信号,但这个绝对是组合逻辑电路的大招。单个时序逻辑电路不可能实现什么并行执行,否则为何叫时序逻辑电路呢,只有我在FPGA中实现多个具有相同功能的时序逻辑才会造成并行执行的效果,这不就是以面积换取并行执行的速度嘛,这样才讲的通嘛。
咱再理解理解FPGA的几级流水线设计,流水线这个概念我觉得不太直观,不如举个例子说明。咱就以汽车生产流水线举例,如果一条流水线上有1个人干活,而该条流水线有3个组装步骤需要完成,怎么办呢,这名工人需要不断变换工位,组装到步骤二了,就需要去工位2,组装到步骤三了,就需要到工位3,最后流水下线,这样做步骤很清晰,但效率比较慢。试想,如果,我每个工位都安排一名工人呢,工位2的工人只做组装步骤2的活,工位3的工人只做组装步骤3的活,这样,当工位3的工人在完成组装步骤3的活的同时,工位1的工人和工位2的工人也不会闲着,形象点说就是生产流水不会断流。虽然人力成本上去了,但效率也上去了。以人力成本的增加换取效率的提升。
再想,基于NiosII软核的设计中,虽然是串行设计程序,但得益于FPGA的硬件可裁剪优势,我多添加几个具有相同功能的IP就是了,多添加几个NiosII软核也行呀,反正软核占用逻辑资源也不多。还是那句话,以面积换速度。
==个人愚见!