8051单片机的FPGA设计与实现--毕业论文(5)

2019-04-16 18:30

ALU_OPC_ADD ALU_OPC_SUB ALU_OPC_MUL ALU_OPC_DIV ALU_OPC_DA 0001 0010 0011 0100 0101 表 4 运算代码所对应的操作

加法 减法 乘法 除法 BCD码调整 表4表示的是各个预算代码的对应的操作。本次设计我主要解决算术运算,不尝试逻辑运算。

假设scr_1=10(00001010B),scr_2=5(00000101B),由仿真图形可以看出,当op code=0001时,即做加法运算,得des 1=15(00001111B):当op code=0010时,即做减法运算,得des_1=5(00000101B);当op-code=0011时,即做乘法运算,得des_l=50(00110010B);当op_code=0100时,即做除法运算,得des_l=2(00000010B)。

图 6 加法及减法的仿真波形

图 7乘法及除法的仿真波形

图8减法及除法运算的仿真波形

五、存储器模块设计

本设计共为8051单片机设计了3种存储器,片内ROM、RAM和片外XRM。本设计中的片内ROM用来存储已经编写好的程序控制代码,只能读出数据不能写入数据。

①片内ROM

片内ROM的信号一片内ROM的信号如图9所示。其中:RST:复位标志,低有效,输入信号;CLK:时钟信号,输入信号;ADDRo~ADDRII:地址总线,11位,输入信号;RD:读控制位,高有效,输入信号;Do-D7:数据总线,8位,输入/输出信号。

RSTCLKADDR0ADDR11RD~片内ROM图 9 片内ROM的信号图

D0~D7

片内ROM主要VHDL语言描述: begin

if(rst=?1)then data<=CD_8;

elsif(clk’event and clk=‘1’、then if(rd=?1)then

data<=PROGRAM(conv_integer(addr)); else

data<2CD一8; end if;

end if;

当RST=1时,数据线成高阻态;当RST=0时,如果RD信号为1,则将ROM中对应与地址线输入信号的内存单元中的数据送入数据线。否则数据线呈高阻态。片内ROM仿真波形如图10所示。

图10片内ROM中的数据读取关系仿真波形

②片内RAM

本设计中的片内RAM的存储空间只有128字节,地址从00H~7FH。同时,设计

了21个特殊功能寄存器,并且定义好了它们的空间地址,详见表3.3。这里需要说明的是,MCS一51系列单片机原有的片内RAM的存储空间是256字节,地址从00H~FFH,这里为了简化设计,只设计了其一半的空间,但原有的特殊功能寄存器在本设计中完全保留。就是说,当地址线的最高位为0时,对片内RAM的对应地址进行读/写操作:当地址线的最高位为l时,如果该地址是某个特殊功能寄存器的地址,则进行其相应的操作,否则按地址线最高位为0时的操作。片内RAM的信号如图11所示,仿真图如图12所示。

SRTCLKADDR0~ADDR11RDWRFULLD0~D7P0.0~P0.7片内RAM图 11 片内RAM的信号图

P1.0~P1.7P2.0~P2.7P3.0~P3.7

其中:

RST:复位标志,低有效,输入信号: CLK:时钟信号,输入信号;

ADDR0~ADDR7:地址总线,8位,输入信号; RD:读控制位,高有效,输入信号: WR:写控制位,高有效,输入信号;

FULL:地址使能信号,判断地址线是否可以使用,低有效,输入信号; Do-D7:数据总线,8位,输入腧出信号;

P0.O~PO.7:并行接口,8位,输入/输出信号: P1.O~P1.7:并行接口,8位,输入/输出信号; P2.O~P2.7:并行接口,8位,输入/输出信号: P3.O~P3.7:并行接口,8位,输入/输出信号。

图12片内RAM中临时数据的传递的仿真波形

③片外XRM

本设计中的片外XRM的存储空间为2K字节,地址从000H~7FFH。它可以对其中的地址单元进行读/写操作,完成对数据的存/取功能。片外XRM的信号如图13所示,仿真图如图14

其中:

RST:复位标志,低有效,输入信号 CLK:时钟信号,输入信号;

ADDR0~ADDR1 5:地址总线,16位输入信号; RD:读控制位,高有效,输入信号: WR:写控制位,高有效,输入信号; D0-D7:数据总线,8位,输入/输出信号。

RSTCLKADDR0ADDRtsRDWR图13片外RAM的信号图

~片外RAXD0~D7

片外XRM的主要VHDL语言描述: architecthur BHV of i8051_xrm is type XRM_TYPE is array(0 to storage_size-1)of unsigned(7 down to 0); signal xrm:XRM_TYPE; begin

process(rst,clk) begin

if(rst=’1’)then

for i in 0 to storage_size-1 loop xrm(i)<=CD_8; end loop;

out data<=CD_8;

else if(clk event and clk=’1’)then

if(rd=’1’and conv_integer(addr)

else if(wr=’1’andconv_integer(addr)

Mm(conv.integer(addr)<=in data;

end if; end if; end process;

end BHV;

其中,storage_size=2048,即XRM的存储空间为2KB。

图14片外XRM的仿真波形


8051单片机的FPGA设计与实现--毕业论文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:星巴克辞职信

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: