ADuC7026的可编程逻辑阵列PLA
0赞可编程逻辑阵列简称PLA,是一种可编程逻辑装置,它的与阵列(AND array)和或阵列(OR array)均为可编程,输出电路为不可组态.又叫做FPLA(field-programmable logic array),每一片ADuC702x都包含两个独立模块,每个模块有8个PLA元件,这两个模块中各个元件的输入、输出可交互连接使用。
每个PLA元件都是由下图所示的几个部分构成的。包括两个多路选择器Mux0和Mux1、一个两输入查询表和一个双稳态触发器。每个PLA元件的多路选择器Mux0和Mux1的输入可使用各个PLA元件的输出,有四种选择。通过配置查询表能产生任何基于这两路输入逻辑的输出功能。另外,每个多路选择器的输入、输出、查询表的逻辑功能以及是否需要旁路触发器都可以在PLAELMx寄存器中设定。

PLA元件结构图
对于PLA,每一个ADuC702x都有30个GPIO管脚有效。其中16个是输入引脚,14个是输出引脚。这些引脚在使用PLA前需要在GPxCON寄存器中进行配置。注意比较器的输出为16个输入引脚之一。
PLA通过一系列的用户寄存器进行配置。PLA的输出能被回传至内部中断系统,或作为ADC的CONVSTART信号,也可以传至一个寄存器或是16个输出引脚之一。
两个模块可以通过以下方式相互连接:
元件15(模块1)的输出可反馈至元件0(模块0)的多路选择器Mux0中的输入0。
元件7(模块0)的输出可反馈至元件8(模块1)的多路选择器Mux0中的输入0。
ADI公司同时提供了图形化开发工具PLATool用于开发逻辑可编程阵列,用该工具对PLA的各个元件中的多路选择器的输入、输出进行配置后,即可生成相应的C代码,C代码包含了相应的PLA寄存器的值,给开发工作带来了很大的便利。如下图:

利用PLA生成的C代码如下:

