您的位置 首页 知识

FPGA规划的八个重要知识点

FPGA设计的八个重要知识点-这里的面积指一个设计消耗FPGA/CPLD的逻辑资源的数量,对于FPGA可以用消耗的FF(触发器)和LUT(查找表)来衡量,更一般的衡量方式可以用设计所占的等价逻辑门数。

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代码仅仅是硬件规划的表达办法之一)

初学者,片面追求代码的整齐、简略,是过错的。是与HDL的规范各走各路的。正确的编码办法,首要要做到对所需完结的硬件电路胸中有数,对该部分的硬件的结构和衔接十分明晰,然后再用恰当的HDL句子表达出来即可。

别的,Verilog作为一种HDL言语,是分层次的。体系级–算法级–寄存器传输级–逻辑级–门级–开关级。

构建优先级树会耗费许多的组合逻辑,所以假如能够运用case的当地,尽量运用case替代if…..else……

3.体系准则

体系准则包括两个层次的意义:更高层面上看,是一个硬件体系,一块单板怎么进行模块花费和任务分配,什么样的算法和功用合适放在FPGA里边完结,什么样的算法和功用合适放在DSPCPU里边完结,以及FPGA的规划预算数据接口规划等。详细到FPGA规划就要对规划的大局有个微观上的合理安排,比方时钟域,模块复用,束缚,面积,速度等问题。在体系上模块的优化最为重要。

一般来说实时性要求高,频率快的功用模块合适FPGA完结。而FPGA和CPLD比较,更合适完结规划较大,频率较高、寄存器较多的规划。运用FPGA/CPLD规划时,应该对芯片内部的各种底层硬件资源,和可用的规划资源有一个较深入的知道。比方FPGA一般触发器资源丰厚,CPLD的组合逻辑资源愈加丰厚。FPGA/CPLD一般是由底层可编程硬件单元,BRAM布线资源,可装备IO单元,时钟资源等构成。底层可编程硬件单元一般由触发器和查找表组成。Xilinx的底层可编程硬件资源较SLICE,由两个FF和2个LUT构成。Altera 的底层硬件资源叫LE,由1个FF和1个LUT构成。

运用片内RAN能够完结单口RAM,双口RAM,同步、异步FIFO,ROM,CAM等常用单元模块。

一般的FPGA体系规划的简化流程

FPGA规划的八个重要知识点

FPGA规划的八个重要知识点

4.同步规划准则

异步电路

电路的逻辑中心是用组合逻辑电路完结。比方异步的FIFO/RAM读写信号,地址译码等电路。电路的首要信号、输出信号等并不依赖于任何一个时钟性信号,不是由时钟信号驱动FF发生的。

异步时序电路的最大缺陷是简略发生毛刺。在布局布线后仿真和用逻辑分析仪观测实践信号时,这种毛刺特别显着。

同步时序 

电路的中心逻辑用各式各样的触发器完结

电路的首要信号、输出信号都是由某个时钟沿驱动触发器发生出来的。

同步时序电路能够很好的防止毛刺。布局布线后仿真,和用逻辑分析仪采样实践作业信号都没有毛刺。

是否时序电路必定比异步电路运用更多的资源呢?

从单纯的ASCI规划来看,大约需求7个门来完结一个D触发器,而一个门即可完结一个2输入与非门,所以一般来说,同步时序电路比异步电路占用更大的面积。(FPGA/CPLD中不同,首要是因为单元块的核算办法)

怎么完结同步时序电路的延时?

异步电路发生延时的一般办法是刺进一个Buffer,两级与非门等。这种延时调整手法是不适用同步时序规划思维的。首要要清晰一点HDL语法中的延时操控语法,是行为级的代码描绘,常用于仿真测验鼓励,但是在电路归纳是会被疏忽,并不能发动延时作用。

同步时序电路的延时一般是经过时序操控完结的。换句话说,同步时序电路的延时被作为一个电路逻辑来规划。关于比较大的和特别守时要求的延时,一般用高速时钟发生一个计数器,经过计数器的计数操控推迟;关于比较小的延时,能够用D触发器打一下,这种做法不仅仅使信号延时了一个时钟周期,并且完结了信号与时钟的初度同步,在输入信号采样和添加时序束缚余量中运用。

同步时序电路的时钟怎么发生?

时钟的质量和安稳性直接决议着同步时序电路的功用。

输入信号的同步

同步时序电路要求对输入信号进行同步化,假如输入数据的节拍和本级芯片的处理时钟同频,并且树立坚持时刻匹配,能够直接用本级芯片的主时钟对输入数据寄存器采样,完结输入数据的同步化。假如输入数据和本级芯片的处理时钟是异步的,特别是频率不匹配的时分,则要用处理时钟对输入数据做两次寄存器采样,才干完结输入数据的同步化。

是不是界说为Reg型,就必定综组成寄存器,并且是同步时序电路呢?

答案的否定的。Verilog中最常用的两种数据类型Wire和Reg,一般来说,Wire型指定书数据和网线经过组合逻辑完结,而reg型指定的数据不必定便是用寄存器完结。

5.乒乓操作

乒乓操作是一个常常运用于数据流操控的处理技巧。

FPGA规划的八个重要知识点

数据缓冲模块能够为任何的存储模块,比较常用的存储模块为双口RAM(DPRAM),单口RAM(SPRAM),FIFO等。在等一个缓冲周期,将输入的数据流缓存到数据缓存模块1,在第二个缓冲周期,经过输入数据流挑选单元,将输入的数据流缓存到数据缓冲模块2.乒乓操作的最大特色是,经过输入数据挑选单元和输出数据挑选单元,进行运算和处理。把乒乓操作模块当成一个全体,站在两头看数据,输入数据和输出数据流都是接二连三的,没有任何中止,因而十分合适对数据流进行流水线式处理。所以乒乓操作常常运用于流水线式算法,完结数据的无缝缓冲和处理。

乒乓操作的第二个长处是能够节省缓冲区空间。比方在WCDMA基带运用中,1帧是由15个时隙组成的,有时需求将1整帧的数据延时一个时隙后处理,比较直接的办法便是将这帧数据缓存起来,然后延时一个时隙,进行处理。这时缓冲区的长度为1帧的数据长,假定数据速率是3.84Mb/s,1帧10ms,此刻需求缓冲区的长度是38400bit,假如选用乒乓操作,只需界说两个缓冲1时隙的数据RAM,当向一个RAM写数据时,从另一块RAM读数据,然后送到处理单元处理,此刻每块RAM的容量仅需2560bit,2块加起来5120bit的容量。

奇妙的运用乒乓操作,还能够到达低速模块处理高速数据流的作用。

FPGA规划的八个重要知识点

6.串并转化

FPGA规划的八个重要知识点

7.流水线操作

流水线处理是高速规划中一个常用的规划手法。假如某个规划的处理流程分为若干过程,并且整个数据处理是单流向的。则能够考虑选用流水线规划办法进步体系的作业频率。

FPGA规划的八个重要知识点

其根本结构为:将恰当区分的n个操作过程单流向串联起来。流水线操作的最大特色和要求是,数据在各个过程的处理,从时刻上是接连的,假如将每个操作过程简化假定为一个经过D触发器(便是用寄存器打一个节拍),那么流水线操作就相似一个移位寄存器组,数据流顺次流经D触发器,完结每个过程的操作。流水线规划时序图如下:

FPGA规划的八个重要知识点

流水线规划的关键在于,整个规划时序的合理安排。要求每个操作过程的区分合理。假如前级操作时刻刚好等于后级操作时刻,规划最为简略,前级的输出直接汇入后级的输入即可。假如前级操作时刻大于后级操作时刻,则需求进行恰当缓存。假如前级操作时刻小于后级操作时刻,则有必要经过仿制逻辑,将数据流分流,或在前级对数据选用存储、后处理的办法。否则会形成后级数据的溢出。

8.数据接口的同步办法

数据接口的同步在FPGA/CPLD规划中一个常见问题。许多规划作业不安稳都是源于数据接口的同步问题。

1.输入输出的延时不行测,或许可能有变化,怎么完结数据的同步?

关于数据推迟不行测或许变化,就需求树立同步机制。或许用一个同步使能,或许同步指示信号。别的使数据经过RAM或许FIFO的存取,也能够到达数据同步的意图。

把数据存放在RAM或FIFO的办法如下,将上级芯片供给的数据随路时钟作为写信号,将数据写入RAM或许FIFO,然后运用本级时钟的采样时钟(一般是数据处理的主时钟),将数据读出来即可。这种做法的关键是数据写入RAM或许FIFO要牢靠,假如运用同步RAM或许FIFO,就要求有一个与数据推迟相对联系固定的随路指示信号。

FPGA规划的八个重要知识点

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/98830.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部