版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑基于FPGA的嵌入式PLC微处理器设计-设计应用摘要:目前利用FPGA设计高性能的嵌入式处理器已经成为SOC设计的重要部分,对一种基于FPGA芯片的嵌入式PLC处理器进行了研究和设计,并采用了基于VHDL语言的自顶向下的模块化设计方法,顶层设计使用原理图输入。用QuartusII进行仿真,给出了主要仿真结果。实验表明,该处理器能准确且快速的响应嵌入式PLC的逻辑指令,且较传统的PLC处理器更灵活,集成度更高。
0前言
现场可编程门阵列(FPGA)是近几年来出现并被广泛应用的大规模集成电路器件,它的特点是直接面向用户,具有极大的灵活性和通用性使用方便,硬件测试和实现快捷,开发效率高,成本低,上市时间短,技术维护简单,工作可靠性好等。
硬件描述语言(VHDL)是用来描述硬件电路的功能,信号连接关系及时序关系的硬件编程语言,设计者可根据VHDL语言法则,对系统的逻辑进行行为描述,然后通过综合工具进行电路结构的综合、编译、优化,用仿真工具进行逻辑功能仿真和系统时序仿真,可在短时间内设计出高效、稳定、符合设计要求的大规模或超大规模的集成电路。
该处理器采用了TOP—DOWN的层次网络模块化设计方法,用VHDL描述了嵌入式PLC的CPU的主要逻辑功能,考虑到嵌入式CPU结构的复杂性和设计的可扩展性,在顶层设计中采用了原理图的方法,通过VHDL对每个单元模块进行了仿真和综合,然后将综合生成的各个模块连接起来,组成了一个整体
1系统设计
1.1系统的功能
该PLC主要是用来与DSP共同实现数控机床中的部分操作,它主要执行一些辅助的逻辑控制。它的主要任务如下:
(1)接收从DSP发送过来的指令字,并将其进行译码转换成相应的命令信号,从而执行相应的操作;(2)接收操作面板上的按键信号,并响应相应的操作;(3)给DSP发送应答信号以及状态信息;(4)将处理的结果输出到面板上以驱动相应的继电器。
1.2系统的组成部分
该系统的组成部分是由控制器、运算器以及I/0端口构成,如图1所示。
控制器:控制器是由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器等组成,它是发布命令的“决策机构”。运算器:运算器由算术逻辑单元、暂存器以及数据缓冲器等组成,它是数据的加工处理部件。
I/0端口该PLC的I/O点数为l0点输入和8点输出。每个端口由输入寄存器以及相应的端口控制部分组成。
2系统的FPGA实现
2.1控制器
控制器的形式主要有组合逻辑控制器和微程序控制器两种,与组合逻辑控制器相比较,微程序控制器具有规整性、灵活性、可维护性等一系列优点,在计算机的设计中使用比较普遍,本控制器的设计采用的也是微程序控制器。微程序控制的基本思想,就是仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里。当机器运行时,一条又一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,使相应部件执行所规定的操作。
微程序控制器主要由控制存储器(CM),微地址产生逻辑,微地址寄存器(uAR),微指令寄存器(ulR)等组成。
(1)机器指令与微程序。该处理器选取了PLC指令系统中的十条基本指令如表1所示,指令采用十位二进制编码格式。
第9~6位是四位指令的操作码字段;第5位是标志位,用来判断该指令有无操作数(1一有操作数,0一无操作数);第4~0位是操作数字段。
表中每条机器指令对应一段微程序,一段微程序包含若干条微指令,微程序的设计就具体地可落实到微指令的设计,微指令中的控制字段作为控制命令控制计算机的操作,控制字段给出的微命令应包含计算机操作的所有微命令,对微命令给出和表示的方法与所采用的编码方式有关,常用的微命令表示方法有直接表示法、编码表示法、和混合表示法,该设计采用的是将直接表示法和编码表示法混合使用的混合表示法。
该系统中的每条微指令为32位,其中低5位为下地址字段,直接送给微地址寄存器,第5~7位为测试字段,送到微地址产生逻辑电路里面以控制微地址的产生,其余位为用来产生各种微命令的控制字段。
(2)控制存储器。控制存储器中存放的是各指令所对应的微程序,它可以用FPGA中的LPM—ROM模块来实现,如图2所示。Clock为同步时钟信号,address为5位的地址值,q为32位的微指令,当clock上升沿到来时,rom就把address所对应的地址中的值输出给q。
(3)微地址产生逻辑。微地址产生逻辑主要是根据微指令中的测试位及其他相关的条件来控制微地址的产生,它是根据一定的逻辑功能用VHDL语言编写的,并且经过编译和综合后生成的模块,如图3所示。
其中,clk为同步时钟信号,rst为复位信号,q为输出的5位微地址值。其控制流程如下:
(1)系统启动时,给出一个rst=1的复位信号,q端便输出“00010”,为输入扫描微程序的入口地址;(2)对应的微指令就从控存中输出,然后该微指令中的5位下地址字段直接输入到din端,3位测试位输入到m端;(3)如果m=“000”,则q端输出的地址值直接加1,且返回(2)继续执行;否则,执行下一步;(4)如果m=“001”,则看i端输入的用户程序指令来判断是否需要取数操作,如果需要,则q端输出各个取数微程序的入口地址;如果不需要,则q端根据i的操作码输出相应指令的微程序入口地址,且返回(2)继续执行;否则,执行下一步;(5)如果m=“010”,q端直接输出din的地址值,且返回(2)继续执行;否则,执行下一步;(6)如果m=“011”,则q端根据i的操作码输出相应指令的微程序人口地址,且返回(2)继续执行。
2.2运算器
运算器是用来对输入的数据进行算术和逻辑运算的部件,该ALU具有三输入和两输出,d1和d2是参与逻辑运算的两个位数据,其中dl来自外部的取数,d2来自输出暂存器s,sel是指令的操作码。result是运算后的结果,输出后送给了暂存器S,q用来启动定时器,如图4所示。
23RAM图4运算器原理图
RAM用来存储用户程序,它可以用FPGA中的LPM—RAM—DQ模块来实现。其中,wren是读写控制端,当wren=0时为读允许,这时在同步时钟clock的上升到来时沿将address所对应的地址中的内容给输出端q;当wren=1时为写允许,这时在同步时钟clock的上升沿到来时将data端的数据写入到address所指明的地址中,如图5所示。
3仿真与分析
为了测试指令的运行情况,本文在给出了一段基于QuartusII的程序仿真。
仿真时给出了10位输入数据indata=”1110000101”,10.0~10.4分别对应着该数据的第0位~第4位,同样QO.o和Qo.1分别对应着输出端子的第。位和第1位。
仿真结果的图6中:T1,T2,T3,T4为4个时钟节拍信号,out0和out1分别对应着输出端子Qo.o和Qo.1,因为IO.o和IO.2为1,IO.3和IO.4都为o,因此程序运行的结果应该是QO.o和Q0.1都为1,并且从图6可以看出,仿真结果与此相同,程序运行正确,说明所设计的微处理器及其指令正确可靠。
4结束语
本文所设计的PLC微处理器具有很强的可修改性和可移植性,并且优化升级也很方便,可以根据特定的需要方便地增删指令和I/O端口的数量,这比传统的PLC具有更大的灵活性。另外,由于FPGA具有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北第二师范学院《篮球主项与实践Ⅰ》2022-2023学年第一学期期末试卷
- 普外专业 三甲医院临床试验机构GCP 2022版004试验协议、合同管理制度
- 湖北大学知行学院《食品机械与设备》2023-2024学年第一学期期末试卷
- 2024大包工程合同内容填写说明
- 2024广告设计与制作合同(门头)
- 宫颈癌放射性肠炎护理查房
- 《SVC基本原理》课件
- 2024建筑工程劳务分包的合同样本(合同版本)
- 2024山东大学横向科研外协合同审批表
- 呼伦贝尔学院《综合英语Ⅱ》2021-2022学年第一学期期末试卷
- 智能治理:提高政府决策的准确性和效率
- 2024年滴眼剂市场份额分析:全球滴眼剂市场销售额达到了4.89亿美元
- 2023-2024学年广东省广州市白云区九年级(上)期末语文试卷
- 2024-2030年中国铁皮石斛行业市场竞争策略及投资价值研究报告
- 新生儿呼吸系统常见疾病的特点及护理课件
- 学术规范与论文写作智慧树知到答案2024年浙江工业大学
- 2024年典型事故案例警示教育手册15例
- 《非计划性拔管》课件
- 酒店企业员工消防防火安全知识培训
- 投标流程及管理制度
- 章质谱法剖析PPT课件
评论
0/150
提交评论