现在一般把所有超过某一集成度(如1000门以上)的pld器件都称为cpld。 cpld由可编程逻辑的功能块围绕一个可编程互连矩阵构成。由固定长度的金属线实现逻辑单元之间的互连,并增加了i/o控制模块的数量和功能。可以把cpld的基本结构看成由可编程逻辑阵列(lab)、可编程i/o控制模块和可编程内部连线(pia)等三部分组成。
max7123的结构
1.可编程逻辑阵列(lab)
可编程逻辑阵列又若干个可编程逻辑宏单元(logic macro cell,lmc)组成, lmc内部主要包括与阵列、或阵列、可编程触发器和多路选择器等电路,能独立地配置为时序或组合工作方式。
与或阵列结构图
cpld中与、或门的表示方法
(1)乘积项共享结构
在cpld的宏单元中,如果输出表达式的与项较多,对应的或门输入端不够用时,可以借助可编程开关将同一单元(或其他单元)中的其他或门与之联合起来使用,或者在每个宏单元中提供未使用的乘积项给其他宏单元使用。
epm7128e乘积项扩展和并联扩展项的结构图
(2)多触发器结构
早期可编程器件的每个输出宏单元(olmc)只有一个触发器,而cpld的宏单元内通常含两个或两个以上的触发器,其中只有一个触发器与输出端相连,其余触发器的输出不与输出端相连,但可以通过相应的缓冲电路反馈到与阵列,从而与其他触发器一起构成较复杂的时序电路。这些不与输出端相连的内部触发器就称为“隐埋”触发器。这种结构可以不增加引脚数目,而增加其内部资源。
(3)异步时钟
早期可编程器件只能实现同步时序电路,在cpld器件中各触发器的时钟可以异步工作,有些器件中触发器的时钟还可以通过数据选择器或时钟网络进行选择。此外,olmc内触发器的异步清零和异步置位也可以用乘积项进行控制,因而使用更加灵活
2.可编程i/o单元(ioc)
cpld的i/o单元(input/output cell,ioc),是内部信号到i/o引脚的接口部分。根据器件和功能的不同,各种器件的结构也不相同。由于阵列型器件通常只有少数几个专用输入端,大部分端口均为i/o端,而且系统的输入信号通常需要锁存。因此i/o常作为一个独立单元来处理.
3.可编程内部连线(pia)
可编程内部连线的作用是在各逻辑宏单元之间以及逻辑宏单元和i/o单元之间提供互连网络。各逻辑宏单元通过可编程连线阵列接收来自输入端的信号,并将宏单元的信号送目的地。这种互连机制有很大的灵活性,它允许在不影响引脚分配的情况下改变内部的设计。