基于ALU的八位数的加减运算和四位数的乘法和除法的运算_第1页
基于ALU的八位数的加减运算和四位数的乘法和除法的运算_第2页
基于ALU的八位数的加减运算和四位数的乘法和除法的运算_第3页
基于ALU的八位数的加减运算和四位数的乘法和除法的运算_第4页
基于ALU的八位数的加减运算和四位数的乘法和除法的运算_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

PAGE33PAGE0摘要随着半导体技术和系统设计技术的发展,传统单片机由于其尺寸小、功耗低、一些专有特性已经难以满足一些场合的需要。基于EDA软件的设计方式是借助于计算机来快速准确的完成电路的设计。设计者提出方案后,利用计算机进行逻辑分析、性能分析、时序测试,如果发现错误或方案不理想,可以重复上述过程直至得到满意的电路,然后进行硬件电路的实现。这种方法提高了设计质量,缩短了设计周期节省了设计费用,提高了产品的竞争力。本文对CPU中的ALU的设计,能够完成带进位的八位数的加减运算和四位数的乘法和除法的运算。在寄存器模块中集成了构成数据路径的所有寄存器和多路选择器,这些多路选择器受控制信号的控制,构成了数据路径中的数据传输部分。在具体设计时用HLD语言来完成所希望的电路系统,并规定器件的结构特征和电路的行为方式,然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。关键词:ALUHLDFPGAEDAAbstractWiththedevelopmentofthesemiconductortechnologyandsystemdesigntechnology,ithasbeendifficulttomeettheneedsofanumberofoccasionsbecauseofthetraditionalsinglechips’smallsize,lowpowerconsumptionandanumberofproprietaryfeatures.Basedon

EDAsoftware,thedesignusescomputertocompletethecircuitquicklyandaccurately.Aftermakingaproposal,theDesignersdologicanalysis,performanceanalysisandtimingtest,iftheyfindanerrororiftheprogramisnotsatisfactory,theyrepeattheprocessuntilitbecomeasatisfactorycircuitandthenimplementthehardwarecircuit

.Thisapproachimprovesdesignqualityandshortenthedesigncycle,savesdesigncostsandimprovesproductcompetitiveness.

Inthispaper,thedesignofALUfortheCPUcancompletetheeight-bitnumberwithcarrybitintoadditionandsubtractionoperationsandfour-digitnumberintomultiplicationanddivisionoperations.Registermoduleintegratesallregistersandmultiplexersthatconstitutethedataway.Thesemultiplexersundercontrolofthecontrolsignalsconstitutethedatatransmissionpartofdataway.

Inspecificdesign,itcompletestheexpectedelectricalsystemswithHLDlanguageandprovidesthestructuralcharacteristicsofthedeviceandcircuitbehavior.ThenwiththisintegrateddeviceandtheadapterprogramtheprogramiscompiledintoFPGAandCPLDtocontroltheinternalstructureandlogicfunctionstoachievethecorrespondinggate-levelorlower-levelstructuralnetlistfilesordownloadingfilesKeywords:ArithmeticLogicUnitFieldProgrammableGateArray 目录1、 绪论 11.1 EDA技术发展概况 11.1.1CAD阶段 11.1.2CAE阶段 11.1.3EDA阶段 11.2 PLD发展概况 21.3课题研究的内容 31.3.1设计背景介绍 31.3.2功能要求 32、EDA技术的基础知识 52.1可编程ASIC器件 52.2EDA设计工具 63、总体方案设计 73.1设计内容 73.2设计方案比较 73.3方案论证 83.4方案选择 84、单元模块设计 94.1有源晶振电路 94.2供电电路 104.3按键输入电路 114.4LED状态灯输出电路 114.5最小系统 125、软件实现 135.1软件设计 136、系统仿真及调试 196.1仿真 196.2调试 217、总结 227.1设计小结 227.2设计收获 227.3设计改进 228、参考文献 23绪论21世纪人类将全面进入信息化社会,对微电子信息技术和微电子VLSI基础技术将不断提出更高的发展要求,微电子技术仍将继续是21世纪若干年代中最为重要的和最有活力的高科技领域之一。而集成电路(IC)技术在微电子领域中占有重要的地位。且伴随着IC技术的发展,电子设计自动化(ElectronicDesignAutomation,EDA)已经逐渐成为重要的设计手段,其广泛应用于模拟与数字电路系统等许多领域。EDA技术发展概况电子设计自动化(EDA,ElectronicDesignAutomation)是指利用计算机完成电子系统的设计。EDA技术是以计算机和微电子技术为先导,汇集了计算机图形学、拓扑逻辑学、微电子工艺与结构学和计算数学等多种计算机应用学科最新成果的先进技术。EDA技术以计算机为工具,代替人完成数字系统的逻辑综合、布局布线和设计仿真等工作。设计人员只需要完成对系统功能的描述,就可以由计算机软件进行处理,得到设计结果,而且修改设计如同修改软件一样方便,可以极大地提高设计效率。根据电子设计技术的发展特征,EDA技术发展大致分为三个阶段。1.1.1CAD阶段第一阶段的特点是一些单独的工具软件,主要有PCB布线设计、电路模拟、逻辑模拟及版图的绘制等,通过计算机的使用,从而将设计人员从大量烦琐重复的计算和绘图工作中解脱出来。这个时期的EDA一般称为CAD。1.1.2CAE阶段这个阶段在集成电路与电子设计方法学以及设计工具集成化方面取得了许多成果,各种设计工具,如原理图输入、编译与连接、逻辑模拟、测试码生成、版图自动布局以及各种单元库已齐全。由于采用了统一数据管理技术,因而能够将各个工具集成为一个CAE系统。按照设计方法学制定的设计流程,可以实现从设计输入到版图输出的全程设计自动化。这个阶段主要采用基于单元库的半定制设计方法,采用门阵列和标准单元设计的各种ASIC得到了极大的发展,将集成电路工业推入了ASIC时代。1.1.3EDA阶段20世纪90年代以来,微电子技术以惊人的速度发展,其工艺水平达到了深亚微米级,在一个芯片上可集成数百万乃至上千万只晶体管,工作速度可达到GHz,这为制造出规模更大,速度更快和信息容量很大的芯片系统提供了条件,但同时也对EDA系统提出了更高的要求,并促进了EDA技术的发展。此阶段主要出现了以高级语言描述、系统仿真和综合技术为特征的第三代EDA技术,不仅极大地提高了系统的设计效率,而且使设计人员摆脱了大量的辅助性及基础性工作,将精力集中于创造性的方案与概念的构思上,下面简单介绍这个阶段EDA技术的主要特征:(1)高层综合(HLS)的理论与方法取得较大进展,将EDA设计层次由RT级提高到了系统级,并划分为逻辑综合和测试综合。(2)采用硬件描述语言HDL来描述10万门以上的设计,并形成了VHDL和VerilogHDL两种标准硬件描述语言。它们均支持不同层次的描述,使得IC的描述规范化,便于传递、交流、保存与修改,重复使用,多应用于FPGA/CPLD/EPLD的设计中。(3)可测性综合设计。(4)为带有嵌入IP模块的ASIC设计提供软硬件协同系统设计工具。协同验证弥补了硬件设计和软件设计流程之间的空隙,保证了软硬件之间的同步协调工作。(5)建立并行设计工程CE框架结构的集成化设计环境,以适应当今ASIC的如下一些特点:数字与模拟电路并存,硬件与软件设计并存,产品上市速度要快。PLD发展概况当今社会是数字化社会,数字电路应用非常广泛,其发展从电子管、晶体管、小规模集成电路SSI、MSI、LSI、VLSI到超大规模集成电路ULSI和超位集成电路GSI,其规模几乎平均每1-2年翻一番。集成电路的发展大大促进了EDA的发展,先进的EDA已从传统的“自下而上”的设计方法改变为“自上而下”的设计方法。现应用最广泛的PLD主要是现场可编程门阵列FPGA、复杂可编程逻辑期间CPLD和可擦除可编程逻辑器件EPLD。EPLD、CPLD和FPGA在内的复杂PLD迅速发展起来,并向着高密度、高速度、低功耗以及结构体系更灵活、适用范围更宽广的方向发展。可擦除可编程逻辑器件EPLD是20世纪80年代中期Altera公司推出的基于UVEPROM和CMOS技术的PLD,后来发展到采用E2CMOS工艺制作的PLD。EPLD基本逻辑单元是宏单元。宏单元由可编程的与或阵列、可编程寄存器和可编程I/O三部分组成。复杂可编程逻辑器件CPLD是20世纪80年代末Lattice公司提出的在线可编(ISP技术以后于20世纪90年代初出现的。CPLD是在EPLD的基础上发展起来的,采用CMOS工艺制作,与EPLD相比,增加了内部连线,对逻辑宏单元和I/O单元也有重大的改进CPLD包含三种结构:可编程逻辑宏单元、可编程I/O单元和可编程内部连线。现场可编程门阵列FPGA器件是Xilinx公司1985年首家推出的,它是一种新型的高密度PLD,采用CMOS-SRAM工艺制作。FPGA的结构与门阵列PLD不同,其内部由许多独立的可编程逻辑模块(CLB)组成,逻辑块之间可以灵活地相互连接。FPGA的结构一般分为三部分:可编程逻辑块、可编程I/O模块和可编程内部连线。1.3课题研究的内容1.3.1设计背景介绍算术逻辑单元(ArithmeticLogicUnit,ALU)是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由"AndGate"和"OrGate"构成的算术逻辑单元,主要功能是进行二进制的算术运算,如加减乘。所有现代CPU体系结构中,二进制都以补数的形式来表示。此算术逻辑单元能构完成带进位的八位数的加减运算和四位数的乘法和除法的运算。本文介绍带进位的ALU设计,用VerilogHDL语言编写,并可以在FPGA上实现。整个ALU由6个模块组成:加/减法器、乘法器、除法器、十进制调整器、逻辑运算器以及一个多路选择器。其中加/减法器又可以分成两个子模块。算术逻辑单元ALU执行处理器中所有的整数运算指令。在实际的ALU设计中,考虑到所有的整数运算指令。除了要算出结果,还要设置许多标志位,如溢出标志,进位标志等。根据指令的类型和总体任务的实现,我把ALU块划分为逻辑和比较指令模块、加减法模块、乘法块、除法块和alu控制块,ALU模块内部的结构图如下所示:加减法模块加减法模块乘法器除法器逻辑运算块ALU控制器图1-1ALU的结构图1.3.2功能要求本系统为算术逻辑单元,整个系统的原理框图如上图所示,此逻辑单元由5位操作码OP,一位的进位位输入,2个8位的数据输入,一个进位输出和一个八位的数据输出组成。ALU单元可以根据操作编码的不同进行,八位数据的加减,和四位数据的乘除,以及逻辑运算。其中C_in为进位输入,因此ALU还可以进行,带进位的八位加减运算,当产生进位位时,进位位置入ALU_C中。ALUOp[4:0]ALUC_inAc_in[7:0]ALU_O[7:0]Gr_in[7:0] 图1-2系统原理方框图2、EDA技术的基础知识2.1可编程ASIC器件近年来为适应专用Cl设计需求而迅速发展起来的大规模可编程逻辑器件主要包括复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)两大类。这两类器件通常被称为可编程ASIC,与其它两种ASCI相比不同之处在于它具有用户可编程特性,而且可进行逻辑门级编程。采用可编程AsIC,对干半导体制造厂家来说可按照一定的规格以通用器件大量生产,对于用户来说可按通用器件从市场上选购,再由用户通过自己编程实现ASCI的要求。CPLD和FPGA构成了可编程专用集成电路的两大主要分支器件。1.CLPD从结构上,复杂可编程逻辑器件(CPLD)其内部主要由输出逻辑宏单元(oLMc,oPututLogi。Macorec)ll、可编程的与或阵列、可编程互连矩阵单元以及1/0单元组成。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路不仅信号传递快,而且布线延迟固定,可以预测,避免了分段式互连结构时序不完全预测的缺点,但其逻辑门密度较小。九十年代以来,CPLD的发展已越来越迅速,不仅具有电擦除特性,而且出现了边缘扫描及在线可编程等高级特性。具有代表性的产品有Xliinx公司的EPLDXC9500系列、Altera公司的CPLDMAX7000系列及Lattiee公司的ISPLSI用LSll000和2000系列等CPLD。1992年Lattiee公司率先推出了在系统编程技术(Isp,InSystemprogrnunabaility),IsP指采用直接或间接方式,对电子系统中的PLD器件进行编程或改写,也可以实现对整个系统的功能进行重构。2.FPGAFPGA具有类似门阵列或类似ASIC的结构,既有门阵列的高逻辑密度和通用性,又有可编程逻辑器件的用户可编程特性。它通常包含三类可编程资源:可编程逻辑功能块,可编程FO块和可编程互连网络。可编程逻辑功能块是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片;可编程UO块完成芯片上逻辑与外部封装引脚的接口,常围绕着阵列排列于芯片四周;可编程内部网络互连包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或FO块连接起来,构成特定功能的电路。不同厂家生产的FPGA在可编程逻辑块的规模、内部互连线的结构和采用的可编程元件上存在较大的差异,因而实现逻辑功能的能力也不同。较常用的有Xliinx、Ahera和Actel公司的FPGA。其中xliinx公司和Altera公司的FPGA是基于SRAM技术的,可重复编程,断电后信息将会丢失;而Actel公司的FPGA是基于熔丝技术,一次性编程,断电后信息不会丢失。总的来说FPGA具有布线灵活,可用逻辑门数多,布线延迟不可预测的特点。2.2EDA设计工具在一般的设计开发中,不同的电路设计方案对硬件的需求应该与所选用的FPGA器件的内部结构特点相匹配,使系统性能达到最佳。而在做本实验是主要运用的软件主要是QuartusII6.0、Explorer99SE等相互协同完成。在实际完成设计时,在EDA环境下借助计算机能快速准确的完成电路的设计,提高设计质量,缩短设计周期,节省设计费用,可以提高产品的市场竞争力。因此为用户提供了便利,成为了设计者不可缺少的有力工具。3、总体方案设计3.1设计内容设计一个算术逻辑单元,此逻辑单元由5位操作码OP,一位的进位位输入,2个8位的数据输入,一个进位输出和一个八位的数据输出组成。ALU单元根据操作编码的不同进行,八位数据的加减,和四位数据的乘除,以及逻辑运算。其中C_in为进位输入,因此ALU还可以进行,带进位八位加减运算,当产生进位位时,进位位置入ALU_C中。3.2设计方案比较方案一:由下图3-1可以看出其组成结构较为复杂,用两个38译码器,将输入的3位转换为相应的数据输入单片机进行相应的计算,再通过8位LED灯显示输出。采用标准的8051设计ALU结构框图如下图所示。单单片机3-8译码器3-8译码器3位按键输入3位按键输入电源时钟5位操作码输入8个LED灯显示图3-1由单片机构成的ALU结构方案二:基于FPGA的ALU设计。可以很好的通过编程设计多位加、减、乘、除等,硬件电路简单,对应的HDL语言较容易实现。在实际的工程应用中,使用简单易行并且稳定的EDA设计比较适合。通过按键输入,再由编程实现内部算法,通过LED可输出直观的看到输出的结果。其构成框图如下图3-2所示:FPGAFPGA电源时钟8位按键输入8位按键输入5位操作码输入8位LED灯显示图3-2由FPGA构成的ALU3.3方案论证 由以上两个方案图可知:用单片机实现ALU,单片机资源有限特别是输入输出管脚,外部扩展电路较多,整体电路复杂。在单片机实现算法分析上,其程序设计较为困难,系统不够稳定,功耗较大。 用FPGA设计ALU。FPGA管脚资源,外围电路简单,功耗较小,系统稳定。在HDL编程实现内部算法上较为容易,移植性强,维护容易。此外其先进的开发工具使整个系统的设计调试周期大大缩短,一般来讲,同样的逻辑,基于FPGA要比基于单片机要快很多,因为它们工作的原理是完全不同的。单片机是基于指令工作的,同样的激励到达单片机后,单片机首先要判断,然后读取相应的指令,最后作出相应,这每一步都是需要在单片机的时钟驱动下一步步的进行。而基于FPGA则是把相应的逻辑“暂时”固化为硬件电路了,它对激励作出的响应速度就是电信号从FPGA的一个管脚传播另一个管脚的传播速度,当然这指的是异步逻辑,同时电信号也要在芯片内进行一些栅电容的充放电动作,但这些动作都是非常非常快的。3.4方案选择在现在ALU设计的功能提出了更高的要求,尤其在现代SOC技术的引领下,人们对低故障、高实时、高可靠、高稳定的性能更加青睐。考虑到整体电路简单、系统稳定且功耗小的基础上,结合本设计的要求及综合以上比较的情况,我们选择了基于FPGA的ALU设计方案。4、单元模块设计 本设计由现场可编程门矩阵(FPGA)作为控制芯片,通过VreilogHDL硬件描述语言设计,运用自顶而下的设计思想,按功能逐层分割实现层次化的设计。总体设计方案为通过VreilogHDL硬件描述语言,将个个状态及状态之间的转换用程序语言描述出来,再由FPGA芯片调试后实现。下面介绍主要模块的功能及作用。4.1有源晶振电路采用有源晶振作为时钟信号源,它是一个完整的振荡器,内部除了石英晶体外还有阻容软件和晶体管,有源晶振信号质量好,比较稳定,而且连接方式比较简单。本设计所用的为20MHZ的晶振,而20MHz以下的晶体晶振基本上都是基频的器件,稳定度好,20MHz以上的大多是谐波的,稳定度差,因此我们使选用频的器件,毕竟倍频用的PLL电路需要的周边配置主要是电容、电阻、电感,其稳定度和价格方面远远好于晶体晶振器件。图4-1有源晶振电路4.2供电电路本设计用到了三个电源,第一是+5V的电源,用于为上拉电阻提供电压;第二是+3.3V电源,用于为FPGA芯片提供工作电压;第三是+2.5V电源,用于为FPGA芯片内核工作提供电压。在FPGA芯片管脚上,+2.5V电源必须接在内核电源输入端(VCCINT)上,而VCCIO是芯片输入输出引脚工作电源,根据输入输出的设备不同,可以接2.5V、3.3V或5.0V。注意的是EPC1PC8的工作电压必须为3.3V,具有可擦写的功能。 图4-2供电电路4.3按键输入电路图4-3键盘输入4.4LED状态灯输出电路 图4-4LED灯输出电路8个LED灯模拟8位数字输出结果,亮为1,灭为0。4.5最小系统 图4-5电路原理图本设计的电路实现是基于FPGA最小系统原理图,再配以所需的外设。最小系统设计包含了时钟产生电路模块、程序下载配置电路模块、电源电路模块,通过连线将各个模块进行连接成最小系统。由于本设计电路比较简单,外设比较少,使用到的四个独立键盘,模拟实现信号输入,六个LED灯模拟实现信号状态指示。我们队外设也作了扩展准备,将FPGA芯片的IO引脚进行了插针引出,以方便后续电路的扩展。5、软件实现通过至顶向下(TOP--DOWN)的设计方法,对实验所需要的电源电路、供电电路、配置电路、键盘输入电路、LED显示输出电路的设计与检验。对ALU电路的两个输入AC_in和GR_in,分别用OP位来控制逻辑运算单元所要执行的运算指令。再检查运算结果是否正确,对比实际结果和运算输出结果,综合上述设计思想和方法进行一下软件设计。5.1软件设计设计程序如下:moduleALU(ALU_O,ALU_C,C_in,op,AC_in,GR_in);outputALU_C;//进位位输出output[7:0]ALU_O;inputC_in;//进位位输入input[4:0]op;//操作方式选择码input[7:0]AC_in;input[7:0]GR_in;reg[7:0]ALU_O;regALU_C;always@(C_inoroporAC_inorGR_in)begin case(op) 5'b00011: begin{ALU_C,ALU_O}={C_in,AC_in};end 5'b00100:begin{ALU_C,ALU_O}={C_in,GR_in};end//如果操作译码为5’b00100则完成RI->AC直移5'b00111:begin{ALU_C,ALU_O}=AC_in+GR_in;end//如果操作译码为了5‘b00111则进行八位数相加 5'b01000: begin{ALU_C,ALU_O}=AC_in-GR_in;end//如果操作编码为了5‘b01000则八位数相减 5'b01011:begin{ALU_C,ALU_O}=AC_in+GR_in+C_in;end//如果操作译码为了5‘b01011则进行带进位八位数相加 5'b01100: begin{ALU_C,ALU_O}=AC_in-GR_in-C_in;end//如果操作译码为了5‘b01100则进行带借位八位数相减5'b01111:begin{ALU_C,ALU_O}={C_in,~GR_in};end//如果操作编码为5’b01111则进行取反操作5'b10000:begin{ALU_O,ALU_C}={C_in,GR_in};end//如果操作码为5’b10000则完成SHCRAC,RI 5'b10001:begin{ALU_C,ALU_O}={GR_in,C_in};end//如果操作码为5’b10001则完成SHCLAC,RI 5'b11100:begin{ALU_C,ALU_O}={C_in,mul(AC_in[3:0],GR_in[3:0])};end//如果操作译码为5’b11100则完成四位数相乘 5'b11101:begin{ALU_C,ALU_O}={C_in,div(AC_in[7:0],GR_in[7:0])};end//如果操作译码为5’b11101则完成四位数相除 default:begin{ALU_C,ALU_O}={C_in,ALU_O};end endcaseendfunction[7:0]mul;//四位数移位相乘函数input[3:0]AC_in;input[3:0]GR_in;reg[7:0]R;reg[7:0]temp;reg[7:0]temp2;beginR=0;temp=0;temp2=AC_in;if(GR_in[0]==1)begintemp=temp2;R=temp2;temp2=temp;endif(GR_in[1]==1)begintemp=temp2;R=R+(temp2<<1);temp2=temp;endif(GR_in[2]==1)begintemp=temp2;R=R+(temp2<<2);temp2=temp;endif(GR_in[3]==1)begintemp=temp2;R=R+(temp2<<3);temp2=temp;endmul=R;endendfunctionfunction[7:0]div;//八位数相除的函数input[7:0]AC_in;input[7:0]GR_in;reg[7:0]R_out;reg[7:0]temp;reg[7:0]temp2;reg[7:0]temp3;reg[7:0]next;reg[7:0]temp4;begin R_out=8'b0; temp=AC_in; next=8'b0; temp3=8'b0; temp2=GR_in; temp4=AC_in; if(AC_in>7; if(temp>=GR_in) begintemp3=temp2;R_out[7]=1'b1;temp=temp4-(temp2<<7);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp>>6;if(temp>=GR_in)begintemp3=temp2;R_out[6]=1'b1;temp=temp4-(temp2<<6);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp>>5;if(temp>=GR_in)begintemp3=temp2;R_out[5]=1'b1;temp=temp4-(temp2<<5);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp>>4;if(temp>=GR_in)begintemp3=temp2;R_out[4]=1'b1;temp=temp4-(temp2<<4);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp>>3;if(temp>=GR_in)begintemp3=temp2;R_out[3]=1'b1;temp=temp4-(temp2<<3);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp>>2;if(temp>=GR_in)begintemp3=temp2;R_out[2]=1'b1;temp=temp4-(temp2<<2);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp>>1;if(temp>=GR_in)begintemp3=temp2;R_out[1]=1'b1;temp=temp4-(temp2<<1);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp;if(temp>=GR_in)begintemp3=temp2;R_out[0]=1'b1;temp=temp4-temp2;temp2=temp3;next=temp;temp4=temp;endtemp=next;div=R_out;endendendfunctionendmodule6、系统仿真及调试6.1仿真通过QuartusII软件,我们进行了仿真,其仿真波形如下图所示。此图中由逻辑单元5为操作码OP:此控制单元为选择加、减、乘、除或取反的控制选择器;2个8位数据输入分别为AC_in和GR_in;1个8位数据输出ALU_O,根据不同的8为输入显示相应的输出数据;1个进位输入C_in;在做带进位的8位加减运算,当产生进位位时,进位位置置入ALU_C中。图6-1输入等于输出和两个数相加由图6-1可知,当OP=00011(功能为输出等于输入)时,输出ALU_O等于输入AC_in;当OP=00111(两数相加)时,输出ALU_O=AC_in+GR_in。图6-2两个数相加与带进位相加的比较由图6-2可知,当OP=00111(两数相加)时,输出ALU_O=AC_in+GR_in;当OP=01011(带进位相加)时,输出ALU_O=AC_in+GR_in+C_in,其输出结果会受到进位位的影响。图6-3两个八位数相减与带借位的八位数相减由图6-3所示,当OP=01000(两个8位数相减)时,输出ALU_O=AC_in-GR_in;当OP=01100(带借位的8位数相减)时,输出ALU_O=AC_in-GR_in-C_in,其输出结果会受到进位标志位的影响。图6-4对GR_in取反由图6-4可知,当OP=01111(对GR_in取反)时,输出ALU_O=~GR_in。图6-5对输入GR_in

温馨提示

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

评论

0/150

提交评论