四位二进制除法器
- 格式:doc
- 大小:57.50 KB
- 文档页数:3
计算机组成原理实验一4位二进制计数器实验姓名:李云弟 学号:1205110115 网工1201【实验环境】1. Windows 2000 或 Windows XP2. QuartusII9.1 sp2、DE2-115计算机组成原理教学实验系统一台,排线若干。
【实验目的】1、熟悉VHDL 语言的编写。
2、验证计数器的计数功能。
【实验要求】本实验要求设计一个4位二进制计数器。
要求在时钟脉冲的作用下,完成计数功能,能在输出端看到0-9,A-F 的数据显示。
(其次要求下载到实验版实现显示)【实验原理】计数器是一种用来实现计数功能的时序部件,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能。
计数器由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS 触发器、T 触发器、D 触发器及JK 触发器等。
计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。
计数器按计数进制不同,可分为二进制计数器、十进制计数器、其他进制计数器和可变进制计数器,若按计数单元中各触发器所接收计数脉冲和翻转顺序或计数功能来划分,则有异步计数器和同步计数器两大类,以及加法计数器、减法计数器、加/减计数器等,如按预置和清除方式来分,则有并行预置、直接预置、异步清除和同步清除等差别,按权码来分,则有“8421”码,“5421”码、余“3”码等计数器,按集成度来分,有单、双位计数器等等,其最基本的分类如下:计数器的种类⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎨⎧⎪⎩⎪⎨⎧⎪⎩⎪⎨⎧⎩⎨⎧进制计数器十进制计数器二进制计数器进制可逆计数器减法计数器加法计数器功能异步计数器同步计数器结构N 、、、321 下面对同步二进制加法计数器做一些介绍。
同步计数器中,所有触发器的CP 端是相连的,CP 的每一个触发沿都会使所有的触发器状态更新。
基于FPGA的4位⼆进制数除法器设计1. 设计要求: 设计⼀个4位⼆进制数除法器,如下图所⽰。
其中,a[3:0]为被除数,b[3:0]为除数,s[3:0]为商,r[3:0]为余数。
2. 设计原理: 和⼗进制除法类似,以计算 27 除以 5 的过程为例:除法运算过程如下:(1) 取被除数的⾼⼏位数据,位宽和除数相同(实例中是 3bit 数据)。
(2) 将被除数⾼位数据与除数作⽐较,如果前者不⼩于后者,则可得到对应位的商为 1,两者做差得到第⼀步的余数;否则得到对应的商为0,将前者直接作为余数。
(3) 将上⼀步中的余数与被除数剩余最⾼位 1bit 数据拼接成新的数据,然后再和除数做⽐较。
可以得到新的商和余数。
(4) 重复过程 (3),直到被除数最低位数据也参与计算。
需要说明的是,商的位宽应该与被除数保持⼀致,因为除数有可能为1。
所以上述⼿动计算除法的实例中,第⼀步做⽐较时,应该取数字 27最⾼位 1 (3’b001) 与 3’b101 做⽐较。
根据此计算过程,设计位宽可配置的流⽔线式除法器,流⽔延迟周期个数与被除数位宽⼀致。
3. 设计实现module divider_4bit(input wire [3:0] a,input wire [3:0] boutput wire [3:0] s,output wire [3:0] y);wire [3:0] part_0;wire [3:0] part_1;wire [3:0] part_2;wire [3:0] part_3;assign s[3] = a[3] >= b; //最⾼位的商s[3]assign part_3 = (s[3] == 1'b1 )? a[3] - b : a[3];assign s[2] = {part_3, a[2]} >= b;assign part_2 = (s[2] == 1'b1) ? {part_3, a[2]} - b : {part_3, a[2]};assign s[1] = {part_2, a[1]} >= b;assign part_1 = (s[1] == 1'b1) ? {part_2, a[1]} - b : {part_2, a[1]};assign s[0] = {part_1, a[0]} >= b;assign part_0 = (s[0] == 1'b1) ? {part_1, a[0]} - b : {part_1, a[0]};assign y = part_0;endmodule4. 仿真验证`timescale 1ns/1psmodule divider_4bit_tb();reg [3:0] a;reg [3:0] b;wire [3:0] s;wire [3:0] y;wire [3:0] tb_s;wire [3:0] tb_y;assign tb_s = a / b;assign tb_y = a % b;divider_4bit divider_4bit_inst (.a (a),.b (b),.s (s),.y (y));initial beginrepeat(20)begina = {$random} % 16;b = {$random} % 16;# 20;endendendmodule注:0/0=⽆穷⼤,任何数除以零(⽆穷⼩)得⽆穷⼤,⽽在Veriog中,默认0/0=错误结果,s[3:0]最⼤值为15。
4位2进制全加器仿真电路
4位2进制全加器仿真电路是一种电路设计,用于将两个二进制数相加,并输出其和。
这种电路通常由多个逻辑门组成,包括与门、或门
和异或门等。
在这个电路中,每个二进制位都被视为一个单独的电路,并且每个电路都可以独立地进行计算。
在这个电路中,每个二进制位都有三个输入:两个输入位和一个进位位。
输出也有两个:一个和位和一个进位位。
进位位是由前一位的计
算结果和当前位的输入位共同决定的。
因此,这个电路需要一个额外
的输入,即进位位,以确保正确的计算结果。
为了实现这个电路,我们需要使用逻辑门。
与门用于计算进位位,或
门用于计算和位,异或门用于计算进位位和和位之间的差异。
这些门
可以通过布尔代数表达式来表示,然后转换为逻辑门电路。
在这个电路中,我们需要使用四个单独的2位全加器电路,每个电路
都可以独立地进行计算。
这些电路可以通过级联连接来实现4位2进
制全加器电路。
在级联连接中,每个电路的输出都被连接到下一个电
路的输入,以便在整个电路中进行计算。
最终,这个电路将输出一个4位二进制数,表示两个输入数的和。
这
个电路可以用于许多应用,包括计算机中的算术运算和数字信号处理中的滤波器设计等。
总之,4位2进制全加器仿真电路是一种重要的电路设计,用于将两个二进制数相加。
这个电路由多个逻辑门组成,包括与门、或门和异或门等。
这个电路可以用于许多应用,包括计算机中的算术运算和数字信号处理中的滤波器设计等。
成绩评定表课程设计任务书摘要Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,应用范围非常广泛,由于数字系统中高低电平分别用0和1表示,数字电路问题可以转化成逻辑问题,可以通过仿真电路表示出来,进行观察和研究,并且可以下载到实验箱上。
此次课程设计我将使用VHDL设计一个四位二进制减法器。
Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。
它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。
在这次课设中我将用它绘制出电路图,进行四位二进制减法器模拟。
关键词:Quartus II;VHDL;Multisim;减法器目录一、课程设计目的 (1)二、设计框图 (1)三、实现过程 (2)1、QUARTUS II实现过程 (2)1.1建立工程 (2)1.2编译程序 (7)1.3波形仿真 (11)1.4引脚锁定与下载 (15)1.5仿真结果分析 (16)2、MULTISIM实现过程 (16)2.1求驱动方程 (16)2.2画逻辑电路图 (20)2.3逻辑分析仪的仿真 (21)2.4结果分析 (21)四、总结 (23)五、参考书目 (24)一、课程设计目的1:了解四位二进制计数器工作原理和逻辑功能。
2:掌握计数器电路的分析、设计方法及应用。
3:学会正确使用JK 触发器。
二、设计框图状态转换图是描述时序电路的一种方法,具有形象直观的特点,即其把所用触发器的状态转换关系及转换条件用几何图形表示出来,十分清新,便于查看。
在本课程设计中,四位二进制减法计数器用四个CP 上升沿触发的JK 触发器实现,其中有相应的跳变,即跳过了0000 0001 0010三个状态,这在状态转换图中可以清晰地显示出来。
具体结构示意框图和状态转换图如下:↓−−−−←−−−−←−−−−←−−−−←−−−−←−−−−←−−−→−−−−→−−−−→−−−−→−−−−→−−−−→− 1000011101100101010000111/10011010101111001101111011110/0/0/0/0/0/0/0/0/0/0/0/B:状态转换图三、实现过程1.QUARTUSII实现过程1.1建立工程.图1-1 QUARTUS软件的启动界面(1)点击File –> New Project Wizard创建一个新工程,系统显示如图5-2。
4位同步二进制加法计数器是一种常见的数字电路,用于实现二进制计数。
它可以将二进制数字表示为电信号,并且在每次输入脉冲时进行递增。
下面将详细介绍4位同步二进制加法计数器及其计数的最大值。
一、4位同步二进制加法计数器的原理1. 4位同步二进制加法计数器由4个触发器组成,每个触发器对应一个二进制位。
当输入一个脉冲时,每个触发器根据前一位的状态以及输入脉冲的信号进行状态转换。
这样就实现了二进制数的递增。
2. 触发器之间通过门电路连接,用于控制触发器状态的变化。
这些门电路可以根据具体的设计选择不同的逻辑门,常见的有AND门、OR 门、NOT门等。
3. 4位同步二进制加法计数器是同步计数器,即所有触发器同时接收输入脉冲,确保计数的同步性。
二、4位同步二进制加法计数器的计数最大值1. 4位二进制数的表示范围是0~15,因此4位同步二进制加法计数器的计数最大值为15。
2. 在计数到15后,再输入一个脉冲,计数器将重新从0开始计数,即实现了循环计数。
三、4位同步二进制加法计数器的应用1. 4位同步二进制加法计数器常用于数字电子钟、信号发生器等数字电路中,用于实现计数和定时功能。
2. 它还可以作为其他数字电路的组成部分,用于构建更复杂的逻辑功能。
3. 在数字系统中,计数器是十分重要的组件,它能够实现数字信号的计数和控制,广泛应用于各种数字系统中。
4位同步二进制加法计数器是一种重要的数字电路,通过它可以实现对二进制数的递增计数。
其计数的最大值为15,应用领域广泛。
希望本文内容能够对读者有所启发。
四、4位同步二进制加法计数器的工作原理4位同步二进制加法计数器是一种晶体管数字集成电路,它利用触发器和逻辑门等基本元件构成,能够实现二进制数字的加法计数。
在4位同步二进制加法计数器中,每个触发器代表一个二进制位,通过输入脉冲的控制,能够实现对二进制数的递增计数。
具体来说,当输入一个脉冲信号时,4位同步二进制加法计数器会根据触发器之间的连线和逻辑门的作用,根据之前的状态和输入脉冲的信号进行状态转换,从而实现二进制数的递增。
74系列和CD40系列芯片功能大全1.74LS00:四2输入NAND门2.74LS02:四2输入NOR门3.74LS04:六个反相器4.74LS08:四2输入AND门5.74LS11:三3输入AND门6.74LS20:两4输入NAND门7.74LS21:两4输入AND门8.74LS30:八个三输入AND门9.74LS32:四2输入OR门10.74LS74:双D触发器11.74LS75:四D型锁存器12.74LS86:四2输入XOR门13.74LS90:二分频十进制计数器14.74LS93:二进制计数器15.74LS107:双JK触发器16.74LS112:双J-K时序触发器17.74LS123:双非稳态多谐振荡器18.74LS125:四3态缓冲器19.74LS132:四2输入NAND门带故障输入20.74LS138:三八选一多路复用器22.74LS145:十六十进制带有地址计数显示器驱动器23.74LS148:八三态十六选一编码器24.74LS151:八2输入多路数据选择器25.74LS153:双4输入多路复用器26.74LS155:双4位译码器/多路复用器27.74LS157:四4输入多路复用器28.74LS161:4位二进制同步计数器29.74LS164:8位位移寄存器30.74LS165:并行8位输入串行输出移位寄存器31.74LS168:8位同步加法器/减法器32.74LS174:6位六个D触发器33.74LS175:4位八个D触发器34.74LS181:4位全加器/减法器35.74LS191:4位二进制同步上升计数器36.74LS192:4位二进制同步忙闲计数器37.74LS194:4位二进制同步最大-最小计数器38.74LS195:并行输入/串行输出移位寄存器39.74LS196:4位有符号除法器40.74LS240:三态八线缓冲器41.74LS244:三态八线缓冲器42.74LS253:双4输入多路复用器43.74LS257:四2数据选择器/多路复用器44.74LS266:四2输入增强型XOR门45.74LS273:8位D型锁存器46.74LS280:9位奇偶校验位生成器/校验位校验器47.74LS283:4位二进制全加器48.74LS293:4位二进制更多-最少计数器49.74LS298:8位通用快速S-丁触发器50.74LS301:八通用开关控制器51.74LS367:六3态开关控制器52.74LS373:八位透明D型锁存器53.74LS374:八位注册器/寄存器54.74LS377:八位D型触发器55.74LS393:4位二进制快速计数器56.74LS540:非反相八线缓冲器57.74LS541:三态八线缓冲器58.74LS573:透明八位D型锁存器59.74LS574:八位注册器/寄存器60.74LS595:8位移位寄存器61.74LS600:14位多功能逻辑模块62.74LS601:4位寄存器文件63.74LS604:十六通用串行输入/输出端口64.74LS661:128位RAM65.74LS670:4x4伪随机存储器66.74LS680:4位十六进制67.74LS682:8位16位并行二进制加法器68.74LS684:8位2s补码一体计算机加法器69.74LS688:8位译码器比较器70.74LS691:4位二进制加法器71.74LS692:代码可比较性72.74LS693:四位验证码可比较器73.74LS703:4位二进制带签名产生器74.74LS709:4位逐位加法器75.74LS758:8位数据选择器/多路复用器76.74LS783:十六键/扫描键盘控制器78.74LS821:四位二进制计数器79.74LS825:并行显示器时序控制器80.74LS828:8x8位矩阵键盘扫描器81.74LS845:十二位通用缓冲器82.74LS851:四位二进制计数器83.74LS883:4位二进制计数器84.74LS901:高阻止八位触发器85. 74LS902: 编程/Fast浮点处理器86.74LS911:6位二进制计数器87.74LS921:12位二进制计数器88.74LS931:十六积分器/计数器89.74LS941:拉尔数间隔计数器1.CD4046:相锁定环路2.CD4050:非反相六路缓冲器3.CD4011:四2输入NAND门4.CD4094:8位移位寄存器5.CD4017:十位十进制计数器6.CD4060:默认16二进制计数器8.CD4051:八位单通道模拟多路复用器9.CD4049:非反相六路缓冲器10.CD4033:十位十进制计数器11.CD4029:16位二进制增量器12.CD4017:十位十进制计数器。
成绩评定表课程设计任务书摘要本文描述了四位二进制同步加法计数器的功能,并且缺省了状态0100,0101,0110,1000,1001。
计数器初始状态从0000开始,每来一个CP脉冲计数器就加1,当增加到0011时,直接跳到状态0111;再来一个CP脉冲,计数器直接跳到状态1010;当计数器加到1111时,给高位进位的同时计数器归零。
本课程设计分别通过QuartusⅡ和multisim软件设计实现此计时器。
在QuartusⅡ软件中先用VHDL语言描述此计数器,编译完成后,进行波形仿真,最后下载到试验箱中。
在multisim软件中首先设计实现此计数器功能的电路图,然后运行仿真电路图,通过LED灯亮灭的顺序和逻辑分析仪的波形变化情况验证电路图的正确性。
关键词:四位二进制加计数器;QuartusⅡ软件;multisim软件;目录1课程设计目的 (1)2课程设计实现框图 (1)3实现过程 (1)3.1QuartusⅡ实现过程(VHDL) (1)3.1.1建立工程 (2)3.1.2VHDL源程序 (5)3.1.3编译和仿真过程 (6)3.1.4引脚锁定与下载 (9)3.1.5仿真结果分析 (10)3.2Multisim实现过程(电路设计) (11)3.2.1设计原理 (11)3.2.2基于Multisim的设计电路图 (15)3.2.3逻辑分析仪显示的波形 (16)3.2.4仿真结果分析 (16)4设计体会 (17)5参考文献 (18)1课程设计目的1、了解数字系统设计方法。
2、熟悉VHDL语言及其仿真环境、下载方法。
3、熟悉Multisim环境。
4.设计实现四位二进制加计数器(缺0100,0101,0110,1000,1001)。
2课程设计实现框图图1所示是四位二进制同步加法计数器的结构示意框图。
CP是输入计数脉冲,所谓计数,就是计CP脉冲个数,每来一个CP脉冲,计数器就加一个1,随着输入计数脉冲个数的增加,计数器中的数值也增大,当计数器计满时再来CP脉冲,计数器归零的同时给高位进位,即要送给高位进位信号,图中的输出信号C就是要送给高位的进位信号。
长安大学电子技术课程设计四位二进制加法器专业班级姓名指导教师日期四位二进制加法器一、技术要求(1)四位二进制加数与被加数输入(2)二位数码管显示二、摘要理论上,由二进制数算法的运算可知,加、减、乘、除运算都可分解成加法进行运算,而实际上,为了减少硬件复杂性,这些运算基本上也是通过加法来实现的。
此次设计的是简单的四位二进制加法器。
设计中通过不断改变脉冲信号,来控制数码管的显示。
本次设计选择一个超前进位的4位全加器74LS283。
译码器选择五输入八输出的译码器,用二位数码管显示,采用七段显示译码器。
本次设计采用的是共阴极数码管,所以选择74ls48译码器三、总体设计方案论证与选择设计四位二进制加法器,可以选择串行二进制并行加法器,但为了提高加法器的运算速度,所以应尽量减少或除去由于进位信号逐级传递所花费的时间,使各位的进位直接由加数和被加数来决定,而无须依赖低位进位,因而我们选择超前进位的4位全加器74LS283。
设一个n位的加法器的第i位输入为a i、b i、c i,输出s i和c i+1,其中c i是低位来的进位,c i+1(i=n-1,n-2,…,1,0)是向高位的进位,c0是整个加法器的进位输入,而c n是整个加法器的进位输出。
则和s i=a i + b i + c i+a i b i c i (1)进位c i+1=a i b i+a i c i+b i c i (2)令g i=a i b i,(3)p i=a i+b i, (4)则c i+1= g i+p i c i (5)只要a i b i=1,就会产生向i+1位的进位,称g为进位产生函数;同样,只要a i+b i=1,就会把c i传递到i+1位,所以称p为进位传递函数。
把(5)式展开,得到c i+1= g i+ p i g i-1+p i p i-1g i-2+…+ p i p i-1…p1g0+ p i p i-1…p0c0 (6)随着位数的增加(6)式会加长,但总保持三个逻辑级的深度,因此形成进位的延迟是与位数无关的常数。
4位⼆进制全加器的设计4位⼆进制全加器的设计摘要加法器是产⽣数的和的装置。
加数和被加数为输⼊,和数与进位为输出的装置为半加器。
若加数、被加数与低位的进位数为输⼊,⽽和数与进位为输出则为全加器。
常⽤作计算机算术逻辑部件,执⾏逻辑操作、移位与指令调⽤。
在电⼦学中,加法器是⼀种数位电路,其可进⾏数字的加法计算。
在现代的电脑中,加法器存在于算术逻辑单元(ALU)之中。
加法器可以⽤来表⽰各种数值,如:BCD、加三码,主要的加法器是以⼆进制作运算。
多位加法器的构成有两种⽅式:并⾏进位和串⾏进位⽅式。
并⾏进位加法器设有并⾏进位产⽣逻辑,运⾏速度快;串⾏进位⽅式是将全加器级联构成多位加法器。
通常,并⾏加法器⽐串⾏加法器的资源占⽤差距也会越来越⼤。
我们采⽤4位⼆进制并⾏加法器作为折中选择,所选加法器为4位⼆进制先⾏进位的74LS283,它从C0到C4输出的传输延迟很短,只⽤了⼏级逻辑来形成和及进位输出,由其构成4位⼆进制全加器,并⽤Verilog HDL进⾏仿真。
关键字全加器,四位⼆进制,迭代电路,并⾏进位,74LS283,Verilog HDL仿真总电路设计⼀、硬件电路的设计该4位⼆进制全加器以74LS283(图1)为核⼼,采⽤先⾏进位⽅式,极⼤地提⾼了电路运⾏速度,下⾯是对4位全加器电路设计的具体分析。
图11)全加器(full-adder )全加器是⼀种由被加数、加数和来⾃低位的进位数三者相加的运算器。
基本功能是实现⼆进制加法。
全加器的功能表输⼊输出输⼊输出逻辑表达式:CI B A S ⊕⊕==AB'CI'+A'BCI'+A'B'CI+ABCI()AB CI B A CO ++=其中,如果输⼊有奇数个1,则S 为1;如果输⼊有2个或2个以上的1,则CO=1。
实现全加器等式的门级电路图如图2所⽰,逻辑符号如图3所⽰.图2 图32)四位⼆级制加法器 a) 串⾏进位加法器四位⼆进制加法器为4个全加器的级联,每个处理⼀位。
74283的逻辑表达式数电中最常见的元件之一是IC,它可以将逻辑电路中的许多逻辑器件整合到一个小芯片中。
其中,74283 IC是十分普遍的逻辑芯片,可用于计算机算术电路的设计中。
在这篇文章中,我们将探讨74283芯片的逻辑表达式。
什么是74283芯片?74283芯片是一个4位全加/减器,包含两个4位二进制数相加/相减的功能。
这个芯片被广泛运用于计算机的算术电路中,可以用于加、减、累加器和任意算术函数。
尤其是当需要进行大量的高速计算时,74283芯片可以提供一定的帮助。
74283芯片包含64个引脚,其中16个是输入引脚,16个是输出引脚,剩余的32个是电源和地线。
74283芯片的工作原理74283芯片是一个加减器,其工作原理可以通过二进制加法器进行描述。
其有两种输入模式:并行输入和级联输入。
并行输入即使用输入端口IN0-IN3从最低位到最高位输入二进制数A和B,用C0连接进位输入(如果是加法器则为0,否则为1);级联输入即使用S2与S3控制器实现级联输入。
74283芯片的输出为4位的二进制和以及进位输出(C4)。
当A和B不同时,4位的和就与A和B的差相同。
在这种情况下,进位输出为1。
当A和B相等时,和的进位输出为0,此时和等于A加B。
74283芯片的逻辑表达式在数电设计中,逻辑表达式是一个重要的概念,它表示电路在各种输入组合中产生的输出。
对于74283芯片,可以通过以下逻辑表达式进行描述:- S0 = A0 ⊕ B0 ⊕ C0 - C1 = (A0 ∧ B0) ⊕ (C0 ∧ A0) ⊕ (C0 ∧ B0) - S1 = A1 ⊕ B1 ⊕ C1 - C2 = (A1 ∧ B1) ⊕ (C1 ∧ A1) ⊕ (C1 ∧ B1) - S2= A2 ⊕ B2 ⊕ C2 - C3 = (A2 ∧ B2) ⊕ (C2 ∧ A2) ⊕ (C2 ∧ B2) - S3 = A3 ⊕ B3 ⊕ C3 - C4 = (A3 ∧ B3) ⊕ (C3 ∧ A3) ⊕ (C3 ∧ B3)上面这些符号表示了多种逻辑运算,包括与(∧ )、或(∨)、非(¬)、异或(⊕)和半加器(HA)。
四位二进制除法器设计
李道通1411082758
1、设计方法
采用移位相减法设计二进制除法器:被除数和除数都是二进制数,采用将除数移位的方法。
1)判断除数是否零:如果除数为零,返回等待;2)除数不为零时,C左移一位,将被除数A的最高位赋值给C的最低位,A左移一位,将最低位赋值为零;3)判断C和除数B的大小,若C>=B,这C=C-B,且A的最低位赋值为1。
4)如此循环四次,得到的A即为商,得到的C为余数。
该算法的好处在于被除数和商公用一个寄存器A,节省资源。
2、算法流程图
图中:被除数和除数分别放在A、B中,商余数分别放在A和C,N为计数器
3、VHDL程序代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.NUMERIC_STD.ALL;
ENTITY ldt_chufaqi IS
PORT(A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
C,D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END ENTITY ldt_chufaqi;
ARCHITECTURE BEHA V OF ldt_chufaqi IS
BEGIN
S1:PROCESS(A,B)
V ARIABLE N:INTEGER;
V ARIABLE TEMP_A,TEMP_B,TEMP_C:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
TEMP_A:=A;
TEMP_B:=B;
TEMP_C:="0000";
N:=0;
IF(B>"0000")THEN
WHILE(N<4) LOOP
TEMP_C:=TEMP_C(2 DOWNTO 0)& TEMP_A(3);
TEMP_A:=TEMP_A(2 DOWNTO 0)&'0';
IF TEMP_C>=TEMP_B THEN
TEMP_C:=TEMP_C-TEMP_B;
TEMP_A(0):='1';
END IF;
N:=N+1;
END LOOP;
ELSE
TEMP_A:="ZZZZ";
TEMP_C:="ZZZZ";
END IF;
D<=TEMP_A(3 DOWNTO 0);C<=TEMP_C(3 DOWNTO 0);
END PROCESS;
END ARCHITECTURE BEHA V;
4、仿真结果:
图中:A、B、C、D分别是被除数、除数、余数和商,因本人对软件和语言的运用理解不足,无法做到A的同时输入和输出,故将A的结果赋值给D,但基本思路运算方法已经得到实现。
除数为零时,商和余数都为高阻态;
除数为3时,求的商和余数,仿真结果正确。
除数为5时,商和余数的仿真结果正确。