西电计组实验二 运算器实验

这篇具有很好参考价值的文章主要介绍了西电计组实验二 运算器实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

算术逻辑运算实验

一.实验目的
  1.了解简单运算器的数据传输通路。
  2.验证运算功能发生器的组合功能。
  3.掌握算术逻辑运算加、减、与的工作原理。
  4.验证实验台运算的8位加、减、与、直通功能。
  5.按给定数据,完成几种指定的算术和逻辑运算。

二.实验原理
  算术逻辑单元ALU的数据通路如图2-1所示。其中运算器ALU181根据74LS181的功能用VHDL硬件描述语言编辑而成,构成8位字长的ALU。参加运算的两个8位数据分别为A[7…0]和B[7…0],运算模式由S[3…0]的16种组合决定,而S[3…0]的值由4位2进制计数器LPM_COUNTER产生,计数时钟是Sclk(图2-1);此外,设M=0,选择算术运算,M=1为逻辑运算,CN为低位的进位位;F[7…0]为输出结果,CO为运算后的输出进位位。两个8位数据由总线IN[7…0]分别通过两个电平锁存器74373锁入,ALU功能如表2-1所示。
  


西电计组实验二 运算器实验

  
三.实验步骤
  1. 设计ALU元件
  在Quartus II 环境下,用文本输入编辑器Text Editor输入ALU181.VHD算术逻辑单元文件,编译VHDL文件,并将ALU181.VHD文件制作成一个可调用的原理图元件。
ALU181.VHD文件内容如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ALU181 IS
  PORT (
     S : IN STD_LOGIC_VECTOR(3 DOWNTO 0 );
     A : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
     B : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
     F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
     M : IN STD_LOGIC;
     CN : IN STD_LOGIC;
     CO : OUT STD_LOGIC );
END ALU181;
ARCHITECTURE behav OF ALU181 IS
SIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0);
SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0);
SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0);
BEGIN
  A9 <= ‘0’ & A ; B9 <= ‘0’ & B ;
  PROCESS(M,CN,A9,B9)
    BEGIN
      CASE S IS
      WHEN “0000” => IF M=‘0’ THEN F9<=A9 + CN ; ELSE F9<=NOT A9; END IF;
      WHEN “0001” => IF M=‘0’ THEN F9<=(A9 or B9) + CN ; ELSE F9<=NOT(A9 OR B9); END IF;
      WHEN “0010” => IF M=‘0’ THEN F9<=(A9 or (NOT B9))+ CN ; ELSE F9<=(NOT A9) AND B9; END IF;
      WHEN “0011” => IF M=‘0’ THEN F9<= “000000000” - CN ; ELSE F9<=“000000000”; END IF;
      WHEN “0100” => IF M=‘0’ THEN F9<=A9+(A9 AND NOT B9)+ CN ; ELSE F9<=NOT (A9 AND B9); END IF;
      WHEN “0101” => IF M=‘0’ THEN F9<=(A9 or B9)+(A9 AND NOT B9)+CN ; ELSE F9<=NOT B9; END IF;
      WHEN “0110” => IF M=‘0’ THEN F9<=(A9 - B9) - CN ; ELSE F9<=A9 XOR B9; END IF;
      WHEN “0111” => IF M=‘0’ THEN F9<=(A9 or (NOT B9)) - CN ; ELSE F9<=A9 and (NOT B9); END IF;
      WHEN “1000” => IF M=‘0’ THEN F9<=A9 + (A9 AND B9)+CN ; ELSE F9<=(NOT A9)and B9; END IF;
      WHEN “1001” => IF M=‘0’ THEN F9<=A9 + B9 + CN ; ELSE F9<=NOT(A9 XOR B9); END IF;
      WHEN “1010” => IF M=‘0’ THEN F9<=(A9 or(NOT B9))+(A9 AND B9)+CN ; ELSE F9<=B9; END IF;
      WHEN “1011” => IF M=‘0’ THEN F9<=(A9 AND B9)- CN ; ELSE F9<=A9 AND B9; END IF;
      WHEN “1100” => IF M=‘0’ THEN F9<=(A9 + A9) + CN ; ELSE F9<= “000000001”; END IF;
      WHEN “1101” => IF M=‘0’ THEN F9<=(A9 or B9) + A9 + CN ; ELSE F9<=A9 OR (NOT B9); END IF;
      WHEN “1110” => IF M=‘0’ THEN F9<=((A9 or (NOT B9)) +A9) + CN ; ELSE F9<=A9 OR B9; END IF;
      WHEN “1111” => IF M=‘0’ THEN F9<=A9 - CN ; ELSE F9<=A9 ; END IF;
      WHEN OTHERS => F9<= “000000000” ;
      END CASE;
END PROCESS;
  F<= F9(7 DOWNTO 0) ; CO <= F9(8) ;
END behav;
    2.以原理图方式建立顶层文件工程
选择图形方式。根据图2-1输入实验电路图,从Quartus II的基本元件库中将各元件调入图形编辑窗口、连线,添加输入输出引脚。
将所设计的图形文件ALU.bdf保存到原先建立的文件夹中,将当前文件设置成工程文件,以后的操作就都是对当前工程文件进行的。
   3.器件选择
选择Cyclone系列,在Devices中选择器件EP1C6QC240C8。编译,引脚锁定,再编译。引脚锁定后需要再次进行编译,才能将锁定信息确定下来,同时生成芯片编程/配置所需要的各种文件。
   4.芯片编程
打开编程窗口。将配置文件ALU.sof下载进GW48系列现代计算机组成原理系统中的FPGA中。
   5.验证ALU的运算器的算术运算和逻辑运算功能
选择实验系统的电路模式为NO.0,根据表2-1,从键盘输入数据A[7…0]和B[7…0],并设置S[3…0]、M、Cy,验证ALU运算器的算术运算和逻辑运算功能,记录实验数据。
  

西电计组实验二 运算器实验

图2-1 算术逻辑单元ALU实验原理图

  
四.实验要求
  1. 做好实验预习,掌握运算器的数据传送通路和ALU的功能特性,并熟悉本实验中所用的控制台开关的作用和使用方法。
  2. 写出实验报告,内容是:
   ①实验目的;
   ②按理论分析值填写好表2-2、表2-3和表2-4,给出对应的仿真波形。
   ③列表比较实验数据(2)的理论分析值与实验结果值;并对结果进行分析。实验结果与理论分析值比较,有没有不同?为什么?
   ④通过本实验,你对运算器ALU有何认识,有什么心得体会?
五.实验结果
  填写表格2-3、2-4:
  

表2-3 ALU181功能表
西电计组实验二 运算器实验
  
表2-4 8种常用的算术与逻辑运算
西电计组实验二 运算器实验

六.实验心得体会
  1.通过本次实验,我掌握了运算器的传输和计算方法,了解了简单运算器的数据传输通路。
  2.通过本次实验,我熟悉了逻辑运算单元ALU181的真值表和对应的功能。
  3.通过本次实验,我加深了对FPGA器件工作方式的理解,在验证ALU181功能的过程中提升了自己的动手能力,这也能让自己变得更细致和有耐心。
  4.在验证ALU功能特性的时候,我发现当S3 S2 S1 S0 = 1000,M=1,Cn=0时,ALU原本应该实现F=A非+B,但实际操作下来却发现并非如此,询问老师后得知可能是ALU181真值表与实际功能实现间存在极少数不对应的情况。文章来源地址https://www.toymoban.com/news/detail-457553.html

到了这里,关于西电计组实验二 运算器实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构实验之矩阵的运算器(二维数组)

    实验目的 掌握并学会运用数组及相关知识 掌握矩阵相关运算的代码实现 学会小组的分工与合作 体会封装的好处 实验任务及要求 要求实现矩阵的计算器,能供用户选择不同菜单,进而实现不同存储形式及调用相应计算的算法,并记录运算过程。 运算程序主要包括:①矩阵的

    2024年01月15日
    浏览(37)
  • 计算机组成与结构实验一《运算器组成》

    一、实验目的与要求 一、实验目的 (1)熟悉TEC-8模型计算机的节拍脉冲T1T2T3 (2)熟悉TEC-8模型机双端口通用寄存器组的读写操作 (3)熟悉TEC-8模型机运算器的数据传送通路 (4)验证74181的加、减、与、或功能 (5)按给定的数据,完成几种指定的算术运算和逻辑运算 二、

    2024年02月04日
    浏览(43)
  • 计算机组成与体系结构第一次试验:运算器实验

    为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正! 掌握使用算术逻辑运算器 74LS181 进行算术运算、 逻辑运算的方法。 掌握基于“累加-移位”原理的串

    2024年02月04日
    浏览(50)
  • 头歌计算机组成原理实验—运算器设计(4)第4关:16位快速加法器设计

    实验目的 帮助学生理解成组进位产生函数,成组进位传递函数的概念,熟悉 Logisim 平台子电路的概念,能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位、32位、64位快速加法器,并能利用相关知识分析对应电路的时间延迟,理解电路并行的概念。

    2024年02月05日
    浏览(111)
  • 计算机组成与结构综合大实验验优:16位运算器设计实验、存储器实验、控制器实验、16位CPU设计实验

    综合性比较强的大实验,先是在实验室完成前面三个小实验,最后再三个结合完成最后的16位CPU的设计,需要软硬件结合一起。 实验截图 黄色圈的地方是输入步骤显示 蓝色圈的地方是标志位和结果显示的LED灯 红色圈的地方是输入决定ALU功能的操作码的地方,以及输入计算的

    2023年04月08日
    浏览(45)
  • 2.6 浮点运算方法和浮点运算器

      以下是一些具体的学习目标: 理解浮点数的基本概念和表示方法,包括符号位、指数和尾数。 学习浮点数的运算规则和舍入规则,包括加、减、乘、除、开方等。 了解浮点数的常见问题和误差,例如舍入误差、溢出、下溢等,并学会如何处理这些问题。 理解浮点运算器的

    2024年02月01日
    浏览(48)
  • 基于FPGA的求模运算器

    目录 1、 简介 1.1 系统的目的 1.2 系统的背景 2、 需求概括 2.1 系统需求 2.2 当前系统问题 3、 建议的系统 3.1 设计重点 3.2 系统的原理 3.2.1 算法框图 3.3 数据预处理部分 3.4 迭代算法的核心部分 3.5 收敛判断 3.6 输出格式化 3.7 模块接口信号 3.9 仿真测试 4、 系统分析 4.1 精度分析

    2024年01月23日
    浏览(45)
  • 西电计组实验五 总线控制实验

    一.实验目的   1.理解总线的概念及特性;   2.掌握总线传输控制特性。 二.实验原理    总线的基本概念: 总线是多个系统部件之间进行数据传输的公共通路,是构成计算机系统的骨架。借助总线连接,计算机在系统各部件之间实现传送地址、数据和控制信息的

    2024年02月09日
    浏览(33)
  • 西电计组实验三 微控制器实验

    一.实验目的   1. 掌握节拍脉冲发生器的设计方法和工作原理。   2. 理解节拍脉冲发生器的工作原理。 二.实验原理   计算机之所以能够按照人们事先规定的顺序进行一系列的操作或运算,就是因为它的控制部分能够按一定的先后顺序正确地发出一系列相应的控制信

    2024年02月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包