780 likes | 1.03k Views
版权所有,禁止未经授权的商业使用行为. 何宾 Tel : 13911127536 email:hebin@mail.buct.edu.cn. 北京中教仪装备技术有限公司. 培训内容. 北京中教仪装备技术有限公司介绍 Xilinx 公司介绍 Xilinx 公司产品概述 Xilinx 公司软件平台介绍 Xilinx 公司 ISE10.1 软件及简单设计流程介绍 PicoBlaze8 位嵌入式微控制器原理 EXCD-1 硬件开发平台介绍 基于 ISE10.1 和 PicoBlaze8 位微控制器的设计实现 Xilinx 片上可编程系统原理介绍
E N D
版权所有,禁止未经授权的商业使用行为 何宾 Tel:13911127536 email:hebin@mail.buct.edu.cn 北京中教仪装备技术有限公司
培训内容 北京中教仪装备技术有限公司介绍 Xilinx公司介绍 Xilinx公司产品概述 Xilinx公司软件平台介绍 Xilinx公司ISE10.1软件及简单设计流程介绍 PicoBlaze8位嵌入式微控制器原理 EXCD-1硬件开发平台介绍 基于ISE10.1和PicoBlaze8位微控制器的设计实现 Xilinx片上可编程系统原理介绍 基于EDK10.1和MicroBlaze32位软核处理器的设计实现
PicoBlaze的8位微控制器概述--Xilinx片上可编程系统解决方案PicoBlaze的8位微控制器概述--Xilinx片上可编程系统解决方案 Xilinx提供了基于以下嵌入式处理器的片上可编程 系统解决方案。 PicoBlaze8位嵌入式软核微控制器 PowerPC405/PowerPC440嵌入式硬核处理器 MicroBlaze32位嵌入式软核处理器 ARM嵌入式硬核处理器(未来,预计今年底)
PicoBlaze的8位微控制器概述--主要特点 Xilinx的 PicoBlaze是一个8位RISC(精简指令集计算 机 )的微控制器, 已经被专门设计和优化,用于Xilinx 的Virtex和Spartan系列的FPGA和CoolRunner-II CPLD器 件。 PicoBlaze比现有的8位的微控制器消耗的资源更少, 并且提供了免费的、源码级的VHDL代码。
PicoBlaze的简单处理解决方案--主要优点 1.免费的PicroBlaze核 所得到的PicoBlaze微控制器是一个可综合的VHDL 源代码。所以,该核可以移植到Xilinx的未来的产品 上。 2. 容易使用的汇编器 PicoBlaze的汇编器是一个简单的DOS程序,该汇编器 编译程序时间小于3秒,产生VHDL,Verilog和M(用于 System Generator)文件。其它的开发工具包括图形化的集 成开发环境IDE,图形化的指令集仿真器ISS,VHDL源代码 和仿真模型。
PicoBlaze的简单处理解决方案--主要优点 3. 高性能 PicoBlaze每秒传递44-100 million指令(取决于 FPGA的类型和速度等级),比商业上可用的微控制器快 好几倍。 4. 较小的逻辑消耗 PicoBlaze消耗192个逻辑单元,比如大约消耗 Spartan-3 XC3S200器件5%的逻辑单元。由于只占用很小 部分的FPGA和CPLD资源,工程师可以使用多个PicoBlaze 用于处理更长的任务或者保持任务的隔离和可预测。
PicoBlaze的简单处理解决方案--主要优点 5. 100%嵌入式能力 PicoBlaze核嵌在FPGA或CPLD内部,不需要外部的资 源。通过将额外的逻辑和微控制器的输入和输入端口连 接后,可扩展其基本功能。
PicoBlaze的一个实例--KCPSM3结构原理图(可编程的状态机)PicoBlaze的一个实例--KCPSM3结构原理图(可编程的状态机)
PicoBlaze的一个实例--KCPSM3内部详细结构 程序空间 KCPSM3支持程序的指令可以到1024(使用一个 BRAM),多个KCPSM3处理器可以用于处理不同的任 务。 16个通用寄存器 16个8位的通用寄存器,标号s0-sF(在汇编器中可能 被重新命名)。所有的操作所使用的寄存器是非常灵活 的(没有专用的或优先级)。在KCPSM3中没有累加器, 任何一个寄存器都可作累加器。
PicoBlaze的一个实例--KCPSM3内部详细结构 ALU 提供很多简单的操作,所有操作使用一个来自sX的 操作数。结果返回到该寄存器。对需要两个操作数的操 作,第二个操作数来自sY寄存器或8位常数kk。 ADD和SUB操作可以包含进位标志作为一个输入 (ADDCY和SUBCY),用于支持宽度大于8的算术操作; LOAD,AND,OR,XOR提供了位操作和测试功能,支 持SHIFT和ROTATE操作; COMPARE和TEST指令可以测试寄存器的内容(不 改变其内容),确定奇偶性PARITY;
PicoBlaze的一个实例--KCPSM3内部详细结构 标志和程序流控制 ALU的运算结果影响ZERO和CARRY标志位。CARRY 也可以用于捕获在移位和旋转指令操作时,位移出寄存 器的操作。在TEST指令,CARRY标志也用来标识,是 否8位的暂时结果是ODD PARITY(奇校验)。 这个标志也用来确定程序的执行序列。JUMP跳转到 程序空间的绝对地址,CALL和RETURN提供了自程序 功能(代码段)。堆栈支持31个嵌套的子程序级。
PicoBlaze的一个实例--KCPSM3内部详细结构 复位 处理器返回到初始状态。程序从000开始,禁止中断, 状态标志和CALL/RETURN栈复位。不影响寄存器内容。 输入/输出 支持最多256个输入和256个输出端口。使用PORT_ID 访问8位的地址端口。端口值可以在程序中用用绝对值pp 来指定,或者用16寄存器的任何一个((sY))来指定。
PicoBlaze的一个实例--KCPSM3内部详细结构 INPUT操作,将端口值送到任何一个寄存器中,输 入操作用一个READ_STROBE脉冲标识(不总是需的), 但可以指示数据被处理器接收到。 OUTPUT操作,将任何一个寄存器送到端口值中,输 出操作用一个WRITE_STROBE脉冲标识,该信号被接口 逻辑用来保证有效的数据被送到外部的系统。典型的, WRITE_STROBE用于时钟的使能或写使能。
PicoBlaze的一个实例--KCPSM3内部详细结构 内嵌存储器 有一个内部的64字节的通用存储器,可以使用STORE 指令将16个寄存器中的任意一个寄存器的内容写入64个地 址位置中,FETCH指令将存储器中任一个位置的内容写入 到16个寄存器中的任意一个寄存器中。这允许在处理器边 界内可以保持有更多的变量,也用于保留所有的I/O空间 用于输入和输出信号。
PicoBlaze的一个实例--KCPSM3内部详细结构 处理器提供单独的INTERRUPT信号,如果需要,可以 使用一个简单的逻辑连接多个信号。默认禁止中断,在程 序中可以使能/禁止中断。活动的中断,使KCPSM3初始 化“CALL 3FF”(一个子程序调用最后的存储器位置),这里定义了用户定义的跳转向量到中断服务程序ISR。 INTERRUPT_ACK输出产生脉冲。ZERO和CARRY自 动的被保护,禁止其它中断。“RETURNI”指令保证ISR的结束,回复状态标志,并说明使能/禁止未来的中断。 中断
PicoBlaze的一个实例--KCPSM3与程序ROM连接VHDL描述 注: 程序ROM的名字取决于用户程序的名字,比如如果 程序文件叫“phone.psm”,汇编器将产生程序ROM的定义 文件叫“phone.vhd”。
PicoBlaze指令集(需要2个周期)--程序控制组 JUMP aaa JUMP Z,aaa JUMP NZ,aaa JUMP C,aaa JUMP NC,aaa RETURN RETURN Z RETURN NZ RETURN C RETURN NC CALL aaa CALL Z,aaa CALL NZ,aaa CALL C,aaa CALL NC,aaa
PicoBlaze指令集(需要2个周期)--逻辑组 --算术运算组 ADD sX,kk ADDCY sX,kk SUB sX,kk SUBCY sX,kk COMPARE sX,kk ADD sX,sY ADDCY sX,sY SUB sX,sY SUBCY sX,Sy COMPARE sX,sY LOAD sX,kk AND sX,kk OR sX,kk XOR sX,kk TEST sX,kk LOAD sX,sY AND sX,sY OR sX,sY XOR sX,sY TEST sX,sY
PicoBlaze指令集(需要2个周期)--中断组 --存储组 RETURNI ENABLE RETURNI DISABLE ENABLE INTERRUPT DISABLE INTERRUPT STORE sX,ss STORE sX,(sY) FETCH sX,ss FETCH sX,(sY)
PicoBlaze指令集(需要2个周期)--移位和旋转组 --输入/输出组 SR0 sX SR1 sX SRX sX SRA sX RR sX SL0 sX SL1 sX SLX sX SLA sX RL sX INPUT sX,pp INPUT sX,(sY) OUTPUT sX,pp OUTPUT sX,(sY)
KCPSM3 汇编器--原理及操作 KCPSM3汇编器提供一个简单的DOS可执行文件和 三个模版文件,将KCPSM3.EXE, ROM_form.vhd,ROM _form.v和ROM_form.coe文件复制到工作目录下。 程序可用标准的Notepad和Wordpad工具编写,文件扩展名为.psm(8字符名字限制)。 打开一个DOS对话框,并定位到当前的工作路径下。然后运行汇编器“kcpsm3<filename>[.psm]”来汇编所编写的程序(运行速度很快)。
KCPSM3 汇编器--错误处理 当遇到错误时,汇编器将停下来。将显示一个短消 息来帮助判断引起错误的原因。汇编器将显示遇到问题 的行。设计者然后修改错误重新运行汇编器程序。
KCPSM3 汇编器--文件组成 KCPSM3汇编器使用4个输入文件,产生15个输出文 件。下面给出详细的说明。
KCPSM3 汇编器--ROM_form.vhd 该文件提供模版,该模版用于汇编器产生的VHDL文 件,和汇编器一起提供,在工作路径下。 该文件为Spartan-3,Virtex-II,Virtex-II Pro的单端口 BRAM配置为ROM.下面给出该文件的模版。
KCPSM3 汇编器--ROM_form.vhd 汇编器读取ROM_form.vhd模版,将其信息复制到输 出文件<filename>.vhd。不进行其语法的检查。 该文件包含一些特殊的文本串,包含{}。 Attribute AttributeName of ObjectList : ObjectType is AttributeValue; 汇编器使用{begin template}来标识VHDL定义开始 的地方,然后理解和使用合适的信息来替换所有其它特殊 的串。{name}被输入程序 “.psm”的名字替换。
KCPSM3 汇编器--ROM_form.coe 该文件为汇编器生成的系数文件的提供模版,该文 件和汇编程序一起提供,并且同在一个工作目录下。 ROM_form.coe模版文件为Spartan-3,Virtex-II和其它 FPGA定义了一个双端口存储器。 汇编器读取ROM_form.coe模版,将其信息复制到输 出文件<filename>.vhd。不进行其语法的检查。 {name}被输入程序 “.psm”的名字替换。 文件的最后一行关键字 memory_initialization_vector= 将要被核生成器标识后面的数据值。汇编器将添加 1024个所要求的值。
KCPSM3 汇编器--<Filename>.fmt文件 该文件是对 原始的.psm文件 的格式化,使源 文件看上去更好 看。下面给出该 文件。
KCPSM3 汇编器--<Filename>.log文件 该文件提供了汇编器执行过程中的详细信息。
KCPSM3 汇编器--constant.txt文件和labels.txt文件 这两个文件提供了行标号的列表和它相关的地址, 以及常数的列表和值。
KCPSM3 汇编器--pass.dat文件 pass.dat文件是汇编器的内 部文件,用来表示汇编过程中 的中间步骤。这些文件可不去 理会,但能帮助识别汇编器如 何理解(翻译)程序的。当开 始汇编时,这些文件自动删 除。