3.5 现场可编程门阵列的结构

现场可编程门阵列(Field Programmable Gate Array,FPGA)是在CPLD之后发展出来的一种更复杂的PLD,它集成了更多且更复杂的设计资源,包括逻辑阵列模块、嵌入式存储器、嵌入式乘法器、时钟和PLL、通用I/O、外部存储器接口、模数转换器等。在一些高性能的FPGA内(如Intel公司的Cyclone10 GX系列)还提供了吉比特收发器,以及PCI-E模块等硬核资源。

与CPLD主要使用“与或”阵列不同,FPGA使用查找表结构,这是FPGA最基本的原理。Xilinx公司和Intel公司的FPGA主要采用SRAM工艺,Actel公司的FPGA采用反熔丝工艺或者FLASH工艺。

3.5.1 查找表结构原理

由布尔逻辑代数理论可知,对于一个n输入的逻辑运算,最多产生2n个不同的组合。如果预先将每个逻辑输入对应的结果保存在一个存储单元中,就相当于实现了逻辑门电路的功能。下面通过一个例子进行说明。代码清单3-1给出了基本逻辑门的Verilog HDL设计代码。

代码清单3-1 基本逻辑门的Verilog HDL设计代码

img

读者可以定位到本书提供资源的\eda_example\example_3_1目录下,使用Quartus Prime Standard工具打开该设计。

在该设计中,逻辑输入是a和b,逻辑输出是x和y。在该设计中,逻辑输入a和b执行逻辑与运算后的结果驱动输出x,逻辑输入a和b执行逻辑或运算后的结果驱动输出y。

按照传统数字电路的方法,使用真值表先得到输入变量和输出变量之间的逻辑关系,然后再通过化简卡诺图得到描述输入变量和输出变量关系的逻辑表达式,最后通过逻辑电路实现该逻辑表达式,如图3.19所示。

img

图3.19 由逻辑门构成的组合逻辑电路

很明显,这种基于传统逻辑门电路实现逻辑关系的方法有下面的缺点:

(1)众所周知,a和b从输入经过逻辑门运算后送到输出变量xy一定存在着延迟。延迟大小与逻辑电路的复杂度相关,当逻辑电路的复杂度增加时,延迟就会增加;当逻辑电路的复杂度降低时,延迟就会减少。也就是说,从逻辑输入到输出的延迟是不确定的,这与逻辑电路的复杂度相关。很明显,时间延迟的倒数是频率,这也就意味着系统的时钟工作频率也不确定,而时钟工作频率与时序电路的工作速度密切相关,这会影响整个电路的工作性能,这是因为很难确定时序逻辑最终的工作速度。

(2)逻辑电路的复杂度与输入逻辑变量的个数,以及逻辑电路中所使用的逻辑门的数量有关。很明显,逻辑电路中使用的输入变量越多,逻辑电路就会越复杂,所使用的逻辑门的数量也会相应增加。

为了克服这些缺点,在FPGA中使用查找表(Look Up Table,LUT)来实现组合逻辑电路的功能。如图3.20所示,原来电路中的逻辑与门和逻辑或门分别被名字为“x~0”和“y~0”的LOGIC_CELL_COMB元件代替,该元件实现LUT的功能。在这两个LUT中,分别保存着输出变量OUT与输入变量DATAA和DATAB之间的逻辑关系,这个表的形式类似于真值表。如图3.20所示,从名字为“x~0”的LOGIC_CELL_COMB元件给出的门电路和真值表可知,该LUT实现两输入的逻辑与功能;从名字为“y~0”的LOGIC_CELL_COMB元件给出的门电路和真值表可知,该LUT实现两输入的逻辑或功能。

图3.20中,IBUF表示输入缓冲区,OBUF表示输出缓冲区。

从上面这个例子可知,可以将输入和输出之间的逻辑关系保存在LUT中,而不再像以前那样需要使用逻辑门构建。也就是说,在FPGA内,所有的逻辑组合关系均使用LUT实现。更进一步,虽然FPGA采用的是SRAM工艺,但是LUT的结构就像ROM一样。当设计者通过原理图或HDL描述了一个逻辑电路后,FPGA厂商提供的软件集成开发工具就会自动计算逻辑电路的所有可能结果,然后通过设计下载,将真值表预先写入LUT中。

img

图3.20 由查找表构成的电路

对于图3.20给出的设计来说,我们可以将DATAA和DATAB看作ROM的地址输入,而不是简单的逻辑输入变量。很明显,{DATAA,DATAB}有4种组合{“00”,“01”,“10”,“11”},它们对应于LUT内4个不同的存储单元,这4个存储单元的位宽为1比特。通过配置比特流,将逻辑输入和输出之间的对应关系保存在ROM中。每当地址{DATAA,DATAB}的组合映射到ROM(LUT)内的某个存储单元时,就将该存储单元所对应的输出送到LUT的输出端口OUT上。

与传统采用逻辑门实现组合逻辑相比,采用LUT实现组合逻辑有着巨大的优势,主要体现在:

(1)LUT可实现的逻辑关系的复杂度由LUT的端口数量决定,端口数量越多,可实现的逻辑功能就越复杂;

(2)LUT实现的组合逻辑有固定的传输延迟。

自从FPGA诞生以来,一直采用4输入的LUT结构。根据前面的分析可知,4输入的LUT结构可以最多产生24=16种逻辑组合,很容易用来表示4个逻辑输入变量和一个逻辑输出变量之间的逻辑关系。

随着集成电路工艺的不断发展,Xilinx和Intel将LUT的输入个数从4增加到了6,即最新的FPGA采用的是6输入的LUT结构。这样,一个LUT可以实现更复杂的逻辑功能,因此潜在地减少了实现逻辑功能所使用的LUT的个数,以及互联资源,显著地提高了系统的性能并降低了实现成本。

思考与练习3-10:FPGA的基本原理是____________________________。

思考与练习3-11:在FPGA中,组合逻辑功能在________中实现。

3.5.2 MAX 10系列的器件的特性

本小节将以Intel公司的MAX 10系列的器件为例,详细介绍FPGA内所提供的逻辑设计资源。

Intel的MAX 10系列的器件在低成本、单芯片小外形可编程逻辑器件中实现了先进的处理功能,从而能够实现更好的非易失性集成。继承了前一代MAX系列的器件的单芯片特性,使用单核或双核电压供电,其密度范围为2~50K LE。MAX 10系列的器件提供了先进的小晶圆级封装(3mm×3mm)和有大量I/O引脚封装的产品。

MAX 10系列的器件采用TSMC的55nm嵌入式NOR FLASH技术制造,支持瞬时接通功能。其集成功能包括模数转换器(ADC)和双配置FLASH,支持设计者在一个芯片上保存两个镜像,在两个镜像之间动态切换。

MAX 10系列的器件内集成的资源主要包括:

① 逻辑阵列模块(Logic Array Block,LAB);

② 模拟-数字转换器(Analog-to-Digital Converter,ADC);

③ 用户FLASH存储器(User Flash Memory,UFM);

④ 嵌入式乘法器模块;

⑤ 嵌入式存储器块(M9K);

⑥ 时钟和相位锁相环(Phase Locked Loop,PLL);

⑦ 通用I/O;

⑧ 高速低电压差分(Low Voltage Differential Signaling,LVDS)信号I/O;

⑨ 外部存储器接口;

⑩ 配置FLASH存储器(Configuration Flash Memory,CFM)。

例如,上面资源在MAX 10系列的器件中的布局如图3.21所示。

(1)在各个MAX 10系列的器件中,各个资源的数量和位置各不相同;

(2)某些MAX 10系列的器件中可能不包含指定的模块。

思考与练习3-12:请读者在前面给出的设计中,通过Quartus Prime Standard集成开发环境打开Chip Planner工具,查看MAX 10系列的10M50DAF484C7G器件内所集成的资源和相关的位置(提示:参考图3.21给出的布局图)。

img

图3.21 MAX 10系列的器件内各个资源的布局

3.5.3 逻辑阵列模块

LAB是包含一组逻辑资源的可配置的逻辑模块,如图3.22所示,每个LAB包含以下元件。

① 16个逻辑元素(Logic Element,LE)。它是MAX 10系列的器件中最小的逻辑单元。

② LE进位链。进位链通过LAB中的每个LE进行串行传播。

③ LAB控制信号。将控制信号驱动到LE的专用逻辑。

④ 局部互联。在同一个LAB中的LE之间传输信号。

⑤ 寄存器链接。在LAB中将某个寄存器的输出传输到相邻的LE寄存器。

对于代码清单3-1给出的设计而言,在MAX 10系列的器件内,一个LAB内的资源使用如图3.23所示。很明显,图3.20给出的映射后的网表结构在MAX 10系列的器件内使用了一个LAB内的两个LE(节点的名字分别是x~0和y~0)的部分资源实现了逻辑“与”和逻辑“或”功能。为了方便,将两个LE的内部结构通过图3.24(a)和图3.24(b)展示。

从图3.24可知,每个LE的内部包含一个4输入LUT,其输入端口分别为A、B、C和D,用于实现逻辑组合。此外,每个LE的内部还包含一个D触发器,该触发器的外围提供了不同的控制信号,如下所示。

img

图3.22 MAX 10系列的器件内一个LAB的内部结构和LE的局部放大视图

img

图3.23 代码清单3-1的设计在一个LAB内的实现

① 异步和同步清除信号(ACLR和SCLR)。

② 同步加载信号SLOAD。

③ 数据输入信号(SDATA和DATAIN)。其中,SDATA信号来自LE输入端口;DATAIN信号可来自外部端口,也可来自LUT的输出。从图3.24可知,由SLOAD信号选择SDATA或DATAIN信号。

img

图3.24 LE的内部结构,实现逻辑“与”和逻辑“或”运算功能(含连接关系)

④ 时钟输入信号CLK。

⑤ 触发器使能信号ENA。

在代码清单3-1给出的设计中没有使用触发器,所以LUT的输出直接绕过D触发器,作为LE的输出,与外部进行连接。

1.LAB的局部互联

LAB的局部互联是由列和行互联,以及在相同LAB中的LE的输出端驱动的。

直接链接连接可最大限度地减少使用行和列的互联,从而提供更高的性能和灵活性。直接链接连接使能左右两侧相邻的单元以驱动LAB的局部互联,这些单元分别是LAB、PLL、M9K、嵌入式存储模块和嵌入式乘法器。

每个LE通过本地和直接链接互联可驱动最多48个LE。下面通过一个设计实例(如代码清单3-2所示)说明LAB的局部互联。

代码清单3-2 top.v文件

img

读者可以定位到本书提供资源的\eda_example\example_3_2目录下,使用Quartus Prime Standard工具打开该设计。

该设计映射后的网表结构,如图3.25所示。

img

图3.25 映射后的网表结构

打开Chip Planner工具,查看该设计在MAX 10系列的器件中的布局与布线,如图3.26所示。

思考与练习3-13:请读者在前面给出的设计中,通过Quartus Prime Standard集成开发环境打开Chip Planner工具,仔细查看该设计的内部互联关系。

img

图3.26 设计在MAX 10系列的器件中的布局与布线

2.LAB控制信号

每个LAB都包含有专用逻辑,从而将控制信号驱动到各自的LE中。控制信号包括两个时钟信号、两个时钟使能信号、两个异步清零信号、一个同步清零信号和一个同步加载信号,如图3.27所示,其含义如表3.2所示。

表3.2 MAX 10系列的器件中控制信号的说明

img

续表

img
img

图3.27 MAX 10系列的器件中的控制信号

你可以一次使用最多8个控制信号。不能同时使用寄存器打包和同步加载。

每个LAB可以最多有4个非全局控制信号。你可以使用其他的LAB控制信号(只要它们是全局信号)。

一个用于寄存器预置信号控制逻辑的LAB宽异步加载信号是不可用的。通过非门反向(NOT gatepush-back)技术实现寄存器的预置。MAX 10系列的器件只支持置位或异步清除信号。

除清除端口外,MAX 10系列的器件提供了一个器件宽度的复位引脚(DEV_CLRn)用于复位器件内的所有寄存器。在Quartus Prime软件编译之前,一个选项设置可用于控制这个引脚。该器件宽度的复位覆盖其他所有控制信号。

一个使用MAX 10系列的器件中的控制信号的设计,如代码清单3-3所示。

代码清单3-3 top.v文件

img
img

读者可以定位到本书提供资源的\eda_example\example_3_3目录下,使用Quartus Prime Standard工具打开该设计。

该设计映射后的网表结构,如图3.28所示。

img

图3.28 设计映射后的网表结构

使用ChipPlanner工具,打开该设计,如图3.29所示。

从图3.29(a)可知,通过与本地互联和块互联连接的2∶1多路选择器为LE提供时钟信号clk、时钟使能信号en和异步清除信号clr。该设计的输入信号a和b均来自块互联。该设计的所有信号都由外部引脚通过LAB左右两侧的C4互联(C4互联纵向跨越4个ALB块),送到块互联。

从图3.29(b)可知,该设计占用一个LE资源,两个输入信号a和b进入4输入查找表(只使用其中的两个端口),查找表的输出COMBOUT通过两个多路选择器送到D触发器的D输入端,clk信号通过LE的端口直接连接到D触发器的CLK引脚,en信号通过LE的端口直接连接到D触发器的ENA引脚,clr信号通过LE的端口直接连接到D触发器的ACLR引脚。

img

图3.29 该设计布局布线的结果与LE内部的连接关系

思考与练习3-14:请读者在前面给出的设计中,通过Quartus Prime Standard集成开发环境,打开Chip Planner工具,仔细查看该设计的内部互联关系。

3.串行进位链

本部分将通过一个4位加法器的设计说明在LAB中使用串行进位链的方法,如代码清单3-4所示。

代码清单3-4 top.v文件

img
img

读者可以定位到本书提供资源的\eda_example\example_3_4目录下,使用Quartus Prime Standard工具打开该设计。

该设计映射后的网表结构,如图3.30所示。

img

图3.30 四位加法器映射后的网表结构

思考与练习3-15:请读者在前面给出的设计中,通过Quartus Prime Standard集成开发环境,打开Chip Planner工具,仔细查看该设计的内部互联关系,说明该设计中串行进位链的使用方法。

4.逻辑元素LE

在MAX 10系列的器件中,LE是其最小的逻辑单元。LE的结构紧凑,并且具有高效逻辑用途的高级功能。

1)LE的特性

(1)LE的输入。

每个LE的输入被馈送到各个不同的目标,以实现所需的逻辑功能。如图3.29(b)所示,在LE的普通或算术操作模式中,都有6个可用的输入,包括:

① 4个来自LAB局部互联的数据输入;

② 一个来自前面LE进位链的LE进位输入;

③ 一个寄存器链的连接(反馈输入)。

(2)LE的输出。

每个LE具有3个通用的布线输出,包括:

① 两个LE的输出驱动列或行,以及直接链接的布线连接;

② 一个LE的输出驱动本地的互联资源。

MAX 10系列的器件支持寄存器打包。通过寄存器打包,LUT或寄存器的输出分别驱动3个输出。该功能通过将寄存器和LUT用于无关功能来提高器件的利用率。当使用寄存器打包时,LAB宽的同步加载信号不可用。

(3)寄存器链。

每个LE具有一个支持同一LAB中各个寄存器级联的寄存器链输出,该功能加速了LAB间的连接性,并优化了局部互联资源:

① LUT可用于组合功能;

② 寄存器用于无关移位寄存器的实现。

(4)可编程寄存器。

可配置各个LE的可编程寄存器,并用于D、T、JK或SR触发器操作。各个寄存器的输入如下。

① 时钟。由全局时钟网络、通用I/O引脚或内部逻辑驱动;

② 清除。由全部时钟网络、通用I/O引脚或内部逻辑驱动;

③ 时钟使能。由通用I/O引脚或内部逻辑驱动。

对组合功能,LUT的输出绕过寄存器,直接驱动LE的输出。

(5)寄存器反馈。

寄存器反馈模式支持寄存器的输出反馈到相同LE的LUT中。寄存器反馈可确保寄存器与自身的扇出LUT一起封装,并提供另一种改善适配过程(注:适配过程是Quartus Prime软件自动化处理过程的关键步骤)机制。LE也可以输出已寄存或未寄存形式的LUT输出。

2)LE操作模式

MAX 10系列的器件中的LE以两种模式运行,即普通模式和算术模式。这些操作以不同的方式使用LE资源。两个LE模式均有6个可用的输入和LAB宽度的信号。

Quartus Prime软件能自动为普通功能选择合适的模式(如计数器、加法器、减法器和算术功能)和操作化功能。

(1)普通模式。

该模式适用于一般的逻辑应用和组合功能。在该模式下,来自LAB本地互联的4个数据输入口输入到4输入LUT中。如图3.29(b)所示,Quartus Prime编译器自动选择进位输入(cin)或DATAC作为到LUT的其中一个输入。在普通模式中,LE支持寄存器打包和寄存器反馈。

(2)算术模式。

算术模式是实现加法器、计数器、累加器和比较器的理想选择。

在算术模式下,LE实现2位的全加器和基本进位链。在算术模式中,LE可输出已寄存和未寄存形式的LUT输出。在算术模式下,LE支持寄存器打包和寄存器反馈。

思考与练习3-16:在MAX 10系列的器件中,最小的逻辑单位是________。在一个LAB中,包含________个这样的逻辑单位。

思考与练习3-17:在一个最小逻辑单位中,包含________和________两部分。

思考与练习3-18:在一个最小逻辑单位中,提供了________和________工作模式。

3.5.4 嵌入式存储器

在MAX 10系列的器件中,优化存储器用于高吞吐量数据包处理、嵌入式处理器程序和嵌入式数据存储等应用。

MAX 10嵌入式存储器由9216位(包含奇偶校验位)块构成。你可以在不同的宽度和配置中使用每个M9K模块以提供各种存储器功能,如RAM、ROM、移位寄存器及FIFO。

MAX 10嵌入式存储器支持以下通用功能,包括:

① 每个块有8192个存储位(每个块有9216位,包括奇偶校验位);

② 用于每个端口独立的读使能(rden)和写使能(wren)信号;

③ 在压缩模式下,M9K存储器块被分成两个4.5K单端口RAM;

④ 可变端口配置;

⑤ 单端口和简单双端口模式支持所有的端口宽度;

⑥ 双端口(一个读和一个写,两个读,或者两个写)操作;

⑦ 在写期间,用户数据输入屏蔽的字节使能;

⑧ 用于每个端口(端口A和端口B)的两个时钟使能信号;

⑨ 在RAM和ROM模式下,初始化文件用于预加载存储器内容。

一个调用M9K块存储器、生成双端口RAM的设计如代码清单3-5所示。

代码清单3-5 top.v文件

img

读者可以定位到本书提供资源的\eda_example\example_3_5目录下,使用Quartus Prime Standard工具打开该设计。

该设计所使用的M9K块存储器资源如图3.31所示,所使用的M9K块存储器资源的内部结构如图3.32所示。

img

图3.31 设计所使用的M9K块存储器资源

img

图3.32 设计所使用的M9K块存储器资源的内部结构

思考与练习3-19:在MAX 10系列的器件中,块存储器的标识M9K表示的含义是________。

思考与练习3-20:在MAX 10系列的器件中,M9K块存储器资源以________形式排列(行/列)。

3.5.5 嵌入式乘法器

根据不同的应用需求,你可以在以下两种工作模式下使用嵌入式乘法器模块:

① 一个18位×18位宽度的乘法器;

② 两个最多9位×9位宽度的独立乘法器。

通过使用MAX 10器件的嵌入式乘法器,可以实现乘法器-加法器和乘法器-累加器功能,这一功能的乘法器部分由嵌入式乘法器来实现,而加法器或累加器功能则在LE中实现。

一个无符号的8位×8位乘法器的设计实例如代码清单3-6所示。

代码清单3-6 top.v文件

img

(1)读者可以定位到本书提供资源的\eda_example\example_3_6目录下,使用Quartus Prime Standard工具打开该设计。

(2)如图3.33所示,在“Advanced Fitter Settings”对话框中,将“Auto Packed Registers”选项设置为“Normal”,这样就可以使该设计可以充分利用乘法器模块中的寄存器资源,从而尽量减少使用LE内的寄存器资源。

该设计适配后的网表结构如图3.34所示。很明显,该乘法器的第二级流水线输入a_tmp1和b_tmp1,以及输出寄存器p都封装到了乘法器模块中。

img

图3.33 “Advanced Fitter Settings”对话框

img

图3.34 该设计适配后的网表结构

用Chip Planner工具打开MAX 10系列的器件的布局。如图3.35所示,该图给出了MAX 10系列的器件的乘法器阵列布局和设计中使用的乘法器阵列资源,该设计所使用的乘法器的内部结构如图3.36所示。

img

图3.35 MAX 10系列的器件的乘法器阵列布局和设计中使用的乘法器阵列资源

img

图3.36 该设计所使用的乘法器的内部结构

从图3.26可知,乘数和被乘数经过8位DATA和8位DATAB端口输入后,各自经过了一级流水线寄存器(D触发器),随后送到乘法器得到运算结果,该运算结果通过DATAOUT端口输出。最后,该输出通过第二级的流水线寄存器(D触发器)输出。很明显,该设计充分利用了乘法器的内部设计资源,显著减少了所使用的外部LE资源。

3.5.6 时钟和相位锁相环

MAX 10系列的器件支持全局时钟网络(GCLK)和相位锁相环。全局时钟网络对内核提供时钟源。你可以在高扇出全局信号网络中使用全局时钟网络,如复位和清除。

PLL提供了可靠的时钟管理和综合,用于器件的时钟管理、外部系统的时钟管理和I/O接口的时钟驱动。

1.全局时钟网络

GCLK驱动整个器件,并为器件的各个象限提供时钟。器件中的所有资源(I/O单元、逻辑阵列模块LAB、专用乘法器模块和M9K存储器模块)都能够将GCLK用作时钟资源。这些全局网络资源可用于控制信号。例如,由外部引脚驱动的时钟使能及清零信号。对于内部生成的GCLK,以及异步清零、时钟使能或其他高扇出的控制信号,内部逻辑也能够驱动GCLK。

MAX 10系列的器件内全局时钟网络资源的分布如图3.37所示。

img

图3.37 MAX 10系列的器件内全局时钟网络资源的分布

思考与练习3-21:使用Chip Planner工具查看前面设计中所使用的全局时钟网络和全局时钟网络的布线。

2.内部振荡器

MAX 10系列的器件内建的内部环形振荡器带有时钟多路复用器和分频器。内部环形振荡器的运行频率高达232MHz,但实际无法达到。

当输入信号oscena有效时,使能振荡器。通过clkout输出信号,振荡器的输出能布线连接到逻辑阵列。当oscena信号设置为低时,clkout信号恒为高。你可以使用TimeQuest时序分析器来分析该延迟。

3.相位锁相环及位置

PLL的主要用途是将压控振荡器(Voltage Controlled Oscillator,VCO)的相位和频率同步到一个输入参考时钟,其内部结构如图3.38所示。MAX 10系列的器件中PLL的位置,如图3.39所示。

图3.38中:(1)VCO标定后计数器K;

(2)仅PLL1和PLL3的计数器C0可以驱动ADC时钟。

一个使用相位锁相环的设计实例如代码清单3-7所示。

代码清单3-7 top.v文件

img

读者可以定位到本书提供资源的\eda_example\example_3_7目录下,使用Quartus Prime Standard工具打开该设计。

思考与练习3-22:使用Quartus Prime集成的Chip Planner打开该设计的布局布线,仔细查看相位锁相环的位置和该设计的所有时钟布线,进一步掌握MAX 10系列的器件中的时钟网络。

img

图3.38 相位锁相环的内部结构

img

图3.39 MAX 10系列的器件中PLL的位置

3.5.7 通用I/O

MAX 10器件的I/O系统支持多种I/O标准。在MAX 10器件中,I/O引脚放置在器件外围的I/O组中。I/O引脚及I/O高速缓冲区具有多个可编程特性。

1.MAX 10 I/O组结构

I/O元素位于每个I/O组上具有4个I/O模块的组中:

① 高速DDR3 I/O组。支持各种I/O标准和协议,包括DDR3。仅在器件的右侧有这些I/O组。

② 高速I/O组。支持各种I/O标准和协议,除了DDR3。这些I/O组位于器件的顶层、左侧和底部。

③ 低速I/O组。位于器件左上角的低速I/O组。

2. MAX 10 I/O组位置

I/O组位于器件的外围,如图3.40所示。

img

图3.40 MAX 10系列的器件的I/O组布局

img

图3.40 MAX 10系列的器件的I/O组布局(续)

3.5.8 高速LVDS I/O

通过LVDS I/O组和Altera Soft LVDS IP核,MAX 10系列的器件支持高速LVDS协议。

MAX 10系列的器件使用内核框架中的寄存器和逻辑实现LVDS的输入和输出接口。

① 对于LVDS收发器,MAX 10系列的器件使用在I/O元素中的双数据率(Double Data Rate I/O,DDIO)寄存器。该架构在接收器输入偏移裕量(Receiver Input Skew Margin,RSKM)或发送器通道到通道偏移(Channel-to-Channel,TCCS)方面会改善性能。

② 对于LVDS串行化器/解串行化器(Seializer/Deserializer,SERDES),MAX 10系列的器件使用LE内的寄存器。

1.MAX 10高速LVDS电路

在MAX 10系列的器件中,LVDS解决方案使用I/O元素和寄存器。Altera Soft LVDS IP核实现串行化器(并行-串行转换)和解串行化器(串行-并行转换)作为核心逻辑的软SERDES块。

MAX 10系列的器件不包括专用的串行化或解串行化电路:

① 你可以使用I/O引脚和核心框架来实现器件内的一个高速差分接口;

② MAX 10解决方案使用移位寄存器、内部PLL和I/O元素对输入与输出数据执行串行到并行及并行到串行的转换。

③ Quartus Prime软件使用Altera Soft LVDS IP核的参数设置在核心框架中构建差分SERDES。

LVDS SERDES电路中发送器和接收器的结构,以及发送器和接收器数据路径的结构信号,如图3.41所示。

img

图3.41 LVDS SERDES电路中发送器和接收器的结构,以及发送器和接收器数据路径的结构信号

2.MAX 10高速LVDS I/O位置

MAX 10系列的器件,其I/O组支持所有I/O组上的真LVDS输入和伪LVDS输出,只有底部I/O组支持真LVDS输出。

3.5.9 外部存储器接口

MAX 10系列的器件,其能与广泛的外部存储器标准进行连接,这一特性使得你可以将MAX 10系列的器件用于广泛的应用程序中,如图像处理、存储、通信和一般的嵌入式系统。

MAX 10系列的器件,其外部存储器接口的解决方案包括:

① 支持外部存储器接口的I/O单元;

② UniPHY IP核使你能够配置存储器接口,以使其支持不同的外部存储器接口标准。

在MAX 10系列的器件中,仅在器件右侧的I/O组上支持外部存储器接口。I/O组上的所有外部存储器的I/O引脚。

3.5.10 模数转换器

在MAX 10系列的器件中,集成了两个模数转换器(Analog-to-Digital Converter,ADC)。内建的ADC为MAX 10系列的器件提供了片上温度监控和外部模拟信号转换的能力。

ADC解决方案由器件外围中的硬核IP模块和通过Altera Modular ADC IP核的软逻辑构成。

ADC解决方案提供了内建的能力,用于将模拟量转换为数字数据,以用于信息处理、计算、数据传输和控制系统。基本功能是为观测到的模拟信号提供一个12位的数字表示。

ADC解决方案提供了两种工作模式:

① 普通模式。以每秒1M符号(1 megasymbols per second,Msps)的累计采样率监控最多18个单端外部的输入。

② 温度感应模式。以最高每秒50千字符(50 kilosymbols per second,ksps)的采样率,监控内部温度数据。

在MAX 10系列的器件中,其ADC模块如图3.42所示。

img

图3.42 ADC模块

在MAX 10系列的器件中,ADC模块位于器件外围的左上角。

3.5.11 配置方案

MAX 10系列的器件,其JTAG配置核内部配置的总体架构如图3.43所示。

img

图3.43 JTAG配置核内部配置的总体结构

1.JTAG配置

在MAX 10系列的器件中,联合行动测试小组(Joint Test Action Group,JTAG)(也称为边界扫描,这是用于测试集成电路内部单元的一个标准)指令优于内部配置方案。

使用JTAG配置方案,可以通过JTAG接口直接配置器件的配置随机访问存储器(Configuration Random Access Memory,CRAM)。在JTAG中,提供4个配置引脚,即TDI、TDO、TMS和TCK。Quartus Prime软件自动生成一个SRAM目标文件(SRAM object file,.sof)。可以使用下载电缆和Quartus Prime软件编程器对.sod进行编程。

2.内部配置

在配置内部之前,你需要将配置数据编程到配置闪存(Configuration Flash Memory,CFM)中。写到CFM的配置数据将会是编程器目标文件(.pof)的一部分。通过使用JTAG在系统编程(In-System Programming,ISP),你可以将.pof编程到内部闪存。

在内部配置的过程中,MAX 10系列的器件使用来自CFM的配置数据加载CRAM。

3.5.12 用户闪存

MAX 10系列的器件内集成了存储非易失性信息的用户闪存(User Flash Memory,UFM)块。UFM是MAX 10系列的器件中内部闪存的一部分。

MAX 10系列的器件中的UFM是由软核IP和硬核IP组合而成的,仅可以使用Quartus Prime软件提供的Altera On-Chip Flash IP核访问UFM。

Altera On-Chip Flash IP核的内部结构如图3.44所示,该IP模块有两个Avalon-MM从控制器。

① 数据。对闪存提供读和写访问的UFM模块的封装。

② 控制。闪存的CSR和状态寄存器,仅用于写操作。

img

图3.44 Altera-On-Chip-Flash IP核的内部结构

3.5.13 电源管理

MAX 10系列的器件,其电源优化功能如下:

① 单电源或双电源器件选项;

② 上电复位(Power-On Reset,POR)电路;

③ 电源管理器控制器方案;

④ 热插拔。

1.单电源器件

MAX 10单电源供电器件仅需要使用一个3.0V或3.3V的外部电源,外部电源作为VCC_ONE和VCCA电源引脚的输入。该外部电源将由MAX 10单电源器件中的内部稳压器调整到内核逻辑操作所需的1.2V,如图3.45所示。

2.双电源器件

MAX 10双电源器件需要1.2V和2.5V用于器件的内核逻辑和外围操作,如图3.46所示。

img

图3.45 MAX 10单电源器件

img

图3.46 MAX 10双电源器件

3.电源管理控制器方案

电源管理控制器方案允许你在运行期间的休眠模式下分配一些应用,这使能你关闭部分设计,从而降低动态功耗。你可以使用小于1ms的快速唤醒时间重新启动应用。

4.热插拔

MAX 10系列的器件提供无须使用外部器件的热插拔(Hot Socketing,也称为Hot Plug-In或Hot Swap)和电源顺序支持。你可以在系统的工作期间从系统中的电路板插入或移除MAX 10系列器件,且不会因为其被插入而影响运行中的系统总线或电路板。

利用MAX 10系列的器件的热插拔功能,就不再需要确保板上每个器件具有正确的上电顺序。MAX 10系列的器件的热插拔功能提供:

① 无须通过外部元件或板级操作的电路板或器件插入和移除;

② 支持所有上电顺序;

③ 热插入器件对系统总线的非侵入性I/O缓冲。