查看: 4393|回复: 3

[分享] LPC804 PLU配置工具演示

[复制链接]
  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3900

    主题

    7513

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    39635
    最后登录
    2025-8-1
    发表于 2020-12-23 16:35:03 | 显示全部楼层 |阅读模式
    LPC804 PLU配置工具演示
    1引言
    LPC804具有一个可编程逻辑单元(PLU)模块。使用PLU创建运行的小型组合和/或顺序逻辑电路完全独立于Arm®Cortex®M0+ Core逻辑操作可以使用软件进行编程,并且恩智浦提供免费工具来帮助设计人员轻松实现电路设计并自动生成所需的寄存器设置。
    PLU功能列出如下:
    •来自I / O垫的多达6个输入
    •多达8个输出到I / O垫
    •多达26个查询表(LUT)
    •多达4个状态的触发器(FF)
    •来自外部I / O垫的时钟输入
    •通过I / O垫或开关矩阵反馈给MCU
    1.1查找表(LUT)
    PLU模块具有26个LUT,可实现多达五个可能输入的任何组合功能。
    输入包括:
    •其他LUT输出
    •状态FF输出
    •PLU I / O垫提供的所有输入
    21.png
    每个LUT均可使用LPC804寄存器进行编程,该寄存器实现了从5条输入线到1条输出线的逻辑映射,其中
    逻辑真值表。通过匹配输入值立即确定输出(允许传播延迟)

    表中与输入值相匹配的条目的行数。
    22.png
    1.2多路复用器

    PLU中的多路复用器用于建立单元之间的连接并选择正确的输出信号。
    23.png
    24.png
    1.3使用PLU的步骤
    PLU用作通用外围设备。如下配置PLU:
    1.启用时钟
    在SYSCON_SYSAHBCLKCTRLx寄存器中启用PLU和SWM时钟,并在SYSCON_PRESETCTRLx寄存器。
    2.分配引脚
    使用SWM_PINASSIGNFIXED0将PLU输入和输出分配给特定的引脚。一些引脚可以配置为两个输入和PLU的输出。例如,可以将PIO0_08分配给PLU_OUT1和PLU_INPUT0。
    3.创建逻辑网络
    执行以下操作以使用PLU实现逻辑设计:
    •考虑要使用的方法,直接执行LUT或使用原始逻辑门(或两者结合)方法)
    •如果不使用原始逻辑门,则对定制的LUT进行编程

    •编程将PLU输入和输出连接到LUT


    为帮助开发人员创建逻辑设计,恩智浦提供了PLU Config Tool,可帮助用户轻松创建逻辑网络。这个工具可以从PLU配置工具页面免费下载。以下内容说明了如何使用PLU设计工具。 MCUXpresso配置工具还支持设置PLU,辅助引脚连接和错误检查。
    2构建用户应用程序。使用PLU Config工具
    PLU Config工具可以在Windows 8或10上运行。
    使用PLU Config工具,用户可以:
    •通过直接的,基于LUT的和/或门级设计创建定制的LUT。
    •根据原理图设计自动生成LUT配置。
    •从Verilog实施设计。
    •生成C代码以自动设置PLU配置寄存器。
    用户仍然需要通过开关矩阵将PLU输入,输出,PLU clk_in连接到物理引脚。
    在本文档中,我们构建了两个示例电路来说明如何使用PLU Config工具,其中一个使用基于直接LUT的设计。另一个使用原理图设计方法。
    2.1演示所需的环境
    2.1.1硬件
    •LPCXpresso804评估板
    •USB线
    • 主机
    董事会返工:
    PLU输入引脚连接(使用电线连接):
    •输入1-CN3_7(GPIO0_8)至CN8_2(PLU_IN2,GPIO0_21)。
    •输入2-CN3_6(GPIO0_9)至CN3_10(PLU_IN3,GPIO0_20)。
    •输入3-CN5_1(GPIO0_10)至CN8_5(PLU_IN4,GPIO0_19)。
    PLU输出引脚连接(使用电线连接):
    •输出1-CN3_1(PLU_OUT0,GPIO0_14)至CN8_4(LED_RED,GPIO0_13)。
    2.1.2软件
    恩智浦提供了使用MCUXpresso IDE v11.2.1和SDK 2.8.0构建的示例,以补充本应用笔记。包含的演示代码集:
    •使用基于LUT的直接设计生成C代码以设置PLU配置寄存器
    •使用原理图设计生成C代码来设置PLU配置寄存器
    2.2基于LUT的直接设计演示
    该演示说明了如何在PLU配置工具中使用基于LUT的方法来创建示例LUT的设计,而没有具体说明。
    目的,仅出于说明目的,在输入和输出之间具有如下所示的逻辑。
    2.2.1输入和输出之间的逻辑

    对于此演示,我们为输入和输出之间的关系设置了设计,如表1所示。
    25.png
    2.2.2 PLU Config工具的使用
    1.打开PLU Config工具,然后为基于LUT的直接设计选择工作流程。放置输入端口1、2和3,然后放置输出1,图中的LUT0和LUT0绘制了输入,LUT和输出之间的连接,如图5所示。
    26.png
    2.完成连接后,在窗口左侧,有一个准备就绪的映射设置窗口。它指定从输入和输出到特定PLU资源的连接。通过选择将PLU输入和输出映射到LUT下拉菜单中所需的引脚。演示代码将PLU_INPUT2用于输入1,将PLU_INPUT3用于输入2,将PLU_INPUT4输入3表示PLU_OUTPUT0。这些关系如表1所示。
    27.png
    3.在配置工具的右面板中,有一个LUT设置表格,可用于直接设置LUT值,具体取决于到表1.单击表输出列以根据需要更改0或1值。
    28.png
    4.完成LUT设置后,在此窗口中按Sources选项卡。该工具会自动生成C代码,代码可用于设置PLU配置寄存器。
    29.png
    5.请参考示例项目lpcxpresso804_plu_AN_direct_LUT_design中的SDK PLU演示代码。示例代码LUT_TRUTH [0]的值为0x55555555。因为在此演示中,仅使用了三个输入,如表1所示,LUT_OUT0仅使用真值表中的八个值,仅需要前八个位来配置LUT,因此可以在输出代码中使用配置值0x00000055。在plu_combination.c文件的第30行中,根据生成的C代码修改配置的值。为了观看(仅红色LED),将LUT1(绿色)和LUT2(蓝色)配置为0xFF。
    30.png
    2.2.3 Direct_LUT设计演示结果
    1.按照董事会返工中的说明设置董事会。
    2.构建并运行提供的演示代码lpcxpresso804_plu_AN_direct_LUT_design.zip。
    3.在“ MCUXpresso IDE控制台”窗口中为输入1、2、3输入0或1,并观察红色LED的状态。结果是如表2所示。
    31.png
    2.3原理图设计演示
    基于LUT的方法与原理图方法之间的区别在于,在基于LUT的方法中,用户定义了LUT真值直接表。在原理图方法中,用户放置入,输出和逻辑原语门,例如AND,OR,XOR等,连接它们,并允许该工具将逻辑网络合成为LUT。该演示说明了如何使用PLU配置工具中的原理图方法来配置用于合成的所需LUT根据使用的逻辑单位。
    在原理图设计演示中,我们配置了没有实际用途的示例LUT,仅用于说明目的,它具有所需的逻辑输入和输出之间的关系如下。
    2.3.1输入和输出之间的逻辑
    对于此演示,我们在输入和输出之间设置逻辑,如表3所示。

    表3.基于LUT的设计演示的输入和输出之间的逻辑
    32.png
    33.png
    2.3.2 PLU Config工具的用法
    1.在PLU Config工具中打开一个新设计,以选择原理图设计选项。放置所需的输入1、2和3,以及输出1和2,在原理图中添加逻辑门AND1,OR1,并绘制输入,逻辑单元和输出,如图10所示。可以添加的门数是无限的。仅输入,输出和触发器具有数量有限。
    34.png
    2.完成原理图后,在工具的左侧面板上,将PLU输入和输出映射到特定的输入/输出资源,单击映射,然后从下拉菜单中选择。演示代码将PLU_INPUT2用于输入1,将PLU_INPUT3用于输入2,输入3的PLU_INPUT4,输出1的PLU_OUTPUT0,输出2的PLU_OUTPUT1,如表3所示。
    35.png
    3.在顶层菜单中,选择“ PLD”菜单,然后单击“完成”。 PLD是优化逻辑设计的工具,可将其映射到可用的LUT。它使用开源和第三方(UCLA)工具实现,并集成在PLU中配置工具安装。如果要使用这些工具的标准版本,请在“优化”向导中单击“下一步”。

    对话框出现。
    36.png
    4.完成完成操作后,单击工具右侧面板中的Sources选项卡,并观察C已生成的代码。现在,可以使用此C代码来设置PLU配置寄存器。
    37.png
    5.最后,我们可以在lpcxpresso804_plu_AN_Schematic_design项目中修改SDK PLU演示代码。 LUT4和该工具默认使用LUT5,而在演示中,我们使用LUT0和LUT1,因此C代码中的LUT4和LUT5可以在输出代码中更改为LUT0和LUT1。
    生成的C代码将LUT_TRUTH [4]的值设置为0x88888888,将LUT_TRUTH [5]的值设置为0xeeeeeeee。演示,仅使用两个输入。如表3所示,LUT_OUT0和LUT_OUT1仅在真值表中使用四个值,因此我们只需要前四位来配置LUT,配置值可以对LUT0和0x0000000E使用0x00000008用于LUT1。在plu_combination.c文件的第30和31行中,根据生成的C代码并按顺序修改配置的值要仅启用红色和绿色LED的更改,请将LUT2(蓝色)配置为0xFF。
    38.png
    2.3.3原理图设计演示结果
    生成并运行代码。在控制台窗口中为输入1、2或3输入0或1,并观察红色和绿色LED的状态,如下如表4所示。

    表4.原理图设计演示结果
    39.png
    3参考

    有关更多信息,请参阅培训视频。

    qiandao qiandao
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 22:42
  • 签到天数: 1854 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112649
    最后登录
    2025-8-1
    发表于 2020-12-23 19:32:44 | 显示全部楼层
    这个……不会是机械翻译的吧?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2025-5-29 09:38
  • 签到天数: 632 天

    连续签到: 1 天

    [LV.9]以坛为家II

    94

    主题

    1639

    帖子

    2

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4470

    热心会员

    最后登录
    2025-6-10
    发表于 2020-12-24 11:31:34 | 显示全部楼层
    厉害,独立于片上运行,不就相当于一个小型CPLD?ST的STM32H7貌似也有这功能~~~
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-1-21 08:52
  • 签到天数: 861 天

    连续签到: 1 天

    [LV.10]以坛为家III

    75

    主题

    2523

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5867
    最后登录
    2025-1-22
    发表于 2020-12-24 18:29:07 | 显示全部楼层
    mcu休眠的时候,可以用了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-2 14:54 , Processed in 0.088535 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表