前语
现场可编程门阵列(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所示。
2 3 RAM 图4 运算器原理图
RAM用来存储用户程序,它可以用FPGA中的LPM—RAM—DQ模块来完成。其间,wren是读写操控端,当wren=0时为读答应,这时在同步时钟clock的上升到来时沿将address所对应的地址中的内容给输出端q;当wren=1时为写答应,这时在同步时钟clock的上升沿到来时将data端的数据写入到address所指明的地址中,如图5所示。
3 仿真与剖析
为了测验指令的运转状况,本文在最终给出了一段依据Quartus II的程序仿真。
仿真时给出了10位输入数据indata=”1 1 10000101”,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具有很高的密度,可以集成很大的体系 ,因此极大地提高了体系的牢靠性。