历史上的今天
今天是:2026年03月14日(星期六)
2023年03月14日 | 可创建小型组合与时序逻辑电路的PLU可编程逻辑单元
2023-03-14 来源:elecfans
在进行MCU开发时,有时需要用到一些简单的数字逻辑电路,LPC804与LPC55XX系列集成了PLU(Programmable Logic Unit),即可编程逻辑单元,可创建小型组合与时序逻辑电路,降低成本。
有些客户在使用PLU时,对PLU的概念以及使用方法有些许疑问,本文对此进行讲解。
1、PLU简介
LPC804与LPC55XX的PLU在使用上是完全相同的。包含了6个输入、8个输出、26个5输入查找表(LUT)、4个触发器(state Flip-Flops),其中26个PLU是相互连接的,输出与查找表、触发器之间采用多路复用,如下:

数字逻辑电路分为组合逻辑电路与时序逻辑电路,只有时序逻辑电路需要使用触发器。当使用触发器时,需要外部向PLU_CLKIN提供时钟输入,即使用组合逻辑电路无需外部提供时钟,使用时序逻辑电路时需要外部时钟。如下:

2、PLU配置
测试最简单的组合逻辑电路与时序逻辑电路,如下:

根据LPC55S69-EVK引出的引脚,如下:

配置引脚,如下:

配置时钟,PLU的CLKIN时钟设置为10K输入,如下:


配置PLU外设,如下:

配置PWM外设,设置PWM为50%占空比,10K频率,如下:

3、PLU Configuration tool 配置
NXP开发了PLU Configuration tool,此工具可以根据数字逻辑电路生成对应代码,去配置PLU及其真值表,下载链接可以在PLU外设配置界面复制,链接如下:
https://www.nxp.com/mcu-plu-config-tool
3.1 原理图配置
打开PLU配置工具,选择原理图设计,做一个简单的或运算与D触发器实验,如下:

点击菜单栏File-》Export-》PLU source file将其导出为C文件,将C文件的内容复制到main函数中,如下:
/* LUT0 (or01) */ PLU->LUT[0].INP_MUX[0] = 0x00000003; /* IN3 (IN3) */ PLU->LUT[0].INP_MUX[1] = 0x00000004; /* IN4 (IN4) */ PLU->LUT[0].INP_MUX[2] = 0x0000003F; /* default */ PLU->LUT[0].INP_MUX[3] = 0x0000003F; /* default */ PLU->LUT[0].INP_MUX[4] = 0x0000003F; /* default */ PLU->LUT_TRUTH[0] = 0xeeeeeeee; /* or01 (or01) STD 2 INPUT OR */ PLU->OUTPUT_MUX[5] = 0x0000001a; /* FF0 (FF01) -> OUT5 */
逻辑分析仪检测结果如下:

3.2 Verilog配置
打开PLU配置工具,选择导入verilog文件,将写好的.v文件导入,做一个简单的与运算实验,如下:

注意只有在verilog文件中声明posedge clock才会使用到触发器,而且不能使用negedge sys_rst_n用来复位。always语句中的posedge clock将由CLKIN引脚的时钟输入代替,所以clock引脚是不起作用的。将生成的代码复制到main函数中,用逻辑分析仪测试的结果如下:

史海拾趣
|
请问各位大侠 这个要怎么设置啊?可以让CE直接启动,DOS启动过程麻烦,而且看着让人恶心。 Setupdisk.144和Bootdisk.144这两个文件怎么提取啊? 谢谢各位了!… 查看全部问答> |
|
最近因为毕设需要,在移植Android1.5到urbetter s3c6410的板子上,需要使用板子上的USB来连接USB设备 内核编译选项添加了usb host side driver,全选了usb host controller drivers,但是依然用不了USB设备,请问需要怎么配置内核?需要给内核打补 ...… 查看全部问答> |
|
近来嵌入式挺火,于是大家都往这里挤。我想提醒大家的是,嵌入式马上也会成为如今的软件业。在你进来之前请先考虑清楚。但只要我们真的学精了一样东西,不管它将来变成什么样,哪怕最后只剩下一个人,那个人也一定就是你自己。 很多人以为搞嵌入 ...… 查看全部问答> |
|
板子上P1.0,P1.1两个口同时接到了触摸屏中断上,是这样设置的P1DIR=0x00;(输入模式),P1SEL=0x00;(普通IO口),P1IE=???????11;P1IES=???????1;P1OUT=??????00(电平置0), 请麻烦一下,怎么设置的P1IE,和P1IES,我原先理解的是该端口电平一旦置1就会 ...… 查看全部问答> |




