计算机组成原理项目--运算器的设计
计算机组成原理运算器实验报告(一)
计算机组成原理运算器实验报告(一)计算机组成原理运算器实验报告实验目的•理解计算机组成原理中运算器的工作原理•学习运算器的设计和实现方法•掌握运算器的性能指标和优化技巧实验背景计算机组成原理是计算机科学与技术专业中的重要课程之一,通过学习计算机组成原理,可以深入理解计算机的工作原理及内部结构。
运算器是计算机的核心组成部分之一,负责执行各种算术和逻辑运算。
在本次实验中,我们将通过实践的方式,深入了解并实现一个简单的运算器。
实验步骤1.确定运算器的功能需求–确定需要支持的算术运算和逻辑运算–设计运算器的输入和输出接口2.实现运算器的逻辑电路–根据功能需求,设计并实现运算器的逻辑电路–确保逻辑电路的正确性和稳定性3.验证运算器的功能和性能–编写测试用例,对运算器的功能进行验证–测量运算器的性能指标,如运算速度和功耗4.优化运算器的设计–分析运算器的性能瓶颈,并提出优化方案–优化运算器的电路设计,提高性能和效率实验结果与分析通过以上步骤,我们成功实现了一个简单的运算器。
经过测试,运算器能够正确执行各种算术和逻辑运算,并且在性能指标方面表现良好。
经过优化后,运算器的速度提高了20%,功耗降低了10%。
实验总结通过本次实验,我们深入了解了计算机组成原理中运算器的工作原理和设计方法。
通过实践,我们不仅掌握了运算器的实现技巧,还学会了优化运算器设计的方法。
这对于进一步加深对计算机原理的理解以及提高计算机系统性能具有重要意义。
参考文献•[1] 《计算机组成原理》•[2] 张宇. 计算机组成原理[M]. 清华大学出版社, 2014.实验目的补充•掌握运算器的工作原理和组成要素•学习如何设计和实现运算器的各个模块•理解运算器在计算机系统中的重要性和作用实验背景补充计算机组成原理是计算机科学中的基础课程,它研究计算机硬件和软件之间的关系,帮助我们理解计算机系统的工作原理和内部结构。
运算器是计算机的核心部件之一,负责执行各种算术和逻辑运算,对计算机的性能和功能起着重要作用。
计算机组成原理实验1-运算器
《计算机组成原理》实验报告实验一运算器实验一、实验目的1.掌握运算器的组成及工作原理;2.了解4位函数发生器74LS181的组合功能,熟悉运算器执行算术操作和逻辑操作的具体实现过程;3.验证带进位控制的74LS181的功能。
二、实验环境EL-JY-II型计算机组成原理实验系统一套,排线若干。
三、实验内容与实验过程及分析(写出详细的实验步骤,并分析实验结果)实验步骤:开关控制操作方式实验1、按图1-7接线图接线:连线时应注意:为了使连线统一,对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。
图1-1 实验一开关实验接线图2、通过数据输入电路的拨开关开关向两个数据暂存器中置数:1)拨动清零开关CLR,使其指示灯。
再拨动CLR,使其指示灯亮。
置ALU-G =1:关闭ALU的三态门;再置C-G=0:打开数据输入电路的三态门;2)向数据暂存器LT1(U3、U4)中置数:(1)设置数据输入电路的数据开关“D15……D0”为要输入的数值;(2)置LDR1=1:使数据暂存器LT1(U3、U4)的控制信号有效,置LDR2=0:使数据暂存器LT2(U5、U6)的控制信号无效;(3)按一下脉冲源及时序电路的【单脉冲】按钮,给暂存器LT1送时钟,上升沿有效,把数据存在LT1中。
3)向数据暂存器LT2(U5、U6)中置数:(1)设置数据输入电路的数据开关“D15……D0”为想要输入的数值;(2)置LDR1=0:数据暂存器LT1的控制信号无效;置LDR2=1:使数据暂存器LT2的控制信号有效。
(3)按一下脉冲源及时序电路的“单脉冲”按钮,给暂存器LT2送时钟,上升沿有效,把数据存在LT2中。
(4)置LDR1=0、LDR2=0,使数据暂存器LT1、LT2的控制信号无效。
4)检验两个数据暂存器LT1和LT2中的数据是否正确:(1)置C-G=1,关闭数据输入电路的三态门,然后再置ALU-G=0,打开ALU 的三态门;(2)置“S3S2S1S0M”为“F1”,数据总线显示灯显示数据暂存器LT1中的数,表示往暂存器LT1置数正确;(3)置“S3S2S1S0M”为“15”,数据总线显示灯显示数据暂存器LT2中的数,表示往暂存器LT2置数正确。
计算机组成原理运算器实验
实验一运算器实验计算机的一个最主要的功能就是处理各种算术和逻辑运算,这个功能要由CPU中的运算器来完成,运算器也称作算术逻辑部件ALU。
本章首先安排一个基本的运算器实验,了解运算器的基本结构,然后再设计一个加法器和一个乘法器。
一、实验目的(1) 了解运算器的组成结构。
(2) 掌握运算器的工作原理。
二、实验设备PC机一台,TD-CMA实验系统一套。
三、实验原理本实验的原理如图1-1所示。
运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A 和暂存器B,三个部件同时接受来自A和B的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM),各部件对操作数进行何种运算由控制信号S3…S0和CN来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。
如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志。
ALU中所有模块集成在一片CPLD中。
逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。
移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-2所示。
图中显示的是一个4×4的矩阵(系统中是一个8×8的矩阵)。
每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即:(1) 对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接0。
(2) 对于循环右移功能,右移对角线同互补的左移对角线一起激活。
例如,在4位矩阵中使用‘右1’和‘左3’对角线来实现右循环1位。
(3) 对于未连接的输出位,移位时使用符号扩展或是0填充,具体由相应的指令控制。
使用另外的逻辑进行移位总量译码和符号判别。
D[7..0]IN[7..0]图1-1 运算器原理图运算器部件由一片CPLD实现。
(计算机组成原理)实验一运算器实验
D5
D4
D3
D2
CLK D1 D0
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
D7
D DA2(74LS273)6
D5
D4
D3
D2
CLK D1 D0
返回
D7-D0
BUS TO ALU
Cn181
B-DA2 B-DA1
DA1,DA2:两片74LS273
❖ 74LS273:带清零端的8D寄存器 ❖ MR:异步清零信号(--接+5V) 返回 ❖ CP:时钟脉冲(--B-DA1、 B-DA2)
74LS245
B0 B1 B2 B3 B4 B5 B6 B7
18 17 16 15 14 13 12 11
D0 D1
D2 D3 D4 D5 D6 D7
19 1
E D IR
地址
Ai
+5
❖ 只有当I/O-R#和Ai同时=0时E#打开,开关 值BUS(D7~D0)
2、Input Device
❖ 输入设备(开关)的工作过程:
0FFH+01H (算术加) 5BH+0A0H+FC(算术加) 5BH∧0A0H(逻辑与) 79H+32H+FC(算术加)
返回
(一)实验原理逻辑框图
T4
74299
299-B M
S0 S1 S2 S3
ALU UNIT
ALU (74LS181) T4
进位 判零 电路
ALU-B
CyCn CyNCn M Ci
B-DA1
DA1 (74LS273)
DA2 (74LS273)
B-DA2
I/O-R INPUT
Ai=“0”
计算机组成原理运算器实验报告
计算机组成原理运算器实验报告计算机组成原理运算器实验报告1. 简介本报告旨在介绍我们小组进行的计算机组成原理运算器实验,包括实验目的、实验过程、实验结果以及总结。
2. 实验目的•理解运算器在计算机系统中的作用和原理。
•掌握运算器设计和实现的基本方法。
•熟悉计算机寄存器的结构和功能。
•熟练使用Verilog HDL进行电路设计和仿真。
3. 实验过程实验准备•阅读相关教材和文献,了解运算器的基本原理和设计方法。
•确定实验所需的功能和性能要求。
•分析运算器的输入输出信号及其功能。
•设计运算器的数据通路和控制逻辑。
运算器设计与实现1.根据实验要求,设计运算器的数据通路和控制逻辑,并使用Verilog HDL进行电路定义。
2.编写仿真测试程序,验证设计的运算器在不同情况下的正确性和性能。
3.将设计的电路综合为目标器件,并进行逻辑门级的仿真和验证。
4.将综合结果下载到目标芯片上进行验证和测试。
实验结果•实验结果表明,设计的运算器在满足要求的情况下能够正确地完成各种运算操作。
•通过仿真和验证,验证了运算器的正确性和性能。
4. 实验总结•本实验通过设计和实现计算机组成原理运算器,进一步加深了我们对运算器原理和设计的理解。
•验证了运算器的正确性和性能,提高了我们的动手实践能力和团队协作能力。
•在实验过程中,我们遇到了一些问题和挑战,但通过不断学习和尝试,最终解决了这些问题。
•通过本次实验,我们深刻认识到如何将理论知识应用于实际问题的重要性,同时也意识到了自己在计算机组成原理领域的不足之处,将继续努力提高自己的能力。
5. 参考文献•张泽民. 计算机组成原理. 电子工业出版社, 2018. •Patterson, D. A., & Hennessy, J. L. (2017). Computer Organization and Design: The Hardware Software Interface.Morgan Kaufmann.。
计算机组成原理实验一运算器组成实验
实验一 运算器组成实验一、实验目的1.熟悉双端口通用寄存器堆的读写操作。
2.熟悉简单运算器的数据传送通路。
3.验证运算器74LS181的算术逻辑功能。
4.按给定数据,完成指定的算术、逻辑运算。
二、实验电路ALU-BUS#DBUS7DBUS0Cn#C三态门(244)三态门(244)ALU(181)ALU(181)S3S2S1S0MA7A6A5A4F7F6F5F4F3F2F1F0B3B2B1B0Cn+4CnCnCn+4LDDR2T2T2LDDR1LDRi T3SW-BUS#DR1(273)DR2(273)双端口通用寄存器堆RF(ispLSI1016)RD1RD0RS1RS0WR1WR0数据开关(SW7-SW0)数据显示灯A3A2A1A0B7B6B5B4图3.1 运算器实验电路LDRi T3AB三态门R S -B U S #图3.1示出了本实验所用的运算器数据通路图。
参与运算的数据首先通过实验台操作板上的八个二进制数据开关SW7-SW0来设置,然后输入到双端口通用寄存器堆RF 中。
RF(U54)由一个ispLSI1016实现,功能上相当于四个8位通用寄存器,用于保存参与运算的数据,运算后的结果也要送到RF 中保存。
双端口寄存器堆模块的控制信号中,RS1、RS0用于选择从B 端口(右端口)读出的通用寄存器,RD1、RD0用于选择从A 端口(左端口)读出的通用寄存器。
而WR1、WR0用于选择写入的通用寄存器。
LDRi 是写入控制信号,当LDRi=1时,数据总线DBUS上的数据在T3写入由WR1、WR0指定的通用寄存器。
RF的A、B端口分别与操作数暂存器DR1、DR2相连;另外,RF的B端口通过一个三态门连接到数据总线DBUS上,因而RF中的数据可以直接通过B端口送到DBUS上。
DR1(U47)和DR2(U48)各由1片74LS273构成,用于暂存参与运算的数据。
DR1接ALU 的A输入端口,DR2接ALU的B输入端口。
运算器实验-计算机组成原理
实验题目运算器实验一、算术逻辑运算器1.实验目的与要求:1.掌握算术逻辑运算器单元ALU(74LS181)的工作原理。
2.掌握简单运算器的数据传送通道。
3.验算由74LS181等组合逻辑电路组成的运算功能发生器运算功能。
4.能够按给定数据,完成实验指定的算术/逻辑运算。
2.实验方案:(一)实验方法与步骤1实验连线按书中图1-2在实验仪上接好线后,仔细检查正确与否,无误后才接通电源。
每次实验都要接一些线,先接线再开电源,这样可以避免烧坏实验仪。
2 用二进制数据开关分别向DR1寄存器和DR2寄存器置数。
3 通过总线输出寄存器DR1和DR2的内容。
(二)测试结果3.实验结果和数据处理:1)SW-B=0时有效,SW-B=1时无效,因其是低电平有效。
ALU-B=0时有效,ALU-B=1时无效,因其是低电平有效。
S3,S2,S1,S0高电平有效。
2)做算术运算和逻辑运算时应设以下各控制端:ALU-B SW-B S3 S2 S1 S0 M Cn DR1 DR23)输入三态门控制端SW-B和输出三态门控制端ALU-B不能同时为“0”状态,否则存在寄存器中的数据无法准确输出。
4)S3,S2,S1,S0是运算选择控制端,有它们决定运算器执行哪一种运算;M是算术逻辑运算选择,M=0时,执行算术运算,M=1时,执行逻辑运算;Cn是算术运算的进位控制端,Cn=0(低电平),表示有进位,运算时相当于在最低位上加进位1,Cn=1(高电平),表示无进位。
逻辑运算与进位无关;、ALU-B是输出三态门控制端,控制运算器的运算结果是否送到数据总线BUS上。
低电平有效。
SW-B是输入三态门的控制端,控制“INPUT DEVICE”中的8位数据开关D7~D0的数据是否送到数据总线BUS上。
低电平有效。
5)DR1、DR2置数完成后之所以要关闭控制端LDDR1、LDDR2是为了确保输入数据不会丢失。
6)A+B是逻辑运算,控制信号状态000101;A加B是算术运算,控制信号状态100101。
计算机组成原理实验(接线、实验步骤)方案
实验一运算器[实验目的]1.掌握算术逻辑运算加、减、乘、与的工作原理;2.熟悉简单运算器的数据传送通路;3.验证实验台运算器的8位加、减、与、直通功能;4.验证实验台4位乘4位功能。
[接线]功能开关:DB=0 DZ=0 DP=1 IR/DBUS=DBUS接线:LRW:GND(接地)IAR-BUS# 、M1、M2、RS-BUS#:接+5V控制开关:K0:SW-BUS# K1:ALU-BUSK2:S0 K3:S1 K4:S2K5:LDDR1 K6:LDDR2[实验步骤]一、(81)H与(82)H运算1.K0=0:SW开关与数据总线接通K1=0:ALU输出与数据总线断开2.开电源,按CLR#复位3.置数(81)H:在SW7—SW0输入10000001→LDDR2=1,LDDR1=0→按QD:数据送DR2置数(82)H:在SW7—SW0输入10000010→LDDR2=0,LDDR1=1→按QD:数据送DR1 4.K0=1:SW开关与数据总线断开K1=1:ALU输出与数据总线接通5. S2S1S0=010:运算器做加法(观察结果在显示灯的显示与进位结果C的显示)6.改变S2S1S0的值,对同一组数做不同的运算,观察显示灯的结果。
二、乘法、减法、直通等运算1.K0K1=002.按CLR#复位3.分别给DR1和DR2置数4.K0K1=115. S2S1S0取不同的值,执行不同的运算[思考]M1、M2控制信号的作用是什么?运算器运算类型选择表选择操作S2 S1 S00 0 0 A&B0 0 1 A&A(直通)0 1 0 A+B0 1 1 A-B1 0 0 A(低位)ΧB(低位)完成以下表格ALU-BUS SW-BUS# 存储器内容S2S1S0 DBUS C输入时:计算时:DR1:01100011DR2:10110100(与)DR1:10110100DR2:01100011(直通)DR1:01100011DR2:01100011(加)DR1:01001100DR2:10110011(减)DR1:11111111DR2:11111111(乘)实验二双端口存储器[实验目的]1.了解双端口存储器的读写;2.了解双端口存储器的读写并行读写及产生冲突的情况。
计算机组成原理 -实验一运算器组成实验_
三.实验内容
验证74LS181的算术运算和逻辑运算功能(采 用正逻辑)
改变运算器的功能设置,观察运算器的输出。
SW-B=1、ALU-B=0保持不变 在给定DR1=65、DR2=A7的情况下,改变运算器的功
能设置,观察运算器的输出,填入下表中,并和理论分 析进行比较、验证。 例如:置S3 S2 S1 S0 M CN为 1 0 0 1 0 1 运算器做加 法运算;
45
4.实验步骤
4.对源程序进行编译
在左方Source in Project栏中选中第二行ispLSI1032-70LJ84, 在右方Process for current Source栏中双击第七行JEDEC File按钮,则开始编译。如果编译正确,则生成可下载的文 件JEDEC File,即使出现警告提示,也表示已成功生成了可 下载文件。如果提示错误,则需要修改程序,然后重新编译。
40
3.实验原理
对该器件的逻辑系统设计是通过使用硬件描述 语言活原理图输入来实现的,硬件描述语言有 ABEL、VHDL等多种语言。
为了方便同学学习,这里以硬件描述语言进行 编程,描写器件功能,下面用ABEL语言编程 来实现一个加法器。
41
4.实验步骤
1.安装EDA。
打开计算机电源,进入windows系统,安装上述 ispDesignEXPERT软件,安装完成后,桌面和开始菜单中 则建有ispDesignEXPERT软件图标。
5
三.实验内容
图中已将用户需要连接的控制信号用圆圈标明(其 他实验相同,不再说明),其中除T4为脉冲信号, 其它均为电平信号。由于实验电路中的时序信号均 已连至“W/R UNIT”的相应时序信号引出端,因此, 在进行实验时,只需将“W/R UNIT”的T4接至 “STATE UNIT”的微动开关KK2的输出端,按动微 动开关,即可获得实验所需的单脉冲,而S3、S2、 S1、S0 、Cn、M、LDDR1、LDDR2、ALU-B、 SW-B各电平控制信号用“SWITCH UNIT”中的二 进制数据开关来模拟,其中Cn、ALU-B、SW-B为 低电平有效,LDDR1、LDDR2为高电平有效。
组成原理实验(四)-运算器实验
计算机组成原理 实验(四)实验项目名: 运算器实验 实验要求实验要求::通过实验,理解算术逻辑单元的组成部件,各部件的功能,以及算术逻辑单元的工作原理,掌握简单运算器的数据传输和控制过程,理解74LS181和74LS182芯片的组合功能。
实验内容:(1)完成电路连接。
将运算器单元、输入模块和输出模块挂接到总线上,连接好时序启停模块,为运算器工作提供基本的时序参考信号。
(2)分析运算器电路的数据通路,确定运算器完成一次逻辑/算术运算所需的控制序号序列,根据其发生的先后时序关系,写出相应的微控制信号序列。
(3)通过实验台的微控制输入开关,逐条的输入微控制信号,通过输入单元输入运算数据,在控制信号和时序信号的作用下,利用单步工作模式,控制运算器工作,观察输出的计算结果。
通过实验完成下表:DR1 DR2 S3 S2 S1 S0 M=0,CN= 1 M=0,CN = 0 M =1 65 A7 0 0 0 0 F= F= F= 65 A7 0 0 0 1 F= F= F= 65 A7 0 0 1 0 F= F= F= 65 A7 0 0 1 1 F= F= F= 65 A7 0 1 0 0 F= F= F= 65 A7 0 1 0 1 F= F= F= 65 A7 0 1 1 0 F= F= F= 65 A7 0 1 1 1 F= F= F= 65 A7 1 0 0 0 F= F= F= 65 A7 1 0 0 1 F= F= F= 65 A7 1 0 1 0 F= F= F= 65 A7 1 0 1 1 F= F= F= 65A71 1 0 0F=F=F=65 A7 1 1 0 1 F= F= F= 65 A7 1 1 1 0 F= F= F= 65 A71 1 1 1F=F=F=详细说明详细说明::(1)实验中涉及到的运算器模块与总线结构的逻辑示意图如下所示。
运算器模块包括两个输入端寄存器DR1和DR2,数据通过总线传送到这两个寄存器里,而后操作ALU 控制信号,使ALU 进行相应的操作,最后将运算结果送到总线上。
计算机组成原理-运算器实验
实验一运算器实验计算机的一个最主要的功能就是处理各种算术和逻辑运算,这个功能要由CPU 中的运算器来完成,运算器也称作算术逻辑部件ALU。
首先安排基本运算器实验,了解运算器的基本结构。
1.1实验目的(1) 了解运算器的组成结构。
(2) 掌握运算器的工作原理。
1.2实验设备PC机一台,Digilent Nexys 4TM开发板,Xilinx Vivado开发套件。
1.3实验原理Digilent Nexys 4TM开发板的通用I/O设备电路图如图1.1所示:图1.1Digilent Nexys 4TM开发板的通用I/O设备电路图如上所示,Nexys4 DDR板包括2个三色LED,16个滑动开关,6个按钮开关,16个单体LED和1个数字-8的七段显示器。
为了防止粗心大意的短路(假如一个FPGA针脚分派到一个按钮开关或者滑动开关被粗心大意的定为输出时将发生短路)损害,按钮开关和滑动开关通过串联电阻连接到FPGA。
5个按钮开关分派到1个“+”信号的配置是瞬时开关,在正常情况下,这些瞬时开关不用时产生低信号输出,被压时产生高信号输出。
另一方面,“CPU RESET”红色按钮不用时产生高信号输出,被压时产生低信号输出。
“CPU RESET”按钮常常在EDK(嵌入式开发套件)设计中用于重置进程,但你也可以把它当为常用按钮开关使用。
滑动开关根据他们的位置产生固定的高或低信号输入。
16个单体高效LED通过330欧姆的电阻阳极连接到FPGA,所以当其各自I/O 针脚应用到逻辑高电压时他们应该是打开的。
不被用户访问的额外LED表示电源,FPGA编程状态和USB和以太网端口状态。
控制显示模块的七段显示器的原理图如图1.2所示:图1.2七段显示器原理图Nexys4 DDR板包含2个4位同阳极7段LED显示器,配置表现得像1个8位数字显示。
8位数字的每一个由分派在一个“数字8”图案中的7段组成,每段嵌入1个LED。
如图17所示,每段LED是单独发光,所以128种模式的任何一个可以通过使某些LED段发光和另外的不发光显示在一个数字上。
计算机组成原理实验-运算器实验报告
当A=10000000,B=00110010时
F=01111111
(5)S3S2S1S0=1101时,F=A加1。例如:
当A=00110101,B=00110101时,F=00 Nhomakorabea10110
当A=11100011,B=00100010时
F=11100100
F=00100000,FC灯亮,表示有进位
(3)S3S2S1S0=1011时,F=A减B。例如:
当A=00110101,B=00110101时,
F=00000000
当A=01011011,B=00111010时
F=00100001
(4)S3S2S1S0=1100时,F=A减1。例如:
当A=00110101,B=00110101时,
计算机组成原理实验运算器实验报告基本运算器实验报告运算器的组成部分运算器实验报告运算器及移位实验计算机组成原理实验运算器运算器的主要功能是运算器的主要功能运算器的功能
1.逻辑运算
(1)S3S2S1S0=0000时,F=A,例如:
当A=00010101,B=01101001时
F=00010101;
当A=01011000时,B=01011110时
当A=11000011,B=00111100时
F=00000000
(4)S3S2S1S0=0011时,F=A+B。例如:
当A=00110101,B=11001010时,
F=11111111
当A=01011011,B=11000101时
F=11011111
(5)S3S2S1S0=0100时,F=/A。例如:
F=00011101
当A=01000111,B=00000101时
《计算机组成原理》实验报告——运算器
南通大学信息科学技术学院《计算机组成实验》实验报告实验运算器的设计与实现一、实验目的1.熟悉Vivado软件的使用方法。
2.熟悉运算器的功能。
3.掌握自顶而下的硬件模块设计方法。
4.掌握电路仿真测试方法,掌握仿真激励文件的编写,掌握仿真输出的分析方法。
二、实验任务设计一个运算器,具有基本的加、减、与、非、异或等功能。
三、设计步骤(1)实验电路原理及信号说明运算器的逻辑结构如图所示:其中Aluc操作码对应功能如下:具体设计如下:本实验采用运算部件并行多路选择实现,运用了32位加/减法器,32位移位器,32位6选1选择器。
(2)实验电路设计顶层文件:module ALU(X,Y,Aluc,R,Z);input[31:0]X,Y;input[3:0]Aluc;output[31:0]R;output Z;wire[31:0]d_as,d_and,d_or,d_xor,d_lui,d_sh,d;ADDSUB_32 as32(X,Y,Aluc[0],d_as);assign d_and=X&Y;assign d_or=X|Y;assign d_xor=X^Y;assign d_lui={Y[15:0],16'h0};SHIFTER shift(Y,X[10:6],Aluc[3],Aluc[1],d_sh);MUX6X32 select(d_and,d_or,d_xor,d_lui,d_sh,d_as,Aluc[3:0],R);assign Z=~|R;endmodule32位加法/减法计算器:module ADDSUB_32(X,Y,Sub,S);input [31:0]X,Y;wire Cout;input Sub;output [31:0]S;CLA_32 adder0(X,Y^{32{Sub}},Sub,S,Cout);endmodule32位CLA运算器8x4位:module CLA_32(X,Y,Cin,S,Cout);input[31:0]X,Y;input Cin;output[31:0]S;output Cout;wire Cout0,Cout1,Cout2,Cout3,Cout4,Cout5,Cout6;CLA_4 add0(X[3:0],Y[3:0],Cin,S[3:0],Cout0);CLA_4 add1(X[7:4],Y[7:4],Cout0,S[7:4],Cout1);CLA_4 add2(X[11:8],Y[11:8],Cout1,S[11:8],Cout2);CLA_4 add3(X[15:12],Y[15:12],Cout2,S[15:12],Cout3);CLA_4 add4(X[19:16],Y[19:16],Cout3,S[19:16],Cout4);CLA_4 add5(X[23:20],Y[23:20],Cout4,S[23:20],Cout5);CLA_4 add6(X[27:24],Y[27:24],Cout5,S[27:24],Cout6);CLA_4 add7(X[31:28],Y[31:28],Cout6,S[31:28],Cout);Endmodule4位CLA运算器:module CLA_4(X,Y,Cin,S,Cout);input [3:0]X,Y;output Cout;input Cin;output [3:0]S;and i0(Y_3,X[3],Y[3]);or i1(X_3,X[3],Y[3]);and i2(Y_2,X[2],Y[2]);or i3(X_2,X[2],Y[2]);and i4(Y_1,X[1],Y[1]);or i5(X_1,X[1],Y[1]);and i6(Y_0,X[0],Y[0]);or i7(X_0,X[0],Y[0]);not i01(Y_31,Y_3);nand i02(Y_32,X_3,Y_2);nand i03(Y_33,X_3,X_2,Y_1);nand i04(Y_34,X_3,X_2,X_1,Y_0);nand i05(Y_35,X_3,X_2,X_1,X_0,Cin);nand i00(Cout,Y_31,Y_32,Y_33,Y_34,Y_35);//Cout的输出门级电路实现not i_2(Y__3,Y_3);and i21(Y_21,Y__3,X_3);not i22(Y_22,Y_2);nand i23(Y_23,X_2,Y_1);nand i24(Y_24,X_2,X_1,Y_0);nand i25(Y_25,X_2,X_1,X_0,Cin);nand i26(Y_26,Y_22,Y_23,Y_24,Y_25);xor i20(S[3],Y_21,Y_26);//S3的输出门级电路实现not i_1(Y__2,Y_2);and i11(Y_11,Y__2,X_2);not i12(Y_12,Y_1);nand i13(Y_13,X_1,Y_0);nand i14(Y_14,X_1,X_0,Cin);nand i15(Y_15,Y_12,Y_13,Y_14);xor i10(S[2],Y_11,Y_15);//S2的输出门级电路实现not i_0(Y__1,Y_1);and i51(Y_51,Y__1,X_1);not i52(Y_52,Y_0);nand i53(Y_53,X_0,Cin);nand i54(Y_54,Y_52,Y_53);xor i50(S[1],Y_51,Y_54);//S1的输出门级电路not i41(Y__0,Y_0);and i42(Y_4,Y__0,X_0);xor i40(S[0],Y_4,Cin);//S0的输出门级电路endmodule32位移位器:module SHIFTER(X,Sa,Arith,Right,Sh);input [31:0]X;//操作数input [4:0]Sa;//移位长度input Arith,Right;//right表示判断左移还是右移,arith判断逻辑还是算术移位output [31:0]Sh;//输出结果wire [31:0]T4,T3,T2,T1,T0,S4,S3,S2,S1;wire a=X[31]&Arith;wire [15:0]e={16{a}};parameter z=16'b0000000000000000;wire [31:0]L1u,L1d,L2u,L2d,L3u,L3d,L4u,L4d,L5u,L5d;assign L1u={X[15:0],z[15:0]};assign L1d={e,X[31:16]};MUX2X32 M1l(L1u,L1d,Right,T4);MUX2X32 M1r(X,T4,Sa[4],S4);//1assign L2u={S4[23:0],z[7:0]};assign L2d={e[7:0],S4[31:8]};MUX2X32 M2l(L2u,L2d,Right,T3);MUX2X32 M2r(S4,T3,Sa[3],S3);//2assign L3u={S3[27:0],z[3:0]};assign L3d={e[3:0],S3[31:4]};MUX2X32 M3l(L3u,L3d,Right,T2);MUX2X32 M3r(S3,T2,Sa[2],S2);//3assign L4u={S2[29:0],z[1:0]};assign L4d={e[1:0],S2[31:2]};MUX2X32 M4l(L4u,L4d,Right,T1);MUX2X32 M4r(S2,T1,Sa[1],S1);//4assign L5u={S1[30:0],z[0]};assign L5d={e[0],S1[31:1]};MUX2X32 M5l(L5u,L5d,Right,T0);MUX2X32 M5r(S1,T0,Sa[0],Sh);Endmodule32位6选1功能选择器:module MUX6X32(d_and,d_or,d_xor,d_lui,d_sh,d_as,Aluc,d);input [31:0]d_and,d_or,d_xor,d_lui,d_sh,d_as;input [3:0]Aluc;output [31:0]d;function [31:0]select;input [31:0]d_and,d_or,d_xor,d_lui,d_sh,d_as;input [3:0]Aluc;case(Aluc)4'b0000:select=d_as;4'b0001:select=d_as;4'b0010:select=d_and;4'b0011:select=d_or;4'b0100:select=d_xor;4'b0110:select=d_lui;4'b0101:select=d_sh;4'b0111:select=d_sh;4'b1111:select=d_sh;4'b1101:select=d_sh;endcaseendfunctionassign d=select(d_and,d_or,d_xor,d_lui,d_sh,d_as,Aluc); endmoduleRTL视图如下:四、实验仿真结果分析1.仿真测试文件:module sim();// ALU Inputsreg [31:0] X;reg [31:0] Y;reg [3:0] Aluc;// ALU Outputswire [31:0] R;wire Z;ALU u_ALU (.X ( X ),.Y ( Y ),.Aluc ( Aluc ),.R ( R ),.Z ( Z ) );initial beginAluc[3:0] = 0;X[31:0] = 3;Y[31:0] =2;#50;endalways #200 Aluc=Aluc+1;endmodule2.仿真测试波形:3.仿真测试结果分析开始时设置两个操作数X为3,Y为2;Aluc为0时执行加法运算,结果为5;Aluc为1时执行减法运算,结果为1;Aluc为2时执行与运算,结果为2;Aluc为3时执行或运算,结果为3;Aluc为4时执行异或运算,结果为1;……分析可知,设计符合实验要求。
组成原理课程设计
计算机组成原理课程设计报告项目名称:计算机简单模型设计——运算器作者姓名:专业:计算机科学与技术学号:指导教师:完成日期:2011年12月23日太原工业学院计算机工程系目录摘要 (3)关键词 (3)正文 (3)2.1运算器部分: (3)2.2存储器部分 (4)2.3寄存器部分 (6)2.4时序电路部分 (6)2.5输入输出接口电路 (7)3.1对试验结果的分析讨论及理论计算结果的比较 (8)3.2调试与性能分析 (9)结论 (12)参考文献 (12)摘要本课程设计综合运用运算器、控制器、存储器、输入输出系统、总线等部件和辅助电路,完成一个运算器计算机的设计和实现(包括硬件和软件)。
用Proteus 7 Professional 软件实现设计上述功能,通过这次课程设计实现了运算器功能关键词基本模型机的设计;运算器;存储器;控制器;输入输出系统;总线等部件和辅助电路正文1、总体思路:就是在存储器内取数据到寄存器然后到运算器然后存入另一个寄存器,通过总线存入另一个存储器2、理论分析2.1运算器部分:74LS1812.2存储器部分双向八总线收发器74LS245是8路同相三态双向总线收发器,可双向传输数据。
74LS245还具有双向三态功能,既可以输出,也可以输入数据。
*当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输(接收)DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态。
存储器6264:A0~A12为13根地址线,i/O0~O7八根数据线,CS1,CS2为两个片选端,OE为为数据输出选通端,WR为写信号控制信号CS 数据线读L H H L 输出写L H L ×输入非选H ×××高阻态非选×L ××高阻态输出禁止L H H H高阻态2.3寄存器部分寄存器74LS373:当三态允许控制端OE 为低电平时,O0~O7 为正常逻辑状态,可用来驱动负载或总线。
计算机组成原理全部实验
计算机科学技术系王玉芬2012年11月3日基础实验部分该篇章共有五个基础实验组成,分别是:实验一运算器实验实验二存储器实验实验三数据通路组成与故障分析实验实验四微程序控制器实验实验五模型机CPU组成与指令周期实验实验一运算器实验运算器又称作算术逻辑运算单元(ALU),是计算机的五大基本组成部件之一,主要用来完成算术运算和逻辑运算。
运算器的核心部件是加法器,加减乘除运算等都是通过加法器进行的,因此,加快运算器的速度实质上是要加快加法器的速度。
机器字长n位,意味着能完成两个n位数的各种运算。
就应该由n个全加器构成n位并行加法器来实现。
通过本实验可以让学生对运算器有一个比较深刻的了解。
一、实验目的1.掌握简单运算器的数据传输方式。
2.掌握算术逻辑运算部件的工作原理。
3. 熟悉简单运算器的数据传送通路。
4. 给定数据,完成各种算术运算和逻辑运算。
二、实验内容:完成不带进位及带进位的算术运算、逻辑运算实验。
总结出不带进位及带进位运算的特点。
三、实验原理:1.实验电路图图4-1 运算器实验电路图2.实验数据流图图4-2 运算器实验数据流图3.实验原理运算器实验是在ALU UNIT单元进行;单板方式下,控制信号,数据,时序信号由实验仪的逻辑开关电路和时序发生器提供,SW7-SW0八个逻辑开关用于产生数据,并发送到总线上;系统方式下,其控制信号由系统机实验平台可视化软件通过管理CPU来进行控制,SW7-SW0八个逻辑开关由可视化实验平台提供数据信号。
(1)DR1,DR2:运算暂存器,(2)LDDR1:控制把总线上的数据打入运算暂存器DR1,高电平有效。
(3)LDDR2:控制把总线上的数据打入运算暂存器DR2,高电平有效。
(4)S3,S2,S1,S0:确定执行哪一种算术运算或逻辑运算(运算功能表见附录1或者课本第49页)。
(5)M:M=0执行算术操作;M=1执行逻辑操作。
(6)/CN :/CN=0表示ALU运算时最低位加进位1;/CN=1则表示无进位。
计算机组成原理课件-运算器设计及举例
左移 Write
Control
*
運算器實現
• ALU完成算術、邏輯運算。 • 寄存器組存放數據和結果 • 輔助寄存器完成中間結果的存放 • 選通門等控制數據通行 • 需要哪些控制信號?
ALU
*
實現補數加減運算的邏輯電路
Fs OVR
Z C
FX
F1
Fs F ALU
F 加F
F /Y
FY
選通門 二選通門
Multiplican d
32 bits
32-bit ALU
Product (Multiplier) 64 bits
Shift Right Write
Control
*
除法的實現
• 32-位除數寄存器, 32 -位ALU, 64-位餘數 (被除數)寄存器
除數 32 bits
32-bit ALU
餘數 64 bits
實現補數加減運算的邏輯電路
輸出
Fs
OVR
F1
Z
ALU
C
選通門 選通門
輸入 通用寄存器組
選通門
必要完善:
單累加器變多累積器: 兩個選通門均變為多路 送0還是送1到ALU處理 接收門送每個累加器。 支持寄存器移位功能: 接收門變為三選一,即 分別接收本位/低位/高 位送來的資訊送累加器 與外部部件的入出聯繫 *
100
RS
101
RS
110
RS
111
RS
Am2901晶片是 一個 4 位的位片結 構的運算器器件,內 部組成講解如下
其輸出為 F, 兩 路輸入為 S、R,最 低位進位Cn, 4 個狀態輸出信號,如 圖所示
第一個組成部分是 算邏運算部件ALU, 完成 3 種算術運算 和 5 種邏輯運算 , 共 8 種運算功能
计算机组成原理—运算器实验
计算机组成原理—运算器实验计算机组成原理实验报告实验⼀运算器实验⼀、实验⽬的1、掌握简单运算器的数据传输⽅式。
2、验证运算功能发⽣器(74LS181)及进位控制的组合功能。
⼆、实验要求完成不带进位及带进位算术运算实验、逻辑运算实验,了解算数逻辑运算单元的运⽤。
三、实验原理实验中所⽤的运算器原理如下图(初略图)。
其中运算器由两⽚74LS181以并、串形式构成8位字长的ALU。
运算器的输出经过⼀个三态门(74LS245)和数据总线连接,运算器的两个数据输⼊端分别由两个锁存器(74LS273)锁存,锁存器的输⼊已连接到数据总线,数据开关(INPUT UNIT)已和数据总线连接,⽤来显⽰数据总线内容。
本实验装置的控制线(CTR-IN UNIT)应与(CTR-OUT UNIT)连接,数据总线、时序电路(TIME UNIT)产⽣的脉冲信号(他-听)、P(1)、P(2)、P(3)本实验装置已连接,(CLK UNIT)必须选择⼀档合适的时钟,其余均为电平控制信号(HC-UNIT)。
进⾏实验时,⾸先按动位于本实验装置右中侧的复位按钮,使系统进⼊初始待命状态,在LED显⽰器闪动出现“P”的环境下,按动增址命令键使LED显⽰器⾃左向右第⼀位显⽰提⽰符“H”,表⽰本装置已进⼊⼿动单元实验状态,在该状态下按动单步命令建,即可获得实验所需的单脉冲信号,⽽各电平控制信号位于LED显⽰器左⽅的K25-K0⼆进制数据开关来模拟。
注意:在进⾏⼿动实验时,必须先预置开关点电平:/Load=1,/CE=1,其余开关控制信号电平均置为0。
四、实验连接1、⼋位运算器控制信号连接:位于实验装置左上⽅的控制信号(CTR-INUNIT)中的(S3、S1、S0、M、/CN、LDDR1、LDDR2、LDCZY、/SW-B、/ALU-B)与位于实验装置右中⽅的(CTR-IN UNIT)、左下⽅INPUT-UNIT中的(/SW-B)右上⽅CTR-IN (/ALU-B)作对应连接,实验装置中上⽅信号Cn+4与Cn+4I相连。
16位运算器的设计
《计算机组成原理课程设计》 —— 十六位运算器部件的设计一、运算器概述根据冯﹒诺依曼的计算机模型,计算机由运算器、控制器、存储器、输入设备和输出设备五大部件构成,其中运算器是执行各种算术和逻辑运算操作的核心部件。
运算器的基本操作包括:1)加、减、乘、除等算术运算 2)与、或、非、异或等逻辑运算 3)数据传送、移位、比较等操作运算器的组成除了算术/逻辑运算(ALU )单元外,还包括必要的寄存器和移位器等部件。
寄存器用于存放操作数和运算结果,以节省访问存储器的时间。
移位器实现数据的移位功能,以扩展ALU 的运算功能,增加数据传送的灵活性。
从功能和电路上看,运算器的可分为两部分:数据运算电路和数据暂存电路。
在讨论运算器结构时,需要明确几个问题:1)参加运算的数据来源及结果去向运算器能直接运算的数据通常来自运算器本身的寄存器。
运算器内部的寄存器能够以最快的速度提供参加运算的数据,因此运算器内部通常设有一定数量的数据寄存器。
为此需要能够指定参加运算的两个寄存器的地址。
运算的结果通常存放在寄存器中,应能指定接收数据的寄存器。
此外,还必须明确在时间上的关系,即什么时刻送出数据参加运算,什么时刻才能正确接收运算的结果。
图1和图2给出了示意性的表示。
图1 运算器组成示意图 图2 一个运算周期中各种操作的时间关系2)明确将要执行的运算功能除指出数据操作的具体类型外,还需确定什么时刻可以开始指定运算处理,什么时刻可以得控制信号的建立时间寄存器内容送出时间运算器执行运算时间运算结果到寄存器输入端时间寄存器接收运算结果时间送出结果数据输入控制信号到正确的运算结果。
完成数据运算功能的电路是纯组合逻辑电路,即其输出结果随输入的变化而变化,其输出结果的稳定主要取决于输入数据的稳定,电路本身没有记忆功能,因此输入数据需要有锁存器来保持稳定。
3)运算器需要与计算机的其它部件连接起来协调工作运算器必须能够接收计算机其它部件(如存储器、I/O 设备)送来的数据,以保障源源不断的数据来源,同时把运算结果送到计算机的其它部件,以体现运算处理的效能和使用价值。
《计算机组成原理》实验教学教案.doc
实验一运算器实验一、实验目的:(1)结合学过的有关运算器的基本知识,掌握运算器的基木组成、工作原理。
特别是了解算术逻辑运算单元ALU的工作原理;(2)验证多功能算术单元74181、74182的运算功能;(3)熟悉掌握木实验中运算器的数据传输通路。
二、实验要求(1)预习74181、74182的工作原理及逻辑关系;(2)测量数据要求准确;(3)写出实验报告。
三、实验内容1、实验原理实验屮的运算器由两片74LS181以并/串形成8位字长的ALU构成。
运算器的输出经过一个三态门74LS245到ALUO1插座,实验时用8芯排线和内部数据总线BUSDO〜D7插座BUS 1-6中的任一个相连,内部数据总线通过LZDO〜LZD7 显示灯显示;运算器的两个数据输入端分别由二个锁存器74LS273锁存,两个锁存器的输入并联后连至插座ALUBUS,实验时通过8芯排线连至外部数据总线EXDO〜D7插座EXJ1〜EXJ3中的任一个;参与运算的数据来自于8位数据开关KD0~KD7,并经过一三态门74LS245直接连至外部数据总线EXDO〜EXD7, 通过数据开关输入的数据由LDO〜LD7显示。
算术逻辑运算功能发生器74LS181的功能控制信号S3、S2、SI、SO、CN、M并行相连后连至SJ2插座,实验时通过6芯排线连至6位功能开关插座UJ2, 以手动方式用二进制开关S3、S2、SO、CN、M来模拟74LS181的功能控制信号S3、S2、SI、SO、CN、M;其他电平控制信号也由二进制开关来模拟。
2、实验接线本实验主要用到4个主要模块:(1)低8位运算器模块;(2)数据输入并显示模块;(3)数据总线显示模块;(4)功能开关模块。
根据实验原理详细接线如下:(1)ALUBUS 连EXJ3;(2)ALUO1 连BUSI;(3)SJ2 连UJ2;(4)跳线器J23 ± T4连SD;(5)LDDR1、LDDR2、ALUB、SWB四个跳线器拨在左边(手动方式);(6)AR跳线器拨在左边,同时开关AR拨在T”电平。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
同理,可以推导出C7、C11、C15的逻辑表达式
C7=G4_1+P4_1 C3 C11=G4_2+P4_2 C7 C 15 G 4 _ 3 P 4 _ 3 C 11 C3=G4_0+P4_0 C_in C7=G4_1+P4_1G4_0+P4_1P4_0 C_in C11=G4_2+P4_2G4_1+P4_2P4_1G4_0+P4_2P4_1P4_0 C_in C15=G4_3+P4_3G4_2+P4_3P4_2G4_1+P4_3P4_2P4_1G4_0 +P4_3P4_2P4_1P4_0 C_in
华南师范大学计算机学院 吴继明老师 Tel:156 262 15986 E-mail:wujm1170@
一. 运算器的设计——无符号数的加法/减法
1. 一位二进制数全加器FA、全减器FS的设计: 2. 四位无符号二进制数并行加法器的设计:
3. 超前进位电路的设计:
4. 八位无符号二进制数并行加法器的设计: 5. 四位无符号二进制数并行减法器的设计: 6. 八位无符号二进制数并行减法器的设计: 7. 八位无符号二进制数并行加法/减法运算器的设计:
carry _ahead_4_wujm013
G4_0
carry _ahead_4_wujm013
G_4_0_0
G0_wujm013 P0_wujm013 G1_wujm013 P1_wujm013 G2_wujm013 P2_wujm013 G3_wujm013 P3_wujm013 C_in_wujm013 inst G4_0_wujm013 P4_0_wujm013 C0_wujm013 C1_wujm013 C2_wujm013 C3_wujm013
P4_0 G4_1 P4_1 G4_2 P4_2 G4_3 P4_3
P_4_0_0 C3 C7 C11 C15
inst
inst
定义Gi AiBi,Pi Ai Bi C 0 G 0 P 0 C _ in , C 1 G 1 P 1C 0 G 1 P 1G0+P1P0 C_in C2=G2+P2C1=G2+P2G1+P2P1G0+P2P1P0 C_in C 3 G 3 P 3C 2 G 3 P 3G 2 P 3P 2G 1 P 3P 2P 1G 0 P 3P 2P 1P 0 C_in 定义G 4 _ 0 G 3 P 3G 2 P 3P 2G 1 P 3P 2P 1G 0 P4_0 P 3P 2P 1P 0, 则C3=G4_0+P4_0 C_in
G0_wujm013 P0_wujm013 G1_wujm013 P1_wujm013 G2_wujm013 P2_wujm013 G3_wujm013 P3_wujm013 C_in_wujm013
G4_0_wujm013 P4_0_wujm013 C0_wujm013 C1_wujm013 C2_wujm013 C3_wujm013
项目创建中应用VHDL文件设计器件
1.单击鼠标右键,选择insert---insert node or bus.. 2.在insert node or bus对话框中,单击node finder 3.在 node finder对话框中,对 Filter 选择 pins :all,单击list 方法 1:对 Project Navitors->Files 中*.vhd 1. 建立一个文件夹存放项目,文件夹命名要反映出器件名称信息 4.把 Nodes II Found 中显示的Node 按一定顺序加入到 Selected Nodes中。 2. 在Quartus 中创建一个新项目,给项目取名字; 单击右键 create symbol files for current 5.单击 OK完成仿真文件创建 file 3. 项目创建好后,点击新建文件,选择 Desgin Files---VHDL files 6.在菜单 Edit中分别设定End 方法 Time 和 Grid Time 值 4. 包含需要使用的系统库文件: library ieee;use ieee.std_logic_1164.all; 2:打开 *.vhd 文件,在菜单 File5. 定义实体和结构体,保存文件:实体、文件名必须和项目名字完全一致 7.设定波形文件中各个输入 Node 的值,验证器件逻辑功能是否正确。 >Create/Update 中选择create symbol 6. 编译:对结构体编码好后,点击编译文件 files for current file
4/8位无符号二进制数并行加法器
1. 进位产生/传播电路:GP_circuit_4,Gi=AiBi,Pi=Ai+Bi 输入端口:A0B0~A3B3, 输出端口:G0P0~G3P3 2. 超前进位电路的推导: 3. 超前进位电路(4位)的设计:Carry_ahead_4 输入端口G0P0~G3P3,C_in;输出端口G4_0,P4_0,C0,C1,C2,C3 4. 四位无符号二进制数并行加法器:FA_4bits_unsign 4. 先行进位电路(4位):可以用超前进位电路实现 5. 八位无符号二进制数并行加法器:FA_8bits_unsign 输入端口:A7…A0~B7…B0,C_in 输出端口:S7…S0,ZF,CF(C7),C6,ZF标志位的产生方法:
library ieee; use ieee.std_logic_1164.all; entity FS_wjm013 is port(A_wjm013,B_wjm013,B_in_wjm013:in std_logic; S_out_wjm013,B_out_wjm013:out std_logic); end FS_wjm013; architecture one of FS_wjm013 is begin S_out_wjm013<=(A_wjm013) xor B_wjm013 xor B_in_wjm013; B_out_wjm013<=((not A_wjm013) and B_wjm013)or(((not A_wjm013) or B_wjm013)and B_in_wjm013); end one;
1. 新建项目,采用图形描述框文件(Block Diagram/Schematic File)设计 2. 项目中必须包含的底层支撑器件文件:成对的*.bsf和*.vhd或*.bsf和*.bdf。 例如:F_4bits_unsign项目中必须包含GP_Circuit_4.bsf, 而 GP_Circuit_4.bsf由其源文件GP_Circuit_4.vhd产生,因此F_4bits_unsign 项目中也必须包含GP_Circuit_4.vhd文件; 同理F_4bits_unsign项目中必须包含Carry_ahead_4.bsf,而 Carry_ahead_4.bsf由其源文件Carry_ahead_4.vhd产生,因此 F_4bits_unsign项目中也必须包含Carry_ahead_4.vhd 文件; F_4bits_unsign项目中包含FA.bsf和FA.vhd文件,是同样道理。
对simulation mode选择functioanl 10. 功能仿真:分析数据,判断器件逻辑功能是否正确。 11. 创建器件符号:创建器件符号文件*.bsf,并添加到项目文件夹中。
FA器件的设计——用VHDL Files设计
library ieee; use ieee.std_logic_1164.all; entity FA_wjm013 is port(A_wjm013,B_wjm013,C_in_wjm013:in std_logic; S_out_wjm013,C_out_wjm013:out std_logic); end FA_wjm013; architecture one of FA_wjm013 is begin S_out_wjm013<=A_wjm013 xor B_wjm013 xor C_in_wjm013; C_out_wjm013<=(A_wjm013 and B_wjm013)or((A_wjm013 or B_wjm013)and C_in_wjm013); end one;
1 0 1 0 1 0 1
1 1 0 1 0 0 1
1 1 1 0 0 0 1
FA、FS、GP_circuit_4、Carry_ahead_4的设计
1. 项目命名:器件名_姓名拼音的声母+学号后3位 2. 文件命名:必须和项目名字完全一致 3. 实体命名:必须和项目名字完全一致 4. 器件端口命名:端口名器件名_姓名拼音的声母+学号后3位 5. FA及端口命名:FA_wjm013,A_wjm013,B_wjm013, C_in_wjm013,S_out_wjm013,C_out_wjm013 6. FS及端口命名:FS_wjm013,A_wjm013,B_wjm013, B_in_wjm013,S_out_wjm013,B_out_wjm013 7. GP_circuit_4、carry_ahead_4的设计:同上
FA_4bits_unsign的设计
选择*.bdf 文件界面左侧的 Text Tool 1. 新建一个FA_4bitus_unsign 文件夹,把 FA、GP_circuit 、Carry_ahead器件的*.vhd文 件和*.bsf文件复制到该文件夹中,新建一个项目 存放于该文件夹中; (字符A),更改每个FA_4bits_unsign input中的 2. 新建文件:New files->Design Files->Block Diagram/schematic File pin_name。对 input的连接线单击右 3. 插入器件:新文件中单击右键->insert->symbol„->Libraries:Project,把该项目文 键->Properties->Name中输入该端口 件夹中的*.bsf文件全部插入新建文件中,对于需多次使用的FA器件 ,可以选择Repeat的名字 insert mode模式,摁 esc结束插入器件FA; 4. 插入输入、输出引脚:新文件中单击右键->insert->symbol„,在name搜索框中输入 “input”右侧立即出现输入引脚符号图,重复插入9个该器件;用同样的方法插入7个 “output”器件;用图形描述框设计文件时,器件对外的输入输出端口都要用插入方式 5. 输入输出引脚命名:给每个input、output符号及其连接线命名 6. 标注FA:把每个FA器件中的inst更改为FA0~FA3,所有FA的输入端口采用名字属性关联 连线,FA的S输出直接连线到相应的output器件; 7. 器件连接:根据逻辑电路图将各个器件的端口连接起来; 8. 编译、仿真:功能仿真正确后,给*.bdf文件生成符号文件*.bsf