欢迎来到天天文库
浏览记录
ID:12496609
大小:177.50 KB
页数:14页
时间:2018-07-17
《eda课程设计 alu算术逻辑运算单元的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、摘要本文讨论了基于FPGA芯片的四位简单微处理器的设计方法。依据微处理器的基本原理,以XILINUXISE9.2I软件平台作为开发工具,它与AMD公司生产的四位微处理器AM2901指令兼容,主要完成微处理器硬件系统设计和指令系统设计两方面的任务,运用VHDL硬件编程语言,使微处理器能够实现两个四位二进制加、减算术运算和与或等逻辑运算功能。微处理器系统包括运算器、控制器、存储器以及其他必要的逻辑部件。关键词:FPGA,VHDL,微处理器。14目录一设计任务…………………………………………………………
2、……………3二总体设计………………………………………………………………………3三详细设计………………………………………………………………………31、ALU输入选择器的设计……………………………………………………32、ALU算术逻辑运算单元的设计……………………………………………43、存储器RAM的设计…………………………………………………………64、寄存器qreg1的设计………………………………………………………75、输出选择器的设计…………………………………………………………86、顶层模块的设计
3、……………………………………………………………9四结果分析………………………………………………………………………11五结束语…………………………………………………………………………13六参考文献………………………………………………………………………1314一、设计任务本设计为一个基于VHDL语言的9位简单指令,微处理器的设计流程,包括微处理器的ALU操作数选择、ALU功能选择、RAM输入输出及移位操作,最后用顶层设计进行元件例化。通过编译、仿真检查程序,最后在FPGA芯片上实现下载。二、总体设计系
4、统的主要分五个模块。模块间的关系如下图:ALU输入选择设计ALU功能选择设计RAM输入输出及移位操作设计寄存器输入输出及移位操作设计系统本身输入输出及移位操作三、详细设计微处理器的指令系统规定:基本指令字长为9位,指令的每一位从高到低用I8、I7、I6、I5、I4、I3、I2、I1、I0表示。1、ALU输入选择器的设计指令的编码方式如图指令码输入选择I2I1I0rs000aq001ab0100q0110b1000a101da110dq111d0指令码ALU输入选择其中,ALU输入选择,可以对ALU
5、中运算的操作数进行选择,即r和s14,选择信号a、b、d、q、0到ALU。ALU输入选择器是由微处理器指令中的源操作数所控制的两个多路选择器构成的。输出信号r在a、d和0之间选择,s信号在a、b、q和0之间选择。其VHDL源程序如下:libraryieee;useieee.std_logic_1164.all;useieee.numeric_std.all;entityalumuxisport(d,q,a,b:inunsigned(3downto0);aluin_ctrl:instd_logic_
6、vector(2downto0);--输入选择控制r,s:bufferunsigned(3downto0));endalumux;architecturearc1ofalumuxisbeginwithaluin_ctrlselectr<=awhen"000"
7、"001","0000"when"010"
8、"011"
9、"100",dwhenothers;withaluin_ctrlselects<=qwhen"000"
10、"010"
11、"110",bwhen"001"
12、"011",awhen"100"
13、"
14、101","0000"whenothers;endarc1;2、ALU算术逻辑运算单元的设计ALU算术运算逻辑单元,可以对两个4位操作数执行3种算术运算和5中逻辑运算。输入信号为4位r信号,4位s信号以及进位信号cin,输出信号为f[3..0]、进位输出信号c4、进位生成信号g_bar、进位传输信号p_bar和溢出标志ovr。ALU的输出信号f[3..0]还反馈到寄存器和存储器。指令码ALU单元选择I5I4I3000r+s001s-r010r-s011rors100rands101(notr)an
15、ds110rxors111not(rxors)ALU功能选择ALU算术逻辑运算单元的主要功能是根据指令码的要求,分别对两个操作执行算术逻辑运算单元的VHDL程序实现如下:14libraryieee;useieee.std_logic_1164.all;useieee.numeric_std.all;useieee.std_logic_unsigned.all;entityaluisport(r,s:inunsigned(3downto0);alu_ctrl:instd_logic_
此文档下载收益归作者所有