EDA课程设计 ALU算术逻辑运算单元的设计.doc_第1页
EDA课程设计 ALU算术逻辑运算单元的设计.doc_第2页
EDA课程设计 ALU算术逻辑运算单元的设计.doc_第3页
EDA课程设计 ALU算术逻辑运算单元的设计.doc_第4页
EDA课程设计 ALU算术逻辑运算单元的设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 摘要摘要 本文讨论了基于fpga 芯片的四位简单微处理器的设计方法。依据微处理器 的基本原理,以xilinux ise 9.2i软件平台作为开发工具,它与amd公司生产的 四位微处理器am2901指令兼容,主要完成微处理器硬件系统设计和指令系统设 计两方面的任务,运用vhdl硬件编程语言,使微处理器能够实现两个四位二进 制加、减算术运算和与或等逻辑运算功能。微处理器系统包括运算器、控制器、 存储器以及其他必要的逻辑部件。 关键词关键词:fpga,vhdl,微处理器。 2 目录目录 一一 设计任务设计任务33 二二 总体设计总体设计33 三三 详细设计详细设计33 1 1、alualu 输入选择器的设计输入选择器的设计3 3 2 2、alualu 算术逻辑运算单元的设计算术逻辑运算单元的设计44 3 3、存储器、存储器 ramram 的设计的设计66 4 4、寄存器、寄存器 qreg1qreg1 的设计的设计77 5 5、输出选择器的设计、输出选择器的设计88 6 6、顶层模块的设计、顶层模块的设计99 四四 结果分析结果分析1111 五五 结束语结束语1313 六六 参考文献参考文献1313 3 一、设计任务一、设计任务 本设计为一个基于vhdl语言的9位简单指令,微处理器的设计流程,包括微 处理器的alu操作数选择、alu功能选择、ram输入输出及移位操作,最后用顶层 设计进行元件例化。通过编译、仿真检查程序,最后在fpga芯片上实现下载。 二、总体设计二、总体设计 系统的主要分五个模块。模块间的关系如下图: alu 输入选择设计输入选择设计 alu 功能选择设计功能选择设计 ram 输入输出及移位操作设计输入输出及移位操作设计 寄存器输入输出及移位操作设计寄存器输入输出及移位操作设计 系统本身输入输出及移位操作系统本身输入输出及移位操作 三、详细设计三、详细设计 微处理器的指令系统规定:基本指令字长为 9 位,指令的每一位从高到低用 i8、i7、i6、i5、i4、i3、i2、i1、i0表示。 1 1、alualu 输入选择器的设计输入选择器的设计 指令的编码方式如图 指令码指令码 alu 输入选择 其中,alu 输入选择,可以对 alu 中运算的操作数进行选择,即 r 和 s,选择信 指令码 输入选择 i2 i1 i0 r s 0 0 0 a q 0 0 1 a b 0 1 0 0 q 0 1 1 0 b 1 0 0 0 a 1 0 1 d a 1 1 0 d q 1 1 1 d 0 4 号 a、b、d、q、0 到 alu。 alu 输入选择器是由微处理器指令中的源操作数所控制的两个多路选择器构成 的。输出信号 r 在 a、d 和 0 之间选择,s 信号在 a、b、q 和 0 之间选择。其 vhdl 源程序如下: library ieee; use ieee.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 is begin with aluin_ctrl select r if cin=0 then f1 if cin=0 then f1 if cin=0 then f1 f1 f1 f1 f1 f1 null; end case; end process; fab_data(to_integer(baddr)ab_data(to_integer(baddr)ab_data(to_integer(baddr)ab_data(to_integer(baddr)q_dataq_dataq_dataq_dataclk,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); 11 -输入选择器的端口映射 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 1、alualu 输入选择器输入选择器 由运行结果可知,当指令为 0 时,输入选择信号 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 2、alualu 算术逻辑运算单元算术逻辑运算单元 由运行结果可知,当指令码 alu_ctrl 为 0 时,执行加法运算,即 r+s,如果 进位输入为 1,则再加上进位,即 r+s+1,图中 2 加 4 加进位 1 得 7,相加之后 没有进位,进位输出 c4 即为 0,溢出标志 ovr 为 0,当指令码 alu_ctrl 为 4 时, 12 执行与运算,即 r and s,图中 5 与 d 进行与运算,结果为 5。 3 3、存储器、存储器 ramram 由运行结果可知,当输入指令 ram1_ctrl 时,地址选择信号 baddr 选择 ram 存储位置,存储的值由 a 通道或 b 通道输出,a 通道输出的值由地址选择信号 aaddr 决定,通道输出的值由地址选择信号 baddr 决定,图中指令 ram1_ctrl 为 2 时,将计算结果 1 存储在地址 baddr 为 0 的存储区内,a 通道输出地址 aaddr 为 0 的存储区值,即输出 1,b 通道输出地址 aaddr 为 0 的存储区值,即输出 1。 4、寄存器、寄存器 qreg1qreg1 由运行结果可知,指令 q_ctrl 有四种操作包括接收、左移、右移、保持,图 中当指令 q_ctrl 为 0 时,执行接受输入数据 f,当指令 q_ctrl 为 7 时,执行 保持数据 f,q3 被赋值,当指令 q_ctrl 为 4 时,实现左移,q0 被赋值。 5 5、输出选择器、输出选择器 13 由运行结果可知,当 oe 为高电平时,输出端 y 输出高阻态,否则输出端由输 出控制指令 mux_ctrl 决定,当 mux_qtrl 为 2 时,输出为 a 信号,当 mux_ctrl 为 7 或 0 时,输出为 f 信号。 6 6、总体仿真、总体仿真 由运行结果可知,输入端 d 输入数据,经 alu 算术逻辑单元运算后得到的结果送 入存储器和寄存器,最后经输出选择器选择输出数据。当输入指令为 i 为 7 时,将信 号 d 输入,执行加法运算,经存储器存储,经寄存器寄存,oe 为低电平控制输出端 y 输出。 五、结束语五、结束语 14 本文介绍了基于fpga进行微处理器的设计,进行系统建模,并且使用现场 可编程器件fpga,由九位指令控制,

温馨提示

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

评论

0/150

提交评论