位置:51电子网 » 技术资料 » EDA/PLD

PLD/FPGA 结构与原理初步(一)

发布时间:2008/5/28 0:00:00 访问次数:397

一.基于乘积项(product-term)的pld结构

采用这种结构的pld芯片有:altera的max7000,max3000系列(eeprom工艺),xilinx的xc9500系列(flash工艺)和lattice,cypress的大部分产品(eeprom工艺)

我们先看一下这种pld的总体结构(以max7000为例,其他型号的结构与此都非常相似):

图1 基于乘积项的pld内部结构

这种pld可分为三块结构:宏单元(marocell),可编程连线(pia)和i/o控制块。 宏单元是pld的基本结构,由它来实现基本的逻辑功能。图1中兰色部分是多个宏单元的集合(因为宏单元较多,没有一一画出)。可编程连线负责信号传递,连接所有的宏单元。i/o控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。 图1 左上的input/gclk1,input/gclrn,input/oe1,input/oe2 是全局时钟,清零和输出使能信号,这几个信号有专用连线与pld中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。

宏单元的具体结构见下图:

图2 宏单元结构

左侧是乘积项阵列,实际就是一个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑。后面的乘积项选择矩阵是一个“或”阵列。两者一起完成组合逻辑。图右侧是一个可编程d触发器,它的时钟,清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零。如果不需要触发器,也可以将此触发器旁路,信号直接输给pia或输出到i/o脚。

二.乘积项结构pld的逻辑实现原理

下面我们以一个简单的电路为例,具体说明pld是如何利用以上结构实现逻辑的,电路如下图:

图3

假设组合逻辑的输出(and3的输出)为f,则f=(a+b)*c*(!d)=a*c*!d + b*c*!d ( 我们以!d表示d的“非”)

pld将以下面的方式来实现组合逻辑f:

图4

a,b,c,d由pld芯片的管脚输入后进入可编程连线阵列(pia),在内部会产生a,a反,b,b反,c,c反,d,d反8个输出。图中每一个叉表示相连(可编程熔丝导通),所以得到:f= f1 + f2 = (a*c*!d) + (b*c*!d) 。这样组合逻辑就实现了。 图3电路中d触发器的实现比较简单,直接利用宏单元中的可编程d触发器来实现。时钟信号clk由i/o脚输入后进入芯片内部的全局时钟专用通道,直接连接到可编程触发器的时钟端。可编程触发器的输出与i/o脚相连,把结果输出到芯片管脚。这样pld就完成了图3所示电路的功能。(以上这些步骤都是由软件自动完成的,不需要人为干预)

图3的电路是一个很简单的例子,只需要一个宏单元就可以完成。但对于一个复杂的电路,一个宏单元是不能实现的,这时就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到可编程连线阵列,再做为另一个宏单元的输入。这样pld就可以实现更复杂逻辑。

这种基于乘积项的pld



一.基于乘积项(product-term)的pld结构

采用这种结构的pld芯片有:altera的max7000,max3000系列(eeprom工艺),xilinx的xc9500系列(flash工艺)和lattice,cypress的大部分产品(eeprom工艺)

我们先看一下这种pld的总体结构(以max7000为例,其他型号的结构与此都非常相似):

图1 基于乘积项的pld内部结构

这种pld可分为三块结构:宏单元(marocell),可编程连线(pia)和i/o控制块。 宏单元是pld的基本结构,由它来实现基本的逻辑功能。图1中兰色部分是多个宏单元的集合(因为宏单元较多,没有一一画出)。可编程连线负责信号传递,连接所有的宏单元。i/o控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。 图1 左上的input/gclk1,input/gclrn,input/oe1,input/oe2 是全局时钟,清零和输出使能信号,这几个信号有专用连线与pld中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。

宏单元的具体结构见下图:

图2 宏单元结构

左侧是乘积项阵列,实际就是一个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑。后面的乘积项选择矩阵是一个“或”阵列。两者一起完成组合逻辑。图右侧是一个可编程d触发器,它的时钟,清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零。如果不需要触发器,也可以将此触发器旁路,信号直接输给pia或输出到i/o脚。

二.乘积项结构pld的逻辑实现原理

下面我们以一个简单的电路为例,具体说明pld是如何利用以上结构实现逻辑的,电路如下图:

图3

假设组合逻辑的输出(and3的输出)为f,则f=(a+b)*c*(!d)=a*c*!d + b*c*!d ( 我们以!d表示d的“非”)

pld将以下面的方式来实现组合逻辑f:

图4

a,b,c,d由pld芯片的管脚输入后进入可编程连线阵列(pia),在内部会产生a,a反,b,b反,c,c反,d,d反8个输出。图中每一个叉表示相连(可编程熔丝导通),所以得到:f= f1 + f2 = (a*c*!d) + (b*c*!d) 。这样组合逻辑就实现了。 图3电路中d触发器的实现比较简单,直接利用宏单元中的可编程d触发器来实现。时钟信号clk由i/o脚输入后进入芯片内部的全局时钟专用通道,直接连接到可编程触发器的时钟端。可编程触发器的输出与i/o脚相连,把结果输出到芯片管脚。这样pld就完成了图3所示电路的功能。(以上这些步骤都是由软件自动完成的,不需要人为干预)

图3的电路是一个很简单的例子,只需要一个宏单元就可以完成。但对于一个复杂的电路,一个宏单元是不能实现的,这时就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到可编程连线阵列,再做为另一个宏单元的输入。这样pld就可以实现更复杂逻辑。

这种基于乘积项的pld



相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!