EDA课程设计 ALU算术逻辑运算单元的设计

上传人:无*** 文档编号:77968670 上传时间:2022-04-20 格式:DOC 页数:14 大小:177.50KB
收藏 版权申诉 举报 下载
EDA课程设计 ALU算术逻辑运算单元的设计_第1页
第1页 / 共14页
EDA课程设计 ALU算术逻辑运算单元的设计_第2页
第2页 / 共14页
EDA课程设计 ALU算术逻辑运算单元的设计_第3页
第3页 / 共14页
资源描述:

《EDA课程设计 ALU算术逻辑运算单元的设计》由会员分享,可在线阅读,更多相关《EDA课程设计 ALU算术逻辑运算单元的设计(14页珍藏版)》请在装配图网上搜索。

1、摘要本文讨论了基于FPGA 芯片的四位简单微处理器的设计方法。依据微处理器的基本原理,以XILINUX ISE 9.2I软件平台作为开发工具,它与AMD公司生产的四位微处理器AM2901指令兼容,主要完成微处理器硬件系统设计和指令系统设计两方面的任务,运用VHDL硬件编程语言,使微处理器能够实现两个四位二进制加、减算术运算和与或等逻辑运算功能。微处理器系统包括运算器、控制器、存储器以及其他必要的逻辑部件。关键词:FPGA,VHDL,微处理器。 目录一 设计任务3二 总体设计3三 详细设计3 1、ALU输入选择器的设计32、ALU算术逻辑运算单元的设计43、存储器RAM的设计64、寄存器qreg

2、1的设计75、输出选择器的设计86、顶层模块的设计9四 结果分析11五 结束语13六 参考文献13一、设计任务本设计为一个基于VHDL语言的9位简单指令,微处理器的设计流程,包括微处理器的ALU操作数选择、ALU功能选择、RAM输入输出及移位操作,最后用顶层设计进行元件例化。通过编译、仿真检查程序,最后在FPGA芯片上实现下载。二、总体设计系统的主要分五个模块。模块间的关系如下图:ALU输入选择设计ALU功能选择设计RAM输入输出及移位操作设计寄存器输入输出及移位操作设计系统本身输入输出及移位操作三、详细设计微处理器的指令系统规定:基本指令字长为9位,指令的每一位从高到低用I8、I7、I6、I

3、5、I4、I3、I2、I1、I0表示。1、ALU输入选择器的设计指令的编码方式如图指令码 输入选择 I2 I1 I0 r s0 0 0 a q0 0 1 a b0 1 0 0 q0 1 1 0 b1 0 0 0 a1 0 1 d a1 1 0 d q1 1 1 d 0 指令码 ALU输入选择 其中,ALU输入选择,可以对ALU中运算的操作数进行选择,即r和s,选择信号a、b、d、q、0到ALU。ALU输入选择器是由微处理器指令中的源操作数所控制的两个多路选择器构成的。输出信号r在a、d和0之间选择,s信号在a、b、q和0之间选择。其VHDL源程序如下:library ieee;use ieee

4、.std_logic_1164.all;use ieee.numeric_std.all;entity alumux is port ( d,q,a,b : in unsigned(3 downto 0); aluin_ctrl:in std_logic_vector(2 downto 0); -输入选择控制 r,s:buffer unsigned(3 downto 0);end alumux;architecture arc1 of alumux isbegin with aluin_ctrl select r=a when 000|001, 0000when 010|011|100, d

5、when others; with aluin_ctrl select s=q when 000|010|110, b when 001|011, a when 100|101, 0000 when others;end arc1;2、ALU算术逻辑运算单元的设计 ALU算术运算逻辑单元,可以对两个4位操作数执行3种算术运算和5中逻辑运算。输入信号为4位r信号,4位s信号以及进位信号cin,输出信号为f3.0、进位输出信号c4、进位生成信号g_bar、进位传输信号p_bar和溢出标志ovr。ALU的输出信号f3.0还反馈到寄存器和存储器。指令码 ALU单元选择I5 I4 I3 0 0 0 r+

6、s0 0 1 s-r0 1 0 r-s0 1 1 r or s1 0 0 r and s1 0 1 (not r) and s1 1 0 r xor s1 1 1 not(r xor s) ALU功能选择ALU算术逻辑运算单元的主要功能是根据指令码的要求,分别对两个操作执行算术逻辑运算单元的VHDL程序实现如下:library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;use ieee.std_logic_unsigned.all;entity alu is port ( r,s : in unsigned(3 down

7、to 0); alu_ctrl:in std_logic_vector(2 downto 0); -功能选择控制 cin:in std_logic; -进位输入 f:buffer unsigned(3 downto 0); -结果输出 g_bar,p_bar:buffer std_logic; -进位生成标志和进位传输标志 c4:buffer std_logic; -进位输出 ovr:buffer std_logic);end alu;architecture rt1 of alu issignal r1,s1,f1:unsigned(4 downto 0);begin r1=0&r; s1

8、if cin=0 then f1=r1+s1; -r+s else f1 if cin=0 then f1=s1+not(r1); -s-r else f1 if cin=0 then f1=r1+not(s1); -r-s else f1 f1 f1 f1 f1 f1 null;end case;end process;f=f1(3 downto 0);c4=f1(4);g_bar=not( (r(3)and s(3) or (r(3)or s(3)and (r(2)and s(2) or (r(3)or s(3)and (r(2)or s(2)and (r(1)and s(1) or (r

9、(3)or s(3)and (r(2)or s(2)and (r(1)and s(1)and (r(0)and s(0);p_bar=not( (r(3)or s(3)and(r(2)or s(2)and(r(1)and s(1)and(r(0)and s(0); ovr=1when (f1(4)/=f1(3)else 0;end rt1;3、存储器RAM的设计存储器RAM用于读写数据的双端口存储器。4位aaddr信号和baddr信号对16位存储器进行寻址,决定了输出线a、b的读出数据。指令码 RAM操作I8 I7 I60 0 0 0 0 1 0 1 0 f3.00 1 1 f3.01 0 0

10、 ram3 & f3.1 1 0 1 ram3 & f3.1 1 1 0 f2.0 & ram01 1 1 f2.0 & ram0 RAM输入输出及移位操作存储器操作包括在给定的地址信号作用下,实现数据的输入和输出。在本模块中,数据的数入有3种不同的方式,由指令码I8.6所示的方式进行控制。其VHDL源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.numeric_std.all;entity ram1 is port ( clk : in std_logic;aadd

11、r,baddr,f:in unsigned(3 downto 0); -a地址、b地址 f:in unsigned(3 downto 0) -输入数据 ram1_ctrl:in std_logic_vector(2 downto 0);-RAM操作控制 ram0,ram3:in std_logic; a,b:buffer unsigned(3 downto 0); -a、b通道end ram1;architecture rt1 of ram1 is-16位地址type ram_type is array(15 downto 0)of unsigned(3 downto 0); signal a

12、b_data:ram_type; -存储区值signal ctrl:std_logic_vector(1 downto 0); beginctrlab_data(to_integer(baddr)ab_data(to_integer(baddr)ab_data(to_integer(baddr)ab_data(to_integer(baddr)=ab_data(to_integer(baddr); end case;end if;end process;a=ab_data(to_integer(aaddr); -a通道bq_dataq_dataq_dataq_data=q_data; -保持

13、end case; q=q_data; end if;end process;q3=f(3)when (q_ctrl=110 or q_ctrl=111)else Z;q0=f(0)when (q_ctrl=100 or q_ctrl=101)else Z;end rt1;5、输出选择器设计指令码 输出I8 I7 I60 0 0 f0 0 1 f0 1 0 a0 1 1 f1 0 0 f1 0 1 f 1 1 0 f1 1 1 f 系统本身输入输出及移位操作输出选择器选择将a信号或f信号输出,用于选择ALU输出或者寄存器信号作为对外输出信号。输出选择模块主要是经多路选择器将输出信号传送到输出总

14、线y3.0,输出信号的选择受指令码控制,输出总线构成三态结构,受控制端OE的控制。其VHDL源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.numeric_std.all;entity outmux is port ( a,f : in unsigned(3 downto 0); mux_ctrl:in std_logic_vector(2 downto 0); -输出控制 oe:in std_logic; -三态控制 y:buffer unsigned(3 down

15、to 0); -输出end outmux;architecture arc1 of outmux issignal y_data:unsigned(3 downto 0);beginy_data=a when mux_ctrl=010 else f;yclk,aaddr=aaddr,baddr=baddr,f=ff,ram1_ctrl=i(8 downto 6),ram0=ram0,ram3=ram3,a=aa,b=bb);-寄存器的端口映射u2:qreg1 port map(clk=clk,f=ff,q_ctrl=i(8 downto 6),q0=q0,q3=q3,q=qq);-输入选择器的

16、端口映射u3:alumux port map(d=d,q=qq,a=aa,b=bb,aluin_ctrl=i(2 downto 0),r=rr,s=ss);-ALU算术逻辑运算单元的端口映射u4:alu port map(r=rr,s=ss,alu_ctrl=i(5 downto 3),cin=cin,f=ff,g_bar=g_bar,c4=c4,ovr=ovr);-输出选择器的端口映射u5:outmux port map(a=qq,f=ff,mux_ctrl=i(8 downto 6),oe=oe,y=y);end rt1;四、结果分析1、ALU输入选择器 由运行结果可知,当指令为0时,输入

17、选择信号r为a,输入选择信号s为q,当指令为3时,输入选择信号r为0,输入选择信号s为b。图中当指令码alum_ctrl为0,则输入选择信号r为输入a即2,输入选择信号s为q即1。当指令码alum_ctrl为3,则输入选择信号r为0,输入选择信号s为b即8。2、ALU算术逻辑运算单元 由运行结果可知,当指令码alu_ctrl为0时,执行加法运算,即r+s,如果进位输入为1,则再加上进位,即r+s+1,图中2加4加进位1得7,相加之后没有进位,进位输出c4即为0,溢出标志ovr为0,当指令码alu_ctrl为4时,执行与运算,即r and s,图中5与d进行与运算,结果为5。3、存储器RAM由运

18、行结果可知,当输入指令ram1_ctrl时,地址选择信号baddr选择ram存储位置,存储的值由a通道或b通道输出,a通道输出的值由地址选择信号aaddr决定,通道输出的值由地址选择信号baddr决定,图中指令ram1_ctrl为2时,将计算结果1存储在地址baddr为0的存储区内,a通道输出地址aaddr为0的存储区值,即输出1,b通道输出地址aaddr为0的存储区值,即输出1。4、寄存器qreg1 由运行结果可知,指令q_ctrl有四种操作包括接收、左移、右移、保持,图中当指令q_ctrl为0时,执行接受输入数据f,当指令q_ctrl为7时,执行保持数据f,q3被赋值,当指令q_ctrl为

19、4时,实现左移,q0被赋值。5、输出选择器 由运行结果可知,当oe为高电平时,输出端y输出高阻态,否则输出端由输出控制指令mux_ctrl决定,当mux_qtrl为2时,输出为a信号,当mux_ctrl为7或0时,输出为f信号。6、总体仿真 由运行结果可知,输入端d输入数据,经ALU算术逻辑单元运算后得到的结果送入存储器和寄存器,最后经输出选择器选择输出数据。当输入指令为i为7时,将信号d输入,执行加法运算,经存储器存储,经寄存器寄存,oe为低电平控制输出端y输出。五、结束语本文介绍了基于FPGA进行微处理器的设计,进行系统建模,并且使用现场可编程器件FPGA,由九位指令控制,实现ALU操作数选择、ALU功能选择、RAM输入输出及移位操作、寄存器输入输出及移位操作。六、参考文献1 基于Altera FPGA/CPLD的电子系统设计及工程实践 人民邮电出版社2 潘松,黄继业主编.EDA技术与VHDL(第3版).清华大学出版社3 谭会生.EDA技术综合应用实例与分析.西安电子科技大学出版社14

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!