lcytms
发表于 2016-10-9 09:22:40
1108
今天我们既没有用PLA,也没有用PAL,而是用的查找表。
马上我们来讲,为什么查找表会替代它?
无论是或阵列可编程,还是与阵列可编程,都存在一个编程的问题,就是把这两根线,要么打开,要么连通。
早期的电路模式称之为熔丝和反熔丝的模式,烧断了就是熔丝,烧通了就是反熔丝。
最早是熔丝的模式,所有的线原来是连着的,使用强电流烧断它。
1109
反熔丝的工艺比较简单,但是连通之后带来的问题是OTP(一次性编程)。
大家很快发现了它的问题,不便于重复使用,这个问题很快也被人们解决了。
1110
Drori的团队提出了解决方案,就是在线编程。
在线编程的背后,就是我们现代的技术。
lcytms
发表于 2016-10-9 09:27:02
1111
新的解决方案使用了双稳态电路。它是挥发的,而非挥发的是指掉了电以后还在,通了电以后还在。双稳态电路掉电之后0和1的信息就不在了,它是挥发的。
1112
虽然它有挥发性的问题,但是由于它的速度快,一直到今天,一直到最现代的FPGA,仍然用它来替代早期的结构。
熔丝、反熔丝被它替代,但是编程的方式既没有用到PLA,也没有用到PAL,而是用四输入查找表。
我们来讨论查找表的问题。
有种说法,CPLD是Lattice提出来的,但是Altera和Xilinx都各自声明他们是CPLD的先驱者,为什么大家对CPLD的研发都要竞争呢?因为CPLD代表了现代FPGA的雏形。
lcytms
发表于 2016-10-9 09:32:07
1113
以往是一个逻辑一个逻辑地走,到了CPLD时代呢,有了可编程逻辑宏单元,就是在一个芯片上有很多很多单元,并且有复杂的I/O单元互连,输入输出单元支持多种输入输出格式,并且有全铜层等长连接线。
我们知道,在半导体电路里面,它的信号走的路由是硅路由,只有走PN结才能走逻辑,但是有一个信号走硅路由却是非常麻烦,非常的不稳定,就是时钟信号。
时钟信号走了硅路由以后,时钟信号到达不同寄存器、不同触发器的端口,延迟不一致。
为了解决这个问题,在CPLD这个时代,就出现了全铜层的等长连接线。注意,全铜层只走时钟线。
其实,全铜层除了走时钟线之外,还有一根线要走,就是全局时钟域的线。
1114
所谓等长连接线,就是从指定的专用端口到每一个逻辑单元。
有多少个逻辑单元呢?有很多很多,数十K,数百K,甚至是以兆为单位,这么多个逻辑单元。
每个逻辑单元与端口的连接长度基本一致,称为等长连接线。
用此来调整从端口的输入端到每一个触发器输入端口的延时尽可能一致。
并且在那个年代,就已经知道了CPLD时间的预知,非常重要。因为速度越来越快,通过设计就知道了延迟的多少。
由此诞生后续的时序分析,在设计阶段就解决时序的问题。
lcytms
发表于 2016-10-9 09:34:27
本帖最后由 lcytms 于 2016-10-9 09:36 编辑
1115
现在我们看见的这个架构是现代FPGA的一个平面架构。
1116
(见PPT图示)
lcytms
发表于 2016-10-9 09:39:38
1117
四输入查找表为什么是四输入?
以后我们会讲到,四输入是优化出来的一个结果。
它没有用PLA,也没有用PAL,而是用LUT。
并且呢,它会有可编程的寄存器,有路由器来把2万个逻辑单元组织成所需要的电路。
lcytms
发表于 2016-10-9 09:42:46
1118
那么四输入查找表是如何来替代PLA和PAL的呢?这是我们的重点。
现在我们所看到的查找表的模式,替代PLA和PAL的基本思想,源于这么一个事实。
无论什么方式,这个电路只要能把真值表正确地实现,它就能实现真值表所定义的电路。
lcytms
发表于 2016-10-9 09:45:44
1119
查找表就是用一种硬件架构的多路器来实现的,就像我们现在看到的这个比较器,这个时候用多路器的形式。
电路里面的多路器是很常见的,多路器有很多输入端,通过它的选择端,产生对应的输出,这是它的结构。
查找表就是把这个多路器硬件化了,在FPGA芯片里面。我们用逻辑的输入端,多路器的S输入端做逻辑的输入端,用F的输出端做逻辑的输出端。
lcytms
发表于 2016-10-9 09:51:36
1120
然后把真值表的表项,基于RAM的值写到多路器的输入端上。
这样的话,你的输入是什么,输出就是什么。
如果我们把真值表的每一个输出的值都写在多路器的基于RAM的结构里面,双稳态电路里面。
S是逻辑的输入端,逻辑是什么,就对应真值表的这一行的输出。
由此呢,多路器的输出对应这一张真值表。
它既然能够真实的实现这张真值表,那么它就能实现对应真值表的电路。
基础的思想就是这样,一点也不复杂。
多路器是如何构成的,它的电路逻辑又是如何构成的,我们以后来讨论。
现在我们重点来讨论这样一个事实,就是为什么EDA会用LUT来替代PLA、PAL。
还是这句话,简化设计,使得2的n次方设计得到化简。
lcytms
发表于 2016-10-9 09:53:42
1121
我们来看看它是怎么做的。它既能够有效化简2的n次方问题,又能够使得算法变得比较简单。
对于我们之前所说的,就是现在PPT这个例子,A、B分别为2位的1:0,得到A>B的输出,会形成对应的多路器的结构。
lcytms
发表于 2016-10-9 10:00:40
1122
仍然需要16个单元,这样看来并没有得到化简的结果。
现在我们来看看另外一件事情,如果现在要输入数增加,A变成了3:0,B也变成了3:0,加起来是8根线,需要256个单元。
1123
如果用早期的方式,直接做级联的话,我们来看是怎么做的。
如果没有做任何化简的情况下做级联,我们仍然会用这样的方式。
(休息)
页:
1
2
3
[4]
5
6
7
8
9
10
11