四位二进制除法器说明书
基于FPGA的4位二进制数除法器设计
基于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。
四位同步二进制计数器74LS161
四位同步二进制计数器74LS161————————————————————————————————作者:————————————————————————————————日期:四位同步二进制计数器74LS161逻辑符号如图所示:逻辑功能如下表所示:74LS161功能表PTCP 功能1 × 0 ××1 × 1 0 ×1 0 1 1 ×1 1 1 1 0↑↑×××计数并行输入保持保持(CO=0)清零CP是时钟脉冲信号端,是异步清零端,是同步置数控制端,P和T为计数允许控制端,D0~D3为并行数据输入端,Q0~Q3为数据输出端,CO为进位输出端。
由功能表可以看出该芯片具有以下功能:(1)清零功能。
当时,计数器异步清零。
即只要,计数器输出状态立刻变为“0000”。
(2)同步并行置数功能。
当、时,在CP上升沿作用下,并行输入数据D0~D3进入计数器,使计数器的输出端状态为Q3 Q2Q1 Q0=D3D2 D1D0。
(3)保持功能。
当、时,若P·T=0,则计数器保持原来状态不变。
对于进位输出信号有两种情况:如果T=0,则CO=0;如果T=1,则CO= Q3 ·Q2·Q1 ·Q0(4)计数功能。
当、时,若P=T=1,则在时钟脉冲CP上升沿的连续作用下,计数器输出(Q3Q2Q1Q0)的状态按0000→0001→0010→0011→0100→0101→0110→0111→1000→1001→1010→1011→1100→1101→1110→1111→0000的次序循环变化,完成十六进制(或称四位二进制)加法计数。
并且当计数器计到1111时,进位输出端CO输出为1,其他状态时CO输出为0。
四位二进制计数器设计课程设计(论文) 精品
课程设计系部:自动化系专业班级:11电子301班指导教师:裴玉玲二O一二年五月二十五课程设计任务书【摘要】随着多频彩显技术的不断发展,在日常生活中的应用越来越广泛,但到目前为止彩显显示器的概念还没有统一的说法,但对其认识却大都相同,顾名思义它应该是将一定的电子文件通过特定的传输设备显示到屏幕上再反射到人眼的一种显示工具。
从广义上讲,街头随处可见的大屏幕,电视机的荧光屏、手机、快译通等的显示屏都算是彩显显示器的范畴,但目前一般指与电脑主机相连的显示设备。
它的应用非常广泛,大到卫星监测、小至看VCD,可以说在现代社会里,它的身影无处不在,其结构一般为圆型底座加机身,随着彩显技术的不断发展,现在出现了一些其他形状的显示器,但应用不多。
作为一个经常接触电脑、电视、手机的人来说,显示器则必须是他要长期面对的,每个人都会有这种感觉,当长时间看一件物体时,眼睛就会感觉特疲劳,显示器也一样,由于它是通过一系列的电路设计从而产生影像,所以它必定会产生辐射,对人眼的伤害也就更大。
因为人的眼睛直接看着彩显显示器,伤害比较大。
为了减小这些伤害和彩显技术在这方面的不足,做到显示器视觉广、画质好、画面稳定、辐射小等。
故仍需在这一领域开展大量的工作,以使得彩显技术有更好的发展空间。
【关键词】计算机辅助设计层次图设计印制电路板设计目录 (4)【关键词】 (4)前言 (7)第一章:计算机辅助设计的特点及应用 (8)1.1计算机辅助设计(CAD)的特点 (8)第二章:四位二进制计数器的基本工作原理 (9)2. 四位二进制计数器的基本工作原理简述 (9)2.1.1 电源电路工作原理 (9)2.1.2 消磁控制电路 (9)2.1.3 地磁校正(旋转)电路 (9)2.1.4 动态聚焦电路....................................................................... 错误!未定义书签。
EDA四位二进制除法器设计报告
沈阳航空航天大学课程设计(说明书)4位二进制除法器的设计班级 / 学号学生姓名指导教师常丽东沈阳航空航天大学课程名称数字逻辑课程设计院(系)计算机学院专业计算机科学与技术班级学号姓名课程设计题目4位二进制除法器的设计课程设计时间: 2011 年07 月11 日至2011 年07 月24 日课程设计的内容及要求:一、设计说明设计一个4位二进制除法器,可以存贮其商和余数。
电路原理框图如图1所示。
除法器可以利用减法器和寄存器实现。
图1 乘法器原理框图寄存器A、B、C及R分别存放被除数、除数、商及余数。
比较器用来判断“余数”和除数的大小,即比较R寄存器和B寄存器的内容来确定商,用S2表示判断的结果,R≥B,S2=1;R<B,S2=0。
计数器P用来累计运行次数,当P=4时,除法结束。
二、技术指标1.设计4位二进制除法器。
输入数据:被除数X(0000~1111);除数Y(0001~1111)。
输入命令:启动信号S1,高有效。
输出数据:商数C(0000~1111),余数R(R<Y)2.存贮其商和余数。
三、设计要求1.在选择器件时,应考虑成本。
2.根据技术指标通过分析计算确定电路形式和元器件参数。
3.主要器件:(1)74LS74双D触发器;(2)74LS194双向移位的寄存器;(3)74LS283加法器;(4)74LS163计数器;(5)74LS00、74LS04等门电路。
四、实验要求1.根据技术指标制定实验方案;验证所设计的电路。
2.进行实验数据处理和分析。
五、推荐参考资料1.谢自美. 电子线路设计·实验·测试. [M]武汉:华中理工大学出版社,2000年2.阎石. 数字电子技术基础. [M]北京:高等教育出版社,2006年3.付家才. 电子实验与实践. [M]北京:高等教育出版社,2004年六、按照要求撰写课程设计报告指导教师年月日负责教师年月日学生签字年月日成绩评定表一、设计概述要求设计一个四位二进制除法器,要求被除数的最大值位1111,最小值为0000。
4位同步二进制加法计数器计数最大值
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位同步二进制加法计数器会根据触发器之间的连线和逻辑门的作用,根据之前的状态和输入脉冲的信号进行状态转换,从而实现二进制数的递增。
quartus-4位二进制加减法计数器
学院:专业:班级设计原理框图从原理图中可见,需要有1bit装载位〔load〕、1bit清零位〔clr〕、方向控制位up_down和4bit数据选择位DIN[3..0]。
装载位我们采用SW0,清零位采用SW1,方向控制位为SW2。
SW3-SW6作为数据输入端,LED1-LED4显示数据的输出,LED5为溢出标志位。
实验内容编写一个带预置输入,清零输入,可加可减计数器的verilog代码或VHDL代码并仿真,编译下载验证module counter4(load,clr,c,DOUT,clk,up_down,DIN);//定义模块input load;input clk;//wire load;//定义线网型input clr;//wire clr;//input up_down;//wire up_down;//input [3:0]DIN;wire [3:0]DIN;output c;reg c;output [3:0]DOUT;//wire [3:0]DOUT;reg [3:0]data_r;assign DOUT=data_r;always@(posedge clk or posedge clr or posedge load)//检测clk,clr,load的上升沿beginif(clr)//当clr=1的时候进行下面的运行程序data_r<=0;//将data_r置零else if(load) //当load=1的时候进行下面的运行程序data_r<=DIN;//将DIN的值赋给data_relse begin if(up_down)//load=0的时候进行下面的操作beginif(data_r==4'b1111)begin///当data_r==4'b1111的时候进行下面的运行程序data_r<=4'b0000;c=1;endelse begin//当data_r不等于4'b1111的时候进行下面的运行程序data_r<=data_r+1;//进行加法计数c=0;endendelsebeginif(data_r==4'b0000)begin//当data_r==4'b0000的时候进行下面的运行程序data_r<=4'b1111;c=1;endelse begin//当data_r不等于4'b1111的时候进行下面的运行程序data_r<=data_r-1;//进行减法计数c=0;endendendendendmodule//结束模块实验数据注:各学院可根据教学需要对以上栏木进行增减。
4位二进制计数器
实验八 4位二进制计数器74x163的设计一、实验目的熟悉QuartusⅡ仿真软件的基本操作,并用VHDL/Verilog语言或者逻辑图完成4位二进制计数器74x163的设计。
二、实验内容用VHDL语言设计由边沿触发式D触发器构成的74x163四位二进制计数器,并进行仿真分析;(参看新、老教材中器件74x163的逻辑功能及其VHDL源代码)三、实验原理1.计数器是数字系统中用得较多的基本逻辑器件。
2.计数器的种类很多。
按时钟脉冲输入方式的不同,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器和非二进制计数器;按计数过程中数字增减趋势的不同,可分为加计数器、减计数器和可逆计数器。
四、实验方法与步骤实验方法:采用基于FPGA进行数字逻辑电路设计的方法。
采用的软件工具是QuartusII(或MaxplusⅡ)软件仿真平台,采用的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱(由于实验室条件有限,无法实现)。
实验步骤:1)编写源代码。
打开QuartusII软件平台,点击File中得New建立一个文件。
编写的文件名与实体名一致,点击File/Save as以“.vhd”为扩展名存盘文件(画逻辑图实现则新建block文件)。
2)按照实验箱上FPGA的芯片名更改编程芯片的设置。
操作是点击Assign/Device,选取芯片的类型。
建议选“Altera的EPF10K20TI144_4”。
3)编译与调试。
确定源代码文件为当前工程文件,点击Complier进行文件编译。
编译结果有错误或警告,则将要调试修改直至文件编译成功。
4)波形仿真及验证。
在编译成功后,点击Waveform开始设计波形。
点击“insert the node”,按照程序所述插入节点。
任意设置输入节点的输入波形…点击保存按钮保存。
5)时序仿真。
将波形区域分段显示,如每个10.0ns重复一次步骤四,分别设置不同的a,b的输入波形,点击保存按钮保存,从而得出相应的结果,最后形成完整的连续的时序仿真图。
四位二进制除法器说明书
目录一、设计目的 (1)二、设计要求 (1)三、设计内容 (1)3.1、除法的实现 (1)3.2、设计框图 (1)3.3、功能说明 (1)3.4、VHDL程序源代码 (2)3.5、VHDL程序说明 (3)四、原理图和印刷板图 (4)PCB板图 (4)Protel 原理图 (5)五、设计结论 (6)六、设计心得体会 (6)七、主要参考文献 (7)一、设计目的1.掌握电子电路的一般设计方法和设计流程;2.学习使用PROTEL软件绘制电路原理图及印刷板图。
二、设计要求设计一个四位二进制除法器,具体要求如下:1. 用键盘输入两个四位二进制数,并用数码管显示输入数。
2.按除法键即显示相除结果。
3. 除数为零时,数码管黑屏,不显示任何内容。
三、设计内容1、设计过程要想实现四位二进制除法器,必须首先实现除法的功能。
除法实现的方案可以用VHDL语言实现。
整个四位二进制除法器包括:输入电路,判断电路,除法电路,译码电路和显示电路。
这些电路可以分别进行设计。
2、设计框图3.各个模块的功能说明●整个四位二进制除法器的实现可以分为以下5个部分:●输入电路:输入两个4位2进制数A和B。
它是通过连着高电平的8个开关来实现的。
●判断电路:判断B是否为0。
它是通过1个5输入同或门实现的。
如果B为0,输出端输出高电平,使能端除法器不工作,显示器黑屏。
●除法电路:由VHDL语言实现的。
它实现两个4位2进制数相除,并输出商y和余数r.●译码电路:由VHDL语言实现的。
它实现两个4位2进制数相除,并输出商y和余数r.●显示电路:将译码器译成的数用数码管显示出来。
4.VHDL程序源代码除法源代码1.Library ieee;2.Use ieee.std_logic_1164.all;3.Entity divider is4.Generic (n: integer :=3);5.Port( a, b : in integer range 0 to 15;6.y:out std_logic_vector ( 3 downto 0);7.rest:out integer range 0 to 15;8.err:out std_logic);9.End divider ;10.Architecture rtl of divider is11.Begin12.Process (a,b)13.Variable temp1:integer range 0 to 15;14.Variable temp2:integer range 0 to 15;15.Begin16.temp1:=a;17.temp2:=b;18.if(b=0)then err <=’1’;19.Else err<=’0’;20.End if;21.For I in n downto 0 loop22.If (temp1>=temp2*2**i) then23.y(i) <=‘1’;24.temp1:=temp1-temp2*2**i;25.Else y(i)<= ‘0’;26.End if;27.End loop;28.Rest <=temp1;29.End process;30.End rtl;5.VHDL程序说明假设要计算Y=A/B,其中 A 和 B 有相同的位数4位。
四位二进制数除法器
一、设计目的1.掌握电子电路的一般设计方法和设计流程;2.学习使用PROTEL软件绘制电路原理图及印刷板图;3.掌握应用EWB对所设计的电路进行仿真,通过仿真结果验证设计的正确性。
二、设计要求设计一个四位二进制除法器,具体要求如下:1. 用键盘输入两个四位二进制数,并用数码管显示输入数。
2.按除法键即显示相除结果。
3. 除数为零时,数码管黑屏,不显示任何内容。
三、设计内容1.分析笔算除法以小数为例,设 x=-0.1011,y=0.1101,求x/y笔算除法时,商的符号心算而得:负正得负;其数值部分的运算如下面竖式。
所以商x/y=0.1101,余数=-0.00000111其特点可归纳如下:①每次上商都是由心算来比较余数(被除数)和除数的大小,确定商为1还是0。
②每做一次减法,总是保持余数不动,低位补0,再减去右移后的除数。
③商符单独处理。
如果将上述规则完全照搬到计算机内,实现起来有一定困难,主要问题是:a.机器不能“心算”上商,必须通过比较被除数(或余数)和除数绝对值的大小来确定商值,即|x|-|y|,若差为正(够减)上商1,差为负(不够减)上商0。
b.按照每次减法总是保持余数不动低位补0,再减去右移后的除数这一规则,则要求加法器的位数必须为除数的两倍。
仔细分析发现,右移除数可以用左移余数的办法代替,其运算结果是一样的,但对线路结构更有利。
不过此刻所得到的余数不是真正的余数,只有将它乘上2-n才是真正的余数。
c.笔算求商时是从高位向低位逐位求的,而要求机器把每位商直接写到寄存器的不同位也是不可取的。
计算机可将每一位商直接写到寄存器的最低位,并把原来的部分商左移一位。
综上所述便可得原码除法运算规则。
2.原码除法:原码除法和原码乘法一样,符号位是单独处理的。
以小数为例:设式中为x的绝对值,记作x*为y的绝对值,记作y*即商符由两数符号位“异或”运算求得,商值由两数绝对值相除(x*/y*)求得。
小数定点除法对被除数和除数有一定的约束,即必须满足下列条件:0<|被除数|≤|除数|实现除法运算时,还应避免除数为0或被除数为0。
四位二进制除法器.doc
四位二进制除法器设计李振礼11110820081、设计方法采用移位相减法设计二进制除法器:被除数和除数都是二进制数,采用将除数移位的方法。
1)判断除数和被除数是否为零:如果除数为零,返回等待;如果被除数为零,则商和余数都为零。
2)被除数和除数都不为零时,判断被除数和除数的大小:如果除数大于被除数,则商为零,余数等于被除数;如果除数小于等于被除数,则对除数进行移位,第一次移位使被除数的最高位和除数的最低位对齐。
然后对移位后的除数和被除数进行判断:如果被除数大于等于除数,则用被除数减去除数,并将所得结果做为新的被除数;如果被除数小于除数,则将除数在第一次移位的基础上右移一位,在对被除数和除数进行判断,根据被除数和除数的大小关系进行类似的操作。
2、算法流程图图中:被除数和除数分别放在A、B中,商和余数分别放在S、和Y中,C作为移位计数器3、VHDL程序代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all; ---打开可能用到的库entity dedect1 isport(A,B:in std_logic_vector(3 downto 0);S,Y:out std_logic_vector(3 downto 0));end entity dedect1; ----四位二进制除法器实体定义architecture behv of dedect1 isbegins1:process(A,B) ---进程开始敏感信号A、B variable tmpa,tmpb:std_logic_vector(7 downto 0);--中间变量定义variable tmpc:std_logic_vector(3 downto 0);begintmpa:="00000000";tmpb:="00000000";tmpc:="0000"; ---中间变量初始化if(B>"0000")then ---B不为零(除数不为零)if(A>"0000")then ----A不为零(被除数不为零)if(A>B)then ----被除数大于除数时tmpa(3 downto 0):=A; -----以下四条If语句完成求满足以上tmpb(6 downto 3):=B; ---三个条件时被除数除以除数的商和余数if(tmpa>=tmpb)thentmpa:=tmpa-tmpb;tmpc(3):='1';elsetmpc(3):='0';end if;tmpb(5 downto 2):=B;tmpb(6):='0';if(tmpa>=tmpb)thentmpa:=tmpa-tmpb;tmpc(2):='1';elsetmpc(2):='0';end if;tmpb(4 downto 1):=B;tmpb(5):='0';if(tmpa>=tmpb)thentmpa:=tmpa-tmpb;tmpc(1):='1';elsetmpc(1):='0';end if;tmpb(3 downto 0):=B;tmpb(4):='0';if(tmpa>=tmpb)thentmpa:=tmpa-tmpb;tmpc(0):='1';elsetmpc(0):='0';end if;Y<=tmpa(3 downto 0);S<=tmpc;elsif(A=B)then ---------被除数等于除数S<="0001";Y<="0000";elseS<="0000"; ---------被除数小于除数Y<=A;end if;else ----被除数为零时S<="0000";Y<="0000";end if;else ---------除数为零时S<="ZZZZ";Y<="ZZZZ";end if;end process; ---进程结束end architecture behv;4、仿真结果:图中:A、B、S、Y分别是被除数、除数、商和余数。
d触发器四位二进制计数器
d触发器四位二进制计数器一个D触发器四位二进制计数器可以使用四个D触发器和适当的逻辑电路来构建。
D触发器具有一个输入和一个输出,它可以将输入信号的状态存储到输出,并根据时钟信号进行切换。
对于这个计数器,我们需要四个D触发器,每个D触发器都与上一个D触发器的输出相连。
每个D触发器的时钟信号都相同,并且是一个递增的脉冲信号。
首先,我们需要将第一个D触发器的D输入连接到高电平电源,这将设置计数器的初始状态为“0000”。
下一个D触发器的D输入将连接到第一个D触发器的输出,以便它存储第一个位的状态。
接下来的两个D触发器将分别连接到以前的D触发器的输出,以存储第二位和第三位的状态。
最后,第四个D触发器将连接到前一个D触发器的输出,以存储第四位的状态。
为了使计数器按照二进制顺序计数,我们需要使用逻辑电路来控制每个D触发器的输入。
对于第一个D触发器,我们只需要将其输入与时钟信号连接,这将导致其在每个时钟周期上升1。
对于接下来的D 触发器,我们将其D输入连接到其前一个D触发器和时钟信号的和。
这意味着,每当前一个D触发器存储一个1时,这个D触发器就会在下一个时钟周期上升1。
这个计数器可以用以下逻辑方程式来描述:Q1 = D1Q2 = D2 + Q1Q3 = D3 + Q2 * Q1Q4 = D4 + Q3 * Q2 * Q1其中D1,D2,D3和D4分别为第一个,第二个,第三个和第四个D触发器的D输入。
Q1,Q2,Q3和Q4分别为第一个,第二个,第三个和第四个D触发器的输出。
该计数器可以模拟4位二进制计数器的行为,当计数器的输出为“1111”时将重置为“0000”。
4位同步二进制加法计数器
4位同步二进制加法计数器一、实验目的1、熟悉在EDA平台上进行数字电路集成设计的整个流程。
2、掌握Max+PlusⅡ软件环境下简单的图形、VHDL文本等输入设计方法。
3、熟悉VHDL设计实体的基本结构、语言要素、设计流程等。
4、掌握利用Max+PlusⅡ的波形仿真工具验证设计的过程。
5、学习使用JTAG接口下载逻辑电路到可编程芯片,并能调试到芯片正常工作为止。
二、实验设备1.软件操作系统:Windows 2000EDA软件:MAX+plus II 10.22.硬件EDA实验箱:革新EDAPRO/240H三、实验原理1.设计分析4位同步二进制加法计数器的工作原理是指当时钟信号clk的上升沿到来时,且复位信号clr低电平有效时,就把计数器的状态清0。
在clr复位信号无效(即此时高电平有效)的前提下,当clk的上升沿到来时,如果计数器原态是15,计数器回到0态,否则计数器的状态将加1.2.VHDL源程序library ieee;use ieee.std_logic_1164.all;entity cnt4e isport(clk,clr:in std_logic;cout:out std_logic;q:buffer integer range 0 to 15);end cnt4e;architecture one of cnt4e isbeginprocess(clk,clr)beginif clk'event and clk='1'thenif clr='1'thenif q=15 then q<=0;cout<='0';elsif q=14 then q<=q+1;cout<='1';else q<=q+1;end if;else q<=0;cout<='0';end if;end if;end process;end one;四、实验步骤1: VHDL文本编辑在MAX+PLUS集成环境下,执行“file”->“new”命令,弹出编辑文件类型的对话框,选择”text editor file”后单击“ok”按钮。
d触发器四位二进制计数器
d触发器四位二进制计数器
D触发器四位二进制计数器是一种数字电路,用于将输入的时钟脉冲转化为二进制计数输出。
它包含四个D触发器,每个触发器都能存储一个二进制位的值,从最低有效位(LSB)到最高有效位(MSB)。
这种计数器的工作原理是,每当时钟脉冲到来时,触发器会根据其输入端的D值(从低位到高位)更新其输出。
每个触发器的输出将作为下一个触发器的D输入端。
这样,每个时钟脉冲都会使计数器加1,从而实现计数的功能。
这种四位计数器可以用于许多应用,例如时钟频率分频、计时器和状态机等。
通过连接其他逻辑门电路,可以实现更复杂的计数功能,如比较器和循环计数。
此外,D触发器四位二进制计数器还可以扩展为更多位的计数器,只需连接更多的D触发器即可。
例如,八位计数器将需要八个D触发器,以实现更大范围的计数。
总之,D触发器四位二进制计数器是一种常见且有用的数字电路,可用于实现简单的计数功能。
通过扩展和结合其他逻辑电路,可以实现更复杂的计数和控制应用。
4位二进制加减计数器74191
-65
ICC电源电流
Vcc=最大,所有输入接 54
99
地
74
105
[1]: 测试条件中的“最小”和“最大”用推荐工作条件中的相应值。
LS191 最小 最大
-1.5 2.5 2.7
0.4 0.5 0.3 0.1 60 20 -1.2 -0.4 -20 -100 -20 -100 35 35
单位 V V V mA µA mA mA mA
1
压时输入电流 其余输入 (LS191 为 7V)
1
IIH输入高电平 EN G Vcc=最大
120
电流
其余输入 VIH=2.4V(LS191 为 2.7V)
40
IIL输入低电平 EN G Vcc=最大,VIL=0.4V
-4.8
电流
其余输入
-1.6
IOS输出短路电流
Vcc=最大
54
-20
-65
74
-18
191 有超前进位功能。当计数溢出时,进位/错位输出端 (MAX/MIN)输出一个高电平脉冲,其宽度为 CLOCK 脉冲 周期的高电平脉冲;行波时钟输出端(RC)输出一个宽度等 于 CLOCK 低电平部分的低电平脉冲。
利用 RC 端,可级联成 N 位同步计数器。当采用并行 CLOCK 控制时,则将 RC 接到后一级 EN G;当采用并行 EN G 控制时,则将 RC 接到后一级 CLOCK。
Vcc=最小,
Iik=-12mA
-1.5
Iik=-18mA
VOH输出高电平电压
Vcc=最小VIH =2V VIL= 54
2.4
最大, IOH=最大
74 2.4
VOL输出低电平电压
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、设计目的 (1)
二、设计要求 (1)
三、设计内容 (1)
3.1、除法的实现 (1)
3.2、设计框图 (1)
3.3、功能说明 (1)
3.4、VHDL程序源代码 (2)
3.5、VHDL程序说明 (3)
四、原理图和印刷板图 (4)
PCB板图 (4)
Protel 原理图 (5)
五、设计结论 (6)
六、设计心得体会 (6)
七、主要参考文献 (7)
一、设计目的
1.掌握电子电路的一般设计方法和设计流程;
2.学习使用PROTEL软件绘制电路原理图及印刷板图。
二、设计要求
设计一个四位二进制除法器,具体要求如下:
1. 用键盘输入两个四位二进制数,并用数码管显示输入数。
2.按除法键即显示相除结果。
3. 除数为零时,数码管黑屏,不显示任何内容。
三、设计内容
1、设计过程
要想实现四位二进制除法器,必须首先实现除法的功能。
除法实现的方案可以用VHDL语言实现。
整个四位二进制除法器包括:输入电路,判断电路,除法电路,译码电路和显示电路。
这些电路可以分别进行设计。
2、设计框图
3.各个模块的功能说明
●整个四位二进制除法器的实现可以分为以下5个部分:
●输入电路:输入两个4位2进制数A和B。
它是通过连着高电平的8个开关
来实现的。
●判断电路:判断B是否为0。
它是通过1个5输入同或门实现的。
如果
B为0,输出端输出高电平,使能端除法器不工作,显示器黑屏。
●除法电路:由VHDL语言实现的。
它实现两个4位2进制数相除,并输出商y
和余数r.
●译码电路:由VHDL语言实现的。
它实现两个4位2进制数相除,并输出商y
和余数r.
●显示电路:将译码器译成的数用数码管显示出来。
4.VHDL程序源代码
除法源代码
1.Library ieee;
2.Use ieee.std_logic_1164.all;
3.Entity divider is
4.Generic (n: integer :=3);
5.Port( a, b : in integer range 0 to 15;
6.y:out std_logic_vector ( 3 downto 0);
7.rest:out integer range 0 to 15;
8.err:out std_logic);
9.End divider ;
10.Architecture rtl of divider is
11.Begin
12.Process (a,b)
13.Variable temp1:integer range 0 to 15;
14.Variable temp2:integer range 0 to 15;
15.Begin
16.temp1:=a;
17.temp2:=b;
18.if(b=0)then err <=’1’;
19.Else err<=’0’;
20.End if;
21.For I in n downto 0 loop
22.If (temp1>=temp2*2**i) then
23.y(i) <=‘1’;
24.temp1:=temp1-temp2*2**i;
25.Else y(i)<= ‘0’;
26.End if;
27.End loop;
28.Rest <=temp1;
29.End process;
30.End rtl;
5.VHDL程序说明
假设要计算Y=A/B,其中 A 和 B 有相同的位数4位。
假设A=“1011”,B=“0011”。
我们希望得到的运算结果是Y=“0011”和余数“0010”。
分析商的计算方法。
首先对A和B进行比较。
如果前者大于后者,则Y为‘1’,然后将A减去B;否则Y=‘0‘;再进入下一行。
当n+1次迭代之后,计算完成,剩下的A就是余数。
让B乘以2的n次幂相当于将B向左移n位,所以新的B矢量比原矢量长n 位。
如果A比新的B更大,则Y(n)取值为1,然后将A减去B(移位后的);否则Y=0;此后进行新的迭代。
将B乘以2的n-1次幂相当于将B向左移n-1位,,或将刚才计算时用到的值想右移1位。
然后再将它和A比较,重复前面的步骤来决定Y(n-1)是取0还是1。
整个计算过程需要循环进行n+1次上述操作。
第一个使用的是if 语句,另一个使用的是if 和loop语句。
第一种方案是按部就班的进行编码,所以可以看出代码是与算法对应的。
第二种方案更简洁一些,并且更通用(位宽参数是通过第6行的GENERIC来声明的)。
在这两种实现方案中,由于被除数不可以为0,所以在下面的代码中都要检测B是否为0。
仿真结果见下图;
四、原理图和印刷板图
PCB版图
电路原理图
说明:S1、S2输入信号,输入S2的信号经过A2判断,若全为0,则出高电平,使能端除法器不工作,显示器黑屏。
输入的两信号经除法器A1处理,经VHDL语言实现,输入商Y和余数R。
最后将译码器译成的数用
数码管显示出来。
五、设计结论
本设计用一个5输入同或门和一个VHDL编程除法器,实现数据A除以数据B并输出商Y和余数R的功能,经MAXPLUSE2仿真验证分析,可以实现此功能。
六、设计心得体会
通过本次课程设计,我深深的感受到自己的不足和差距。
在课程设计中对PROTELL99,MAX-PULL2软件的掌握还不是特别的熟练,在以后的学习中应该注重学习此部分内容。
也大量的查阅手册和文献资料,从中了解了一些硬件和软件的用途。
七、参考文献
●任勇峰.。
VHDL硬件描述语言。
北京:国防工业出版社。
2005
●乔序峰译。
VHDL数字电路设计教程。
北京。
电子工业出版社2005
●徐敏。
电子线路实习指导教程。
北京:机械工业出版社,2006
●朱玉正。
EDA技术及应用。
北京:清华大学出版社2005
●童诗白.模拟电子技术基础.北京:高等教育出版社,2002
●张建华.数字电子技术.北京:机械工业出版社,2004
●陈汝全.电子技术常用器件应用手册.北京:机械工业出版社,2005
●毕满清.电子技术实验与课程设计.北京:机械工业出版社,2005
●潘永雄.电子线路CAD实用教程.西安:西安电子科技大学出版社,2002
●张亚华.电子电路计算机辅助分析和辅助设计.北京:航空工业出版社,
2004
.。