首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

CYCLONEⅡ系列FPGA 总结

CYCLONEⅡ系列FPGA 总结

  FPGA是一个高级东西,并且现在越来越广泛的被硬件工程师所运用,FPGA——逻辑可编程器件。在硬件电路设计的时候可以使用一片FPGA完成加法器,选择器,存储器等许多数字芯片的功能,并且由于技术的发展,芯片成本的降低,使得越来越多的硬件工程师接触到这个器件,用于大型电路设计。
    CYCLONEⅡ系列FPGA器件由美国Altera公司出品,属于中端产品。采用了90nm的工艺,增加了片内逻辑单元数。为了方便说明,在此仅选用EP2C5进行分析讲解。
    先了解一下FPGA的命名规则,这样就可以从芯片名字的角度来看这是怎么样性能的一款芯片了。
    例如EP2C20F484C6,含义:
    EP——工艺,
    2C——cyclone2,
    20——LE数量约为20K,
    F——封装形式,
    484——管脚数,
    C——温度范围(确定其是工业级,军品级,还是商业级),
    6——速度(数字越小速度越快)。
   
    言归正传,了解一下CYCLONEⅡ系列FPGA的结构。先拿EP2C5为例进行分析学习。介绍一下EP2C5的逻辑资源。
    LE数——4608,
    M4K存储块数——26,
    总计存储器容量/bits——119808,
    乘法器数——13,
    锁相环数——2。

    1、逻辑单元与逻辑阵列。
    逻辑单元(Logic Element,LE)在FPGA器件内部,用于完成用户逻辑的最小单元。一个逻辑阵列包含16个逻辑单元以及一些其他资源,在一个逻辑阵列内部的16个逻辑单元有更为紧密的联系,可以实现特有的功能。
    一个逻辑单元主要由以下部件组成:一个四输入的查询表(LookUp Table,LUT),一个可编程的寄存器,一条进位链,一条寄存器级连链。
        查询表:用于完成用户需要的逻辑功能,CYCLONEⅡ系列的查询表示4输入1输出的,可以完成任意4输入1输出的组合逻辑。
        可编程寄存器:可以配置成D触发器,T触发器,JK触发器,SR触发器。每个寄存器包含4个输入信号,数据输入、时钟输入、时钟使能、复位输入。

    一个逻辑单元包含3个输出,两个用于驱动行连接、列连接、直接连接,另外一个用于驱动本地互联。这三个输出是相互独立的。输出信号可以来自于查询表也可以来自于寄存器。
        本地互连通路是逻辑阵列的重要组成部分,芯片级设计思路上的考虑与节省我们就不讨论,从实际运用出发,直接看看这个互连通路是干什么用的。本地互连通路提供了一种逻辑阵列内部的连接方式,问一句逻辑阵列内部是什么?不要忘了哈是16个逻辑单元。继续。逻辑阵列内部还包含一种对外的高速连接通路,称之为直接连接通路。
        直接连接通路连接的是相邻的逻辑阵列,或者与逻辑阵列相邻的M4K存储器块、乘法器、锁相环等。

    CYCLONEⅡ系列FPGA的逻辑单元有两种工作模式:普通模式和算数模式。
    普通模式适合于一般的逻辑运算。算数模式适用于实现加法器、计数器、累加器、比较器等。

    逻辑阵列的主体是16个逻辑单元,另外还有一些逻辑阵列内部的控制信号以及互连通路。前面所讲的互联通路和直接连接通路就是逻辑阵列中的部分。
    逻辑阵列还包括一些控制信号:两个时钟信号,两个时钟使能信号,两个异步复位信号,一个同步复位信号,一个同步加载信号。这些信号的使用时有一定要求和规范的,在此就不详细叙述了,等到使用的时候再去查阅书籍《Altera可编程逻辑器件的应用与设计》。


    2、内部连接通路
    在FPGA内部存在各种连接通路,连接不同的模块,比如逻辑单元之间、逻辑单元与存储器之间。FPGA内部资源是按照行列的形式排列的,所以连接通路也分为行列的。
    行连接又分为R4连接、R24连接和直接连接。R4连接就是连接4个逻辑阵列,或者3个逻辑阵列和1个存储块,或者3个逻辑阵列和1个乘法器。简单地说就是连接4个模块吧。R24就是24个模块。列连接是C4,C16,含义不用说了吧,是连接4个模块和16个模块。
   
    由于不同型号的FPGA所拥有的连接通路不同,所以在我们选择使用的时候要注意了,我们写的程序能否用底层的硬件阵列来满足。虽然我们在编写程序的时候不用去考虑这些线路是怎么连接的,但是出现线路问题的时候,在编译过程中出现警告,这时候一定要注意一下,这个警告在讲什么,是什么原因引起的,对我们电路的生成有没有什么影响。当然如果确定没有影响了就可以忽略了,不过对于一个过高精尖技术的工程师来说,警告就是错误。


    3、时钟资源
    CYCLONEⅡ系列FPGA有关时钟资源部分主要包括全局时钟树和锁相环两部分。
    全局时钟树又称全局时钟网络,负责把时钟分配到器件内部的各个单元,控制器件内部所有资源。锁相环则可以完成分频、倍频、移项等相关时钟的基本操作。

    全局时钟树是一种时钟网络结构,可以为FPGA内部的所有资源提供时钟信号,这些资源包括内部的寄存器、内部的存储器、输入输出管脚寄存器等。
    CYCLONEⅡ系列FPGA中每条全局时钟树都对应一个时钟控制模块,时钟控制模块的作用是从多个时钟源种选择一个连接到全局时钟树,进而提供给片内的各种资源。这些时钟源包括锁相环的输出,专用时钟引脚的输入,两用时钟引脚的输入或者内部逻辑。
    专用时钟引脚是为时钟输入专门设计的引脚,在有可能的情况下应该尽量将时钟信号连接到专用管脚上。EP2C5有8个专用时钟引脚(CLK),4个位于芯片左侧,4个位于芯片右侧。
    两用时钟引脚(DPCLK)通常用于介入时钟或者异步控制信号,EP2C5有8个两用时钟引脚,芯片每一侧两个。CYCLONEⅡ系列FPGA允许对两用时钟引脚的输入延时进行设置,是我们更好地控制时序。
    置于CYCLONEⅡ系列FPGA对全局时钟树的使用方式和限制,在此也不一一罗列开来,也要注意的是,时钟的链接也会受到这样或者那样的限制,如果在实际电路的过程中出现了问题,自然也会在编译过程中提示出来的,所以切记不要将所有警告都忽略掉,因为这些警告可能是程序设计中的漏洞,当某种状态浮现的时候会导致程序运行的不稳定。

    锁相环在FPGA中除了分频、倍频操作外,还进场用于内部时钟和外部时钟保持沿同步,提供需要的外部时钟输出等。EP2C5包含两个锁相环(PLL1,PLL2)。
    锁相环支持单端时钟输入和差分时钟输入。当采用单端时钟输入的时候CLK0~3作为时钟源提供给锁相环,当采用差分时钟输入的时候,CLK0、CLK1提供给PLL1,CLK2、CLK3提供给PLL2。只有专用的时钟输入引脚的时钟信号才能驱动锁相环。
    锁相环最主要的目的是产生一个和外部输入始终保持同步的时钟信号,包括频率同步和相位同步。将锁相环的特性和功能总结一下有:分频倍频、相移、设置占空比、片内外时钟输出、时钟切换、锁定指示、反馈模式、控制信号。
    锁相环结构里有PFD,相频鉴别器(Phase Frequency Detector, PFD)。什么是PFD呢,科普一下,其作用是比较反馈时钟信号同参考时钟信号的相位关系,然后给出控制信号用于调节压控振荡器的产生的时钟频率。锁相环结构里还有两个预分频器和三个后分频器(又称后比例计数器)。
    锁定检测部分用于检测当前锁相环的状态,当参考时钟和反馈回来的时钟子信号同步的时候,锁相环进入锁定状态。

    锁相环部分的内容比较多,讲着讲着就感觉到东西的繁多了,本来想着不讲了,但是又怕自己没有讲述清楚,或者遗漏了什么知识点,所以还是决定继续总结并介绍下去,尽量用最平实的话,最精简的语句来介绍这一部分的相关内容。

    完成反馈是锁相环最核心部分,CYCLONEⅡ系列FPGA的锁相环有三种反馈模式。
        普通模式:将全局时钟树的时钟信号反馈给相频鉴别器,从而保证内部寄存器的输入时钟与外部输入始终保持相位同步。
        零延时模式:锁相环将专用的外部输出时钟引脚的输出时钟反馈给相频鉴别器,从而保证输出时钟引脚上的时钟信号和输入引脚上的时钟是沿对齐的。
        无补偿模式:锁相环竟不会对全局时钟树作补偿,也不对外部时钟输出引脚作补偿。这样做的好处是可以简化反馈电路,改善时钟性能。

   
    写到这里我已经写了好几个小时了,边看书边总结边写,希望能给各位看客提供一点点有用知识,也不枉费点开这一片博文,如果有遗漏、错误或者问题,也望各位能够提出来,共同讨论学习进步。
    接下来我将继续总结有关CYCLONEⅡ系列FPGA的内部存储器、乘法器和输入输出引脚,有需要的继续查阅,为了节省您宝贵的时间没需要的可以叉掉了
继承事业,薪火相传
返回列表