8051单片机在FPGA上的实现

上传人:woxinch****an2018 文档编号:56901632 上传时间:2018-10-17 格式:PPT 页数:50 大小:1.32MB
返回 下载 相关 举报
8051单片机在FPGA上的实现_第1页
第1页 / 共50页
8051单片机在FPGA上的实现_第2页
第2页 / 共50页
8051单片机在FPGA上的实现_第3页
第3页 / 共50页
8051单片机在FPGA上的实现_第4页
第4页 / 共50页
8051单片机在FPGA上的实现_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《8051单片机在FPGA上的实现》由会员分享,可在线阅读,更多相关《8051单片机在FPGA上的实现(50页珍藏版)》请在金锄头文库上搜索。

1、8051单片机 在FPGA上的实现 报告人:张 杰,1,报告的主要内容,相关背景知识 设计的分析与实现 几点体会,2,相关背景知识,MCS51简介 VHDL硬件描述语言 FPGA器件,3,MCS51简介,MCS48:Intel公司1976年生产的一个8位单片机系列;MCS51:1980年推出的换代产品,包括8051、8031、8751、80C51BH、80C31BH等具体型号。,4,MCS-51 产品系列,引脚完全兼容,5,MCS-51 引脚说明,P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0,P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1

2、 P1.0,P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0,P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0,/PSENALE/EA/RST,AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0,A15 A14 A13 A12 A11 A10 A9 A8,RD WR T1 T0 INT1 INT0 TXD RXD,地址总线(低8位) 数据总线 双向I/o端口,地址总线(高8位) 双向I/O端口,双向I/o端口,双向I/o端口,6,8051结构框图,振荡器 及时序,CPU,ROM / EPROM,RAM,2X16位 定时器/

3、计数器,可编程全双工串行控制器,64KB总线扩展控制,控 制,并行口 数据/地址总线,串行通信,计数器,外部时钟源,可编程接口,外部中断,内部中断,7,存储空间分配,哈佛结构:程序与数据分开独立存储,程序存储器 (只读),数据存储器 (读/写),/EA=0 片外,/EA=1 片内,片外,片外,/ PSEN,/ RD,/ WR,0000,FFFF,FFFF,00,FF,0FFF,4KB =4096B,216,片内,片内,8,程序存储器,0000h0002H是引导程序的存放单元,上电复位后8051总是从0000H单元开始执行程序 0003H002AH被均匀地分为5段,用作5个中断服务程序的入口。中

4、断使CPU自动 跳转到这里,以进入各自相应的中断服务程序。例如:外部中断0的服务程序入口地址 = 0003h 低 4K bytes 程序存储器可以使用片内或片外ROM(通过/EA 引脚设置) /PSEN 信号只用于对外置ROM的存取,9,片内程序存储器,0000,0003,000B,0013,001B,0023,002B,8 BYTE,中断服务程序 入口地址,RESET,片内程序存储器:低 4KB地址空间,0FFF,程序空间,较长的中断服务程序放在002B以后的程序存储空间,利用跳转指令对其进行访问。,如果中断服务程序非常短(8字节以内),则可以将其放在此处,10,使用外部程序存储器的例子,读

5、出地址为 0421h 单元中字节(87h),高8位地址 : 04h,低8位地址 : 21h,读回数据87h,EA : 接高电平使用片内程序存储器 EA : 接低电平使用片外扩展程序存储器,P0 : 兼做数据、地址总线 P2 : 地址总线,11,片内数据存储器,12,8051使用外部扩展数据存储器,8 0 5 1,RAM,P3,P2,P1,P0,ALE,LATCH,Addr ( 064KB),WR /OE,RD WR,/CE,216 = 64KB,译码,13,8051指令系统,指令分类 指令格式 寻址方式,14,1. 数据传送指令2. 算术运算指令3. 逻辑运算指令4. 布尔操作(位操作)指令5

6、. 控制转移指令,8051指令按功能划分为5组,15,指令格式,无操作数的单字节指令: NOP,含一个操作地址的单字节指令: CLR C,含两个操作地址的单字节指令: MOV A, Rn,含一个操作地址的双字节指令: SJMP rel,含两个操作地址的三字节指令: LJMP addr16,16,指令的寻址方式,1. 立即数寻址 2. 直接寻址 3. 寄存器寻址 4. 变址寻址,5. 寄存器间接寻址 6. 相对寻址 7. 位寻址,17,VHDL硬件描述语言,概述基本语法,18,美国国防部在80年代初提出了VHSIC(Very High Speed Integrated Circuit)计划VHD

7、L已成为国际的硬件描述语言标准,VHDL简介,19,VHDL的特点,适用于复杂的、多层次的设计 与硬件独立 有丰富的软件支持 其设计便于向ASIC过渡 可读性好,20,VHDL数据对象(DataObjects),常量 变量 信号 文件(93版新增),21,-eqcomp4 is a four bit equality comparator Library IEEE; use IEEE.std_logic_1164.all;entity eqcomp4 is port(a, b:in std_logic_vector(3 downto 0);equal :out std_logic); end

8、eqcomp4;architecture dataflow of eqcomp4 is beginequal = 1 when a=b else 0; End dataflow;,VHDL 程序代码的例,eqcomp4.vhd,包,实体,构造体,文件名和实体名一致,每行以;结尾,关键字begin,关键字end后跟实体名,关键字end后跟构造体名,库,22,实体(Entity),描述设计功能的输入输出端口 在层次化设计时,端口为模块之间的 接口 在芯片级,端口代表具体芯片的管脚,23,Entity eqcomp4 is port(a, b: in std_logic_vector(3 downt

9、o 0);equal:out std_logic); end eqcomp4;,24,结构体(Architecture),描述实体的行为 结构体有三种描述方式 行为描述(behavioral) 数据流描述(dataflow) 结构化描述(structural),25,结构体行为描述,Architecture behavioral of eqcomp4 is begin comp: process (a,b)beginif a=b thenequal = 1; elseequal =0;end if;end process comp; end behavioral ;,高层次的功能描述,不必考虑

10、在电路中到底是怎样实现的。,26,结构体数据流描述,Architecture dataflow1 of eqcomp4 is beginequal = 1 when a=b else 0; end dataflow1;,Architecture dataflow2 of eqcomp4 is begin equal = not(a(0) xor b(0)and not(a(1) xor b(1)and not(a(2) xor b(2)and not(a(3) xor b(3); end dataflow2;,描述输入信号经过怎样的变换得到输出信号。 当a和b的宽度发生变化时,需要修改设计,当

11、宽度过大时,设计非常繁琐,27,结构体结构化描述,architecture struct of eqcomp4 is beginU0:xnor2 port map(a(0),b(0),x(0); U1:xnor2 port map(a(1),b(1),x(1);U2:xnor2 port map(a(2),b(2),x(2);U3:xnor2 port map(a(3),b(3),x(3);U4:and4 port map(x(0),x(1),x(2),x(3),equal); end struct;,类似于电路的网络表,将各器件通过语言的形式进行连接,与电路有一一对应的关系。 一般用于大规模

12、电路的层次化设计时。,28,三种描述方式的比较,29,VHDL与计算机语言的区别,运行的基础 计算机语言是在CPURAM构建的平台上运行 VHDL设计的结果是由具体的逻辑、触发器组成的数字电路 执行方式 计算机语言基本上以串行的方式执行 VHDL在总体上是以并行方式工作 验证方式 计算机语言主要关注于变量值的变化 VHDL要实现严格的时序逻辑关系,30,FPGA器件,FPGA现场可编程门阵列Field Programmable Gate Array 主要生产厂商XilinxAltera,31,FPGA开发板,32,开发板主要部件,FPGAXilinx Spartan-IIE XC2S200E-

13、6FT256C SPROMXilinx XC18V02VQ44C 50 MHz oscillator,33,器件标识,34,8051的设计与实现,设计流程 难点分析 设计验证,35,设计流程,确定指标 架构规划 时序规划 模块实现 设计验证,36,8051设计的主要指标,8位CPU 128 B的片内数据RAM 最多4 KB的片内程序ROM 4个8位双向I/O端口 指令集的部分实现,37,设计难点,模块的划分控制器的实现,38,模块划分原则,划分后最底层的逻辑块应适合用逻辑语言进行表达 相似的功能应设计成共享的基本模块 接口信号尽可能少 同层次的模块之间在资源和I/O分配上尽可能平衡,39,AL

14、U,串行控制器,RAM,定时/计数器,控 制 器,串行控制器,定时/计数器,ROM,RAM,核心模块,顶层模块,clk,reset,all_t0_i,all_t1_i,all_rxd_i,int0_i,int1_i,p0_i,p1_i,p2_i,p3_i,all_rxdwr_o,all_txd_o,all_rxd_o,p0_o,p1_o,p2_o,p3_o,8051模块示意图,40,顶层(TOP)模块划分,8051核心模块 内部RAM模块 内部ROM模块 外部RAM模块,41,8051核心模块划分,ALU模块 串行控制器模块 定时/计数器模块 控制器模块,42,8051模块分层结构,43,各模

15、块占用资源的统计数据,44,控制单元的功能,指令译码 时序控制 存储器控制,45,以MOV A,direct指令为例:,46,47,验证程序,MOV P1, 00HMOV P2, FFH s1: JNB P2.1, s1 s2: JB P2.1, s2:MOV P0 , FFHMOV A , P0MOV P1, P0MOV P2 ,FFH s3: JNB P2.1, s3 s4: JB P2.1, s4:MOV P1, P0,MOV P2, FFH s5: JNB P2.1, s5 s6: JB P2.1 , s6MOV P0 , FFHADD A, P0MOV P1 , ASJMP s1:,48,加法程序演示,操作过程: 1.系统复位 2.设置被加数09H 3.设置加数11H 4.得到执行结果1AH,49,几点体会,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号