FPGA设计的8大重要知识点,你都get了吗

126人已阅读 2021-06-07 19:47:08
导读 转行互联网,却又不知道如何选择,一直很迷茫、踌躇,现在不必再担忧,26门热门互联网技术免费试听,你可以先试听,再决定!
C语言编程讲解(基础阶段) Cortex-m3+ucos-II实训班 C语言编程讲解(高级阶段) 硬件设计(数字电路+模拟电路)实训班 嵌入式Linux驱动实训班(大牛讲师) C51单片机实训班 PADS/AD实训班 android系统*班 C++软件工程师实训班 java编程实训班 嵌入式硬件工程师综合班 FPGA系统工程师*班

新闻详情

2021-06-07 19:47:08

转行互联网,却又不知道如何选择,一直很迷茫、踌躇,现在不必再担忧,26门热门互联网技术免费试听,你可以先试听,再决定!


FPGA设计的8大重要知识点


  1.面积与速度的平衡与互换
  这里的面积指一个设计消耗FPGA/CPLD的逻辑资源的数量,对于FPGA可以用消耗的FF(触发器)和LUT(查找表)来衡量,更一般的衡量方式可以用设计所占的等价逻辑门数。
  速度指设计在芯片上稳定运行所能达到的最高频率,这个频率由设计的时序状况来决定,以及设计满足的时钟要求:PAD to PAD time、Clock Setup Time、Clock Hold Time、Clock-to-Output Delay等众多时序特征量密切相关。
  面积和速度这两个指标贯穿FPGA/CPLD设计的时钟,是设计质量的评价的终极标准——面积和速度是一对对立统一的矛盾体。
  要求一个同时具备设计面积最小、运行频率最高是不现实的。更科学的设计目标应该是在满足设计时序要求(*括对设计频率的要求)的前提下,占用最小的芯片面积。或者在所规定的面积下,是设计的时序余量更大、频率跑的更高。这两种目标充分体现了面积和速度的平衡的思想。
  2.硬件原则
  硬件原则主要针对HDL代码编写而言:Verilog是采用了C语言形式的硬件的抽象,它的本质作用在于描述硬件,它的最终实现结果是芯片内部的实际电路。所以评判一段HDL代码的优劣的最终标准是:其描述并实现的硬件电路的性能,*括面积和速度两个方面。
  初学者片面追求代码的整洁、简短,是错误的,是与HDL的标准背道而驰的。正确的编码方法,首先要做到对所需实现的硬件电路胸有成竹,对该部分的硬件的结构和连接十分清晰,然后再用适当的HDL语句表达出来即可。
  3.系统原则
  系统原则*含两个层次的含义:更高层面上看,是一个硬件系统,一块单板如何进行模块花费和任务分配,什么样的算法和功能适合放在FPGA里面实现,什么样的算法和功能适合放在DSP/CPU里面实现,以及FPGA的规模估算数据接口设计等。具体到FPGA设计就要对设计的全局有个宏观上的合理安排,比如时钟域、模块复用、约束、面积、速度等问题,在系统上模块的优化最为重要。
  比如FPGA一般触发器资源丰富,CPLD的组合逻辑资源更加丰富。FPGA/CPLD一般是由底层可编程硬件单元、BRAM、布线资源、可配置IO单元、时钟资源等构成。
  一般的FPGA系统规划的简化流程
  4.同步设计原则
  异步电路的逻辑核心是用组合逻辑电路实现,比如异步的FIFO/RAM读写信号,地址译码等电路。电路的主要信号、输出信号等并不依赖于任何一个时钟性信号,不是由时钟信号驱动FF产生的。异步时序电路的*缺点是容易产生毛刺,在布局布线后仿真和用逻辑分析仪观测实际信号时,这种毛刺尤其明显。
  同步时序电路的核心逻辑用各种各样的触发器实现,电路的主要信号、输出信号都是由某个时钟沿驱动触发器产生出来的。同步时序电路可以很好的避免毛刺,布局布线后仿真,和用逻辑分析仪采样实际*信号都没有毛刺。
  5.乒乓操作
  “乒乓操作”是一个常常应用于数据流控制的处理技巧,乒乓操作的处理流程为:输入数据流通过“输入数据选择单元”将数据流等时分配到两个数据缓冲区,数据缓冲模块可以为任何存储模块,比较常用的存储单元为双口RAM(DPRAM)、单口RAM(SPRAM)、FIFO等。
  6.串并转换设计技巧
  串并转换是FPGA设计的一个重要技巧,它是数据流处理的常用手段,也是面积与速度互换思想的直接体现。串并转换的实现方法多种多样,根据数据的排序和数量的要求,可以选用寄存器、RAM等实现。
  7.流水线操作设计思想
  首先需要声明的是,这里所讲述的流水线是指一种处理流程和顺序操作的设计思想,并非FPGA、ASIC设计中优化时序所用的“Pipelining”。
  流水线处理是高速设计中的一个常用设计手段。如果某个设计的处理流程分为若干步骤,而且整个数据处理是“单流向”的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,则可以考虑采用流水线设计方法来提高系统的*频率。
  8.数据接口的同步方法
  数据接口的同步是FPGA/CPLD设计的一个常见问题,也是一个重点和难点,很多设计不稳定都是源于数据接口的同步有问题。在电路图设计阶段,一些工程师手工加入BUFT或者非门调整数据延迟,从而*本级模块的时钟对上级模块数据的建立、保持时间要求。
  还有一些工程师为了有稳定的采样,生成了很多相差90度的时钟信号,时而用正沿打一下数据,时而用负沿打一下数据,用以调整数据的采样位置。这两种做法都十分不可取,因为一旦芯片更新换代或者移植到其它芯片组的芯片上,采样实现必须重新设计。而且,这两种做法造成电路实现的余量不够,一旦外界条件变换(比如温度升高),采样时序就有可能完全紊乱,造成电路瘫痪。
  想转行互联网,却又不知道如何选择,一直很迷茫、踌躇,现在不必再担忧,26门热门互联网技术免费试听5天,你可以先试听,再决定!
上一篇: 嵌入式前景还好吗?哪些人最适合转嵌入式 下一篇: 软件开发是什么

相关文章

推荐课程

查看全部课程
北京信盈达教育

北京信盈达教育

昌平校区

查看全部校区 进入官方主页