计算机组成原理实验报告_3_不恢复余数阵列除法器

合集下载

计算机组成原理实验报告

计算机组成原理实验报告

重庆理工大学《计算机组成原理》实验报告学号 __***********____姓名 __张致远_________专业 __软件工程_______学院 _计算机科学与工程二0一六年四月二十三实验一基本运算器实验报告一、实验名称基本运算器实验二、完成学生:张致远班级115030801 学号11503080109三、实验目的1.了解运算器的组成结构。

2.掌握运算器的工作原理。

四、实验原理:两片74LS181 芯片以并/串形式构成的8位字长的运算器。

右方为低4位运算芯片,左方为高4位运算芯片。

低位芯片的进位输出端Cn+4与高位芯片的进位输入端Cn相连,使低4位运算产生的进位送进高4位。

低位芯片的进位输入端Cn可与外来进位相连,高位芯片的进位输出到外部。

两个芯片的控制端S0~S3 和M 各自相连,其控制电平按表2.6-1。

为进行双操作数运算,运算器的两个数据输入端分别由两个数据暂存器DR1、DR2(用锁存器74LS273 实现)来锁存数据。

要将内总线上的数据锁存到DR1 或DR2 中,则锁存器74LS273 的控制端LDDR1 或LDDR2 须为高电平。

当T4 脉冲来到的时候,总线上的数据就被锁存进DR1 或DR2 中了。

为控制运算器向内总线上输出运算结果,在其输出端连接了一个三态门(用74LS245 实现)。

若要将运算结果输出到总线上,则要将三态门74LS245 的控制端ALU-B 置低电平。

否则输出高阻态。

数据输入单元(实验板上印有INPUT DEVICE)用以给出参与运算的数据。

其中,输入开关经过一个三态门(74LS245)和内总线相连,该三态门的控制信号为SW-B,取低电平时,开关上的数据则通过三态门而送入内总线中。

总线数据显示灯(在BUS UNIT 单元中)已与内总线相连,用来显示内总线上的数据。

控制信号中除T4 为脉冲信号,其它均为电平信号。

由于实验电路中的时序信号均已连至“W/R UNIT”单元中的相应时序信号引出端,因此,需要将“W/R UNIT”单元中的T4 接至“STATE UNIT”单元中的微动开关KK2 的输出端。

计算机组成原理实验报告

计算机组成原理实验报告

计算机组成原理实验报告实验报告运算器实验⼀、实验⽬的掌握⼋位运算器的数据传输格式,验证运算功能发⽣器及进位控制的组合功能。

⼆、实验要求完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运⽤。

三、实验原理实验中所⽤的运算器数据通路如图2-3-1所⽰。

ALU运算器由CPLD描述。

运算器的输出FUN经过74LS245三态门与数据总线相连,运算源寄存器A和暂存器B的数据输⼊端分别由2个74LS574锁存器锁存,锁存器的输⼊端与数据总线相连,准双向I/O 输⼊输出端⼝⽤来给出参与运算的数据,经2⽚74LS245三态门与数据总线相连。

图2-3-1运算器数据通路图中A WR、BWR在“搭接态”由实验连接对应的⼆进制开关控制,“0”有效,通过【单拍】按钮产⽣的脉冲把总线上的数据打⼊,实现运算源寄存器A、暂存器B的写⼊操作。

四、运算器功能编码算术运算逻辑运算K23~K0置“1”,灭M23~M0控位显⽰灯。

然后按下表要求“搭接”部件控制路。

表2.3.2 运算实验电路搭接表算术运算1.运算源寄存器写流程通过I/O单元“S7~S0”开关向累加器A和暂存器B置数,具体操作步骤如下:2.运算源寄存器读流程关闭A、B写使能,令K18=K17=“1”,按下流程分别读A、B。

3.加法与减法运算令M S2 S1 S0(K15 K13~K11=0100),为算术加,FUN及总线单元显⽰A+B的结果令M S2 S1 S0(K15 K13~K11=0101),为算术减,FUN及总线单元显⽰A-B的结果。

逻辑运算1.运算源寄存器写流程通过“I/O输⼊输出单元”开关向寄存器A和B置数,具体操作步骤如下:2.运算源寄存器读流程关闭A、B写使能,令K17= K18=1,按下流程分别读A、B。

①若运算控制位设为(M S2 S1 S0=1111)则F=A,即A内容送到数据总线。

②若运算控制位设为(M S2 S1 S0=1000)则F=B,即B内容送到数据总线。

计算机组成原理课程设计的实验报告范文

计算机组成原理课程设计的实验报告范文

长治学院课程设计报告课程名称:计算机组成原理课程设计设计题目:设计一台性能简单的计算机系别:计算机系专业:计科1101班组别:第三组学生姓名: 学号:起止日期: 2013年7月4日~ 2013年7月10日****:***目录一、课程设计的目的 ----------------------------------1二、设计要求 ----------------------------------------1三、设计的方法及过程---------------------------------23.1整机设计 --------------------------------------23.1.1 根据设计要求正确设置正确设置多路开关-------23.1.2操作控制信号及其实现方式-------------------23.1.3根据接线表画出整机的线路图-----------------2 3.2.设计指令系统----------------------------------3 3.3.设计微指令及指令的微程序----------------------43.3.1设计微地址 --------------------------------4 3.3.2写出指令的执行流程-------------------------3 3.3.3编写指令的微程序---------------------------53.4.编写并执行应用程序----------------------------8四、心得体会-----------------------------------------7 一课程设计的目的通过课程设计更清楚地理解下列基本概念:(1)计算机的硬件基本组成;(2)计算机中机器指令的设计;(3)计算机中机器指令的执行过程;(4)微程序控制器的工作原理;(5)微指令的格式设计原理;二设计要求题一研制以台性能如下的实验计算机。

计算机组成原理实验报告

计算机组成原理实验报告

实验一报告内容实验题目:运算器实验实验目的: 1、掌握简单运算器的数据传输方式 2、验证运算功能发生器( 74LS181)及进位控制的组合功能。

实验要求:完成不带进位及带进位算术运算实验、逻辑运算实验,了解算术逻辑运算单元的运用。

实验器材:电子试验箱运算器组成框图:ALU的功能图实验原理:实验中所用的运算器原理如图1-1所示。

其中运算器山两片74LS181以并/串形式构8位字长的ALU。

运算器的输出经过一个三态门(74LS245)和数据总线相连’运算器的两个数据输入端分别由-个锁存器(74LS273)锁存,锁存器的输入已连至数据总线,数据丌关(INPUT UNIT)用来给出参与运算的数据,经一三态门(74LS245)和数据总线相连,数据显示灯(BUS UNIT)已和数据总线相连,用来显示数据总线内容。

本实验装置的控制线(CTR-IN UNIT)应与(CTR-OUT UNIT)相连,数据总线、时序电路( TIME UNIT)产生的脉冲信号(T1-T4)、P(1)、P(2)、P(3)本实验装置已作连接, ( CLK UNIT)必须选择一档合适的时钟,其余均为电平控制信号(HC-UNIT)。

进行实验时,首先按动位于本实验装置右中则的复位按钮使系统进入初始待令状态,在LED显示器闪动出现“P.”的环境下,按动增址命令键使LED显示器自左向右第一位显示提示符H”,表示本装置已进入手动单元实验状态,在该状态下按动单步命令键,即可获得实验所需的单脉冲信号,而各电平控制信号用位于LED显示器左方的K25~KO二进制数据开关来模拟。

在进行手动实验时,必须先预置开关电平:,Load=l, /CE- 1,其余开关控制信号电平均置为0,这在以后手动实验时不再说明,敬请注意。

实验连接:按上图实验线路作以下连接:1、八付运算器控制信号连接:位于实验装置左上方的控制信号(CrR_OLff UNIT)中的(S3、S2. S1. SO.M、/CN. LDDRl. LDDR2. LDCZY. C、B.A)与位于实验装置右中方的(CTR-IN UNIT)、位于实验装置左中方的(UPC UNIT)、位于右J二方的(艮UNIT)作对应连接。

计算机组成原理实验报告

计算机组成原理实验报告

湖南师范大学工程与设计学院计算机组成原理实验报告姓名:年级:2014级专业:计算机科学与技术学号:**********任课教师:***开课时间:2015~2016学年第二学期湖南师范大学工程与设计学院实验数据报告单实验课程:计算机组成原理实验题目:基本运算器实验实验日期:2016年 6月13日专业:计算机年级:2014级班级:五班姓名:一.实验目的:1.了解运算器的组成结构2.掌握运算器的工作原理二..实验内容:主要内容:该试验旨在了解运算器内部运算过程及组成结构,并能进行一些简单的数据运算。

该实验通过一片CPLD来实现运算器部件的功能,在接好的实验电路上,用CMA软件将数据加载加入内存,最终实现通过设置CON单元的S3、S2、S1、S0以及时序T1、T2、T3、T4的不同值来实现不同的功能。

表现在:用S3、S2、S1、S0的不同值并配合CN的值来实现将寄存器A、寄存器B中的两个数进行逻辑运算、移位运算、算术运算,并且加上时间脉冲的加入,并且能够准确的实现值的输出。

结果体现在:用FC灯亮表示有进位,FZ灯亮表示零标志,D7…D0灯显示通过运算后得出来的值。

三.实验原理图:图一(运算器原理图)四.实验数据与分析:0000:功能是F=A(直通),因为A=65,所以F=65,且没有进位,标志位也没有变化,所以FC=0,FZ=0. 0001: 功能是F=B (直通),因为A=A7,所以F=A7,且没有进位,标志位也没有变化,所以FC=0,FZ=0. 0010: 功能是F=AB,也就是A与B的逻辑与,所以F=25, 且没有进位,标志位也没有变化,所以FC=0,FZ=0. 0011:功能是F=A+B,也就是A与B的逻辑或,所以F=E7, 且没有进位,标志位也没有变化,所以FC=0,FZ=0. 0100: 功能是F=/A,0101:功能是F=A不带进位循环右移B(取低三位)位。

0110:功能是当CN=0时,F=A逻辑右移一位;当CN=1时,F=A带进位逻辑右移一位。

计算机组成原理实验总报告

计算机组成原理实验总报告

计算机组成原理实验报告班级:0411202学号:2012211xxx姓名: kelory_lee2014年12月7日目录1.实验一Hamming码2.实验二乘法器3.实验三时序部件4.实验四CPU_算术逻辑单元5.实验五CPU_指令译码器6.实验六CPU_微程序控制器7.实验七-八CPU_无流水无cache实验1 Hamming码一.实验目的(1)对容错技术有初步了解,理解掌握海明码的原理(2)掌握海明码的编码以及校验方法二.实验内容(1)先连接JTAG线和USB线(CPU实验时才用接此线),然后接实验箱电源线,最后才可以打开电源。

(切记:不能带电插拔Jtag口,否则会损坏实验设备)(2)安装ByteBlaster:Quartus→tools→>programmer→HardwareSetup(在打开programmer窗口的左上角或从Edit菜单—> HardwareSetup 亦可打开)→选Hardware Settings→点击Add Hardware→Hardware type →Altera ByteBlaster→ok即可;Mode选Jtag。

(3)打开Quartus→tools→programmer→AddFile,将hamming.sof(在C盘的相应目录下)下载到FPGA中。

注意进行programmer时,应在program/configure下的方框中打勾,然后下载。

(4)在实验台上通过模式开关选择FPGA独立调试模式010。

首先输入的8位操作数对应开关SD15~SD8,编码后的hamming码在灯A0~A12上体现。

其次开关SA0是控制位,待校验的13位数据对应SD7~SD0与SA5~SA1。

最后比较的结果在灯R4~R0上体现。

观察实验现象并记录相应数据如对8位数据10101100进行hamming编码和校验。

第一,先手工计算校验位P5~P1=_10111__,编码后的hamming码为__1101001101011。

计算机组成原理实验报告

计算机组成原理实验报告

计算机组成原理实验报告
实验目的:
本实验的目的是通过进行计算机组成原理实验,深入理解计算机的基本组成和工作原理,掌握计算机硬件与软件之间的协同工作方式。

实验设备:
1. 计算机主机
2. 键盘
3. 鼠标
4. 显示器
实验步骤:
1. 打开计算机主机,并接通电源。

2. 等待计算机启动完毕,进入操作系统界面。

3. 输入用户名和密码,登录系统。

4. 在桌面上打开文本编辑器,并新建一个文档。

5. 在文档中输入一段文字,并保存文件。

6. 打开浏览器,进入互联网页面。

7. 在浏览器中输入搜索词语,并点击搜索按钮。

8. 查看搜索结果,并点击其中一个链接。

9. 在打开的页面上点击按钮或链接,进行相应操作。

10. 关闭浏览器。

11. 关闭文本编辑器,保存文档。

12. 关闭计算机主机。

实验结果:
通过完成以上步骤,我们成功地进行了计算机组成原理实验。

在电脑启动后,我们登录系统并使用了各种软件和外部设备。

计算机可以顺利地接收我们的指令,并作出相应的操作。

我们也能够通过互联网浏览页面,并进行搜索和点击链接操作。

实验总结:
通过本次实验,我们更加深入地理解了计算机的组成和工作原理。

计算机是由硬件和软件组成,硬件包括主机、键盘、鼠标、显示器等,软件包括操作系统、文本编辑器、浏览器等。

计算机的各个组件通过协同工作,实现了我们对计算和信息的处理。

掌握计算机组成原理对于我们更好地使用计算机和理解计算机科学的发展趋势具有重要意义。

计算机组成原理实验报告运算器实验

计算机组成原理实验报告运算器实验
计算机组成原理实验报告运算器实验
实验目的:
本实验旨在设计并实现一个运算器,使之能够进行加减乘Байду номын сангаас、取模、位移等基本算术和逻辑运算。
实验原理:
运算器是一种用来执行算术和逻辑操作的计算机硬件,由运算器部件、累加器、数据寄存器等组成。在CPU中,运算器是最重要的组成部分之一,它负责对数据进行算术和逻辑运算。运算器主要分为两个部分:算术逻辑单元(ALU)和数据通路。ALU负责实现各种算术和逻辑运算,数据通路则负责将数据从寄存器中取出送到ALU进行处理,然后将结果返回到寄存器中。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河北大学计算机组成原理实验报告学院年级专业学号姓名实验日期实验地点指导老师实验项目不恢复余数阵列除法器成绩一、实验目的:理解除法器的原理。

二、实验原理:这次实验实现原码不恢复余数法的阵列除法器算法(余数左移除数固定),详细计算过程如下。

例题:X=0.10110,y=0.111,求[x/y]原。

则[x]补=0.10110,[y*]补=0.111,[-y*]补=1.001由于除数被除数都为正,因此最后结果为正,直接在最后的结果加上“+”,商为+0.110,但是由于除数在计算的过程中被逻辑左移了3次,所以要乘以2^-5进行恢复,故余数为0.000 010 000。

原码不恢复余数法原理说明:①符号位单独处理,参加运算的是除数和被除数的绝对值的补码,除数的绝对值用y*表示;②合法的除法运算中,被除数必须小于除数,因此第一次上商肯定是r6=0,否则溢出,停止运算;③原码恢复余数法来源于手算的竖式除法。

若余数为正,表示够减,商上1,左移一位,减去[y*]补,也就是加上[-y*]补;若余数为负,表示不够减,商上0,恢复余数(加上除数),变成减去除数之前的结果,继续左移一位,加上[-y*]补。

④原码不恢复余数法建立在原码恢复余数法的基础之上,假设当前的余数为R。

当余数大于0时,下一步余数是先左移一位再减去除数,即下一步余数应该为R’=2R-y*;当余数小于0时先恢复余数,然后再左移一位再减去除数,假设当前余数为R,那么下一步余数应该为R’=2(R+y*)-y*=2R+y*。

以上两个式子将恢复余数法的步骤定量化了,也就是说,要么左移一位加上y*,要么左移一位减去y*,这就是加减交替的含义。

⑤除数和被除数具有3位尾数的合法的除法,需要逻辑移位3次,上商3+1=4次。

可以设置一个计数器count来控制循环次数,达到3次就停止。

⑥若最后一步为负,表示不够减,商上0,需要恢复余数,即加上除数,否则不需要。

接下来介绍原码不恢复余数阵列除法器①可控加法/减法(CAS)单元原理是利用一个可控加法/减法 CAS 单元所组成的流水阵列来实现的它有四个输出端和四个输入端。

当输入线P=0时,CAS 作加法运算;当P=1 时,CAS 作减法运算。

逻辑结构图如图所示。

不恢复余数阵列除法器的逻辑结构图 CAS 单元的输入与输出的关系可用如下一组逻辑方程来表示:Si=Ai⊕(Bi⊕P)⊕C,Ci+1=(Ai+Ci)· (Bi⊕P)+AiCi当P=0 时,就是一个全加器,如下式:Si=Ai⊕Bi⊕Ci ,Ci+1=AiBi+BiCi+AiCi 当P=1 时,则得求差公式:Si=Ai⊕非Bi ⊕Ci ,Ci+1=AiBi+BiCi+AiCi ,其中非Bi=Bi⊕1。

在减法情况下,输入Ci 称为借位输入,而Ci+1 称为借位输出。

②不恢复余数的除法(加减交替法)在不恢复余数的除法阵列中,每一行所执行的操作究竟是加法还是减法,取决于前一行输出的符号与被除数的符号是否一致。

当出现不够减时,部分余数相对于被除数来说要改变符号。

这时应该产生一个商位“0”,除数首先沿对角线右移,然后加到下一行的部分余数上。

当部分余数不改变它的符号时,即产生商位“1”,下一行的操作应该是减法。

本实验就采用加减交替的方法设计这个阵列除法器。

被除数为x= X0.x6x5x4x3x2x1(这里需要右移,是双倍长);除数为y=Y0.y3y2y1。

其中X0 和 Y0 是被除数和除数的符号位,在本次设计中X0 和 Y0 为零,商的符号位恒为零,商为q4.q3q2q1,余数为0.00r6r5r4r3。

字长n+1=4由图看出,该阵列除法器是用一个可控加法/减法(CAS)单元所组成的流水阵列来实现的。

推广到一般情况,一个(n+1)位除(n +1)位的加减交替除法阵列由(n+1)2个CAS单元组成,其中两个操作数(被除数与除数) 都是正的。

(1)单元之间的互连是用n=3的阵列来表示的。

这里被除数x是一个6位的小数(双倍长度值):x= X0.x6x5x4x3x2x1它是由顶部一行和最右边的对角线上的垂直输入线来提供的。

(2)除数y是一个3位的小数:y=0.y3y2y1它沿对角线方向进入这个阵列。

这是因为,在除法中所需要的部分余数的左移,可以用下列等效的操作来代替:即让余数保持固定,而将除数沿对角线右移。

(3)商q是一个3位的小数:q=0.q1q2q3 它在阵列的左边产生。

(4)余数r是一个6位的小数:r=0.00r3r4r5r6 它在阵列的最下一行产生。

最上面一行所执行的初始操作经常是减法。

因此最上面一行的控制线P固定置成“1”。

减法是用2的补码运算来实现的,这时右端各CAS单元上的反馈线用作初始的进位输入。

每一行最左边的单元的进位输出决定着商的数值。

将当前的商反馈到下一行,我们就能确定下一行的操作。

由于进位输出信号指示出当前的部分余数的符号,因此,它将决定下一行的操作将进行加法还是减法。

对不恢复余数阵列除法器来说,在进行运算时,沿着每一行都有进位(或借位)传播,同时所有行在它们的进位链上都是串行连接。

而每个CAS单元的延迟时间为3T单元,因此,对一个2n位除以n位的不恢复余数阵列除法器来说,单元的数量为(n+1)2,考虑最大情况下的信号延迟,其除法执行时间为td=3(n+1)2T三、实验步骤:(1)打开Quartys II。

(2)将子板上的JTAG端口和PC机的并行口用下载电缆连接。

打开实验台电源。

(3)执行Tool→Programmer 命令,将adder8.sof下载到FPGA中。

注意在执行Programmer中,应在program/configure下的方框中打钩,然后下载。

(4)在实验台上通过模式开关选择FPGA-CPU独立调试模式010。

四、实验现象及分析:本实验实现4位除4位阵列除法器。

输入输出规则对应如下:(1)输入被乘数A和乘数B,A和B分别是x= X0.x6x5x4x3x2x1和y=Y0.y3y2y1(2)输出的结果是商为q4.q3q2q1,余数为0.00r6r5r4r3。

输入输出范例:五、实验过程中遇到问题及解决方法:问题一:阵列除法器采用的过程是什么解决方法:余数固定除数右移。

余数左移除数固定的算法适合除数和被乘数尾数为n的运算,余数固定除数右移的将例题稍作修改即可。

问题二:阵列除法器是如何做到减去除数,即加上[-y*]补的?解决方法:变补的法则是:对[y*]补包括符号位“求反且最末位加1”即可得到[-y*]补。

阵列除法器只能做加法,通过图中的“非Bi=Bi⊕1”实现求反,通过某一行最右侧的Ci (借位输入)为1实现最末位加1。

问题三:实验现象中第一行的运算结果中,余数是1011,是除法器在逗吗?解决方法:阵列除法器并没有在逗你,采取余数固定除数右移是得到的余数是 1.111011,这表明不够减,解决方法是恢复余数,得到余数为0.000 010,或者再算两次,得到余数为0.000 000 01,此时商为0.110 01。

而在硬件层面上不实现这个功能。

如果允许余数为负数,结果就是对的。

问题四:直接将整个CAS连接起来可以吗?解决方法:像--不恢复余数阵列除法器(4位除4位阵列除法器)library ieee;use ieee.std_logic_1164.all;entity composition_7_2_non_restoring_array_divider isport( x:in std_logic_vector(6 downto 1); --这里编号顺序与课本不同y: in std_logic_vector(3 downto 1);q: out std_logic_vector(4 downto 1);r:out std_logic_vector(6 downto 3));end composition_7_2_non_restoring_array_divider;architecture s_div of composition_7_2_non_restoring_array_divider iscomponent CAS is port(A,B,Ci,P : IN STD_LOGIC;--P,B :inout std_logic;Pout,Bout,Si,CoPlus : OUT STD_LOGIC);end component;signal p1out:std_logic_vector(1 to 16); --CAS的右上部分为加减法控制输出signal b1out:std_logic_vector(1 to 16); --CAS的右下部分为输入的B的输出signal s1:std_logic_vector(1 to 12); --CAS的竖线方向为余数输出signal co1plus:std_logic_vector(1 to 16); --CAS的左下部分为进位输出--signal gnd:std_logic := '0'; --'0'begin--cas11:左数第一个,第1行cas11:CAS port map('0', '0', co1plus(2), '1',p1out(1),b1out(1), s1(1), co1plus(1)); --输出q4<=co1plus(1) cas12:CAS port map(x(6), y(3),co1plus(3),p1out(1),p1out(2),b1out(2),s1(2),co1plus(2));cas13:CAS port map(x(5), y(2),co1plus(4),p1out(2),p1out(3),b1out(3),s1(3),co1plus(3));cas14:CAS port map(x(4), y(1),p1out(4), p1out(3),p1out(4),b1out(4),s1(4),co1plus(4));q(4)<=co1plus(1);--s1(1)=0cas21:CAS port map(s1(2), b1out(1),co1plus(6), co1plus(1),p1out(5),b1out(5),s1(5),co1plus(5)); --输出q3<=co1plus(5)cas22:CAS port map(s1(3), b1out(2),co1plus(7), p1out(5),p1out(6),b1out(6),s1(6),co1plus(6));cas23:CAS port map(s1(4), b1out(3),co1plus(8), p1out(6),p1out(7),b1out(7),s1(7),co1plus(7));cas24:CAS port map(x(3), b1out(4),p1out(8), p1out(7),p1out(8),b1out(8),s1(8),co1plus(8));q(3)<=co1plus(5);cas31:CAS port map(s1(6), b1out(5),co1plus(10), co1plus(5),p1out(9),b1out(9),s1(9),co1plus(9)); --输出q2 cas32:CAS port map(s1(7), b1out(6),co1plus(11), p1out(9),p1out(10),b1out(10),s1(10),co1plus(10));cas33:CAS port map(s1(8), b1out(7),co1plus(12), p1out(10),p1out(11),b1out(11),s1(11),co1plus(11));cas34:CAS port map(x(2), b1out(8),p1out(12), p1out(11),p1out(12),b1out(12),s1(12),co1plus(12));q(2)<=co1plus(9);cas41:CAS port map(s1(10), b1out(9),co1plus(14), co1plus(9),p1out(13),b1out(13),r(6),co1plus(13)); --输出q1cas42:CAS port map(s1(11), b1out(10),co1plus(15), p1out(13),p1out(14),b1out(14),r(5),co1plus(14));cas43:CAS port map(s1(12), b1out(11),co1plus(16), p1out(14),p1out(15),b1out(15),r(4),co1plus(15));cas44:CAS port map(x(1), b1out(12),p1out(16), p1out(15),p1out(16),b1out(16),r(3),co1plus(16));q(1)<=co1plus(13);end s_div;--可控加法/减法(CAS)单元controllable_Addition_UnitLIBRARY ieee;USE ieee.std_logic_1164.all;entity CAS isport(A,B,Ci,P : IN STD_LOGIC;--P,B :inout std_logic;Pout,Bout,Si,CoPlus : OUT STD_LOGIC --输出按图中逆时针方向排列);end entity;ARCHITECTURE rtl OF CAS ISBEGINSi <= A xor (B xor P) xor Ci;CoPlus <= (A or Ci) and (B xor P) and (A and Ci) ;Pout<=P;Bout<=B;END rtl;做不到按顺序同时地运算,希望有人能解决。

相关文档
最新文档