除法器设计
- 格式:doc
- 大小:1.13 MB
- 文档页数:19
数字系统组成原理和设计技术实验:除法器学号 1115108052姓名詹炳鑫班级电子2班华侨大学电子工程系一.程序LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;ENTITY devide ISPORT(reset, clock, start : IN STD_LOGIC;x : IN STD_LOGIC_VECTOR( 4 DOWNTO 0 );y : IN STD_LOGIC_VECTOR( 8 DOWNTO 0 ); done, overflow : OUT STD_LOGIC;q, r : OUT STD_LOGIC_VECTOR( 4 DOWNTO 0 ) );END devide;ARCHITECTURE behav OF devide ISSIGNAL rx : STD_LOGIC_VECTOR( 5 DOWNTO 0 ); SIGNAL ry : STD_LOGIC_VECTOR( 5 DOWNTO 0 ); SIGNAL rq : STD_LOGIC_VECTOR( 4 DOWNTO 0 );SIGNAL rmd : STD_LOGIC_VECTOR( 5 DOWNTO 0 ); SIGNAL flag_subadd : bit;SIGNAL state : integer RANGE 0 TO 6;BEGINPROCESS ( reset, clock )V ARIABLE sq : STD_LOGIC;BEGINIF reset = '0' THENrx <= ( OTHERS => '0' );ry <= ( OTHERS => '0' );rq <= ( OTHERS => '0' );state <= 0;ELSIF clock'event AND clock = '1' THENCASE STATE ISWHEN 0 =>rx( 5 DOWNTO 0 ) <= x(4) & x( 4 DOWNTO 0 ) ;ry( 5 DOWNTO 0 ) <= y(8) & y( 8 DOWNTO 4 ) ;rq( 4 DOWNTO 0 ) <= y( 3 DOWNTO 0 ) & '0';flag_subadd <= '1';done <= '0';overflow <= '0';IF start = '1' THENstate <= 1;END IF;WHEN 1 =>IF rmd(5) = '0' THENoverflow <= '1';state <= 0;done <= '1';ELSEstate <= state + 1;sq := '0';ry( 5 DOWNTO 0 ) <= rmd( 4 DOWNTO 0 ) & rq(4); rq( 4 DOWNTO 0 ) <= rq( 3 DOWNTO 0 ) & sq; flag_subadd <= '0';END IF;WHEN 5 =>IF rmd(5) = '0' THENsq := '1';flag_subadd <= '1';ELSEsq := '0';flag_subadd <= '0';END IF;ry( 5 DOWNTO 0 ) <= rmd( 4 DOWNTO 0 ) & rq(4); ry( 5 DOWNTO 0 ) <= rmd( 5 DOWNTO 0 );rq( 4 DOWNTO 0 ) <= rq( 3 DOWNTO 0 ) & sq; state <= state + 1;WHEN 6 =>IF rq(0) = '0' THENry <= rmd( 5 DOWNTO 0 );r <= rmd( 4 DOWNTO 0 );ELSEr <= ry( 4 DOWNTO 0);END IF;state <= 0;q <= rq;done <= '1' ;WHEN OTHERS =>IF rmd(5) = '0' THENsq := '1';flag_subadd <= '1';ELSEsq := '0';flag_subadd <= '0';END IF;ry( 5 DOWNTO 0 ) <= rmd( 4 DOWNTO 0 ) & rq(4);rq( 4 DOWNTO 0 ) <= rq( 3 DOWNTO 0 ) & sq;state <= state + 1;END CASE;END IF;END PROCESS;rmd <= ry + rx WHEN flag_subadd = '0' ELSEry + NOT rx + 1;END behav;-- Copyright (C) 1991-2011 Altera Corporation-- Your use of Altera Corporation's design tools, logic functions-- and other software and tools, and its AMPP partner logic-- functions, and any output files from any of the foregoing-- (including device programming or simulation files), and any-- associated documentation or information are expressly subject-- to the terms and conditions of the Altera Program License-- Subscription Agreement, Altera MegaCore Function License-- Agreement, or other applicable license agreement, including,-- without limitation, that your use is for the sole purpose of-- programming logic devices manufactured by Altera and sold by-- Altera or its authorized distributors. Please refer to the-- applicable agreement for further details.-- *************************************************************************** -- This file contains a Vhdl test bench template that is freely editable to-- suit user's needs .Comments are provided in each section to help the user-- fill out necessary details.-- *************************************************************************** -- Generated on "03/04/2014 15:45:59"-- Vhdl Test Bench template for design : devide---- Simulation tool : ModelSim-Altera (VHDL)--LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY devide_tb ISEND devide_tb;ARCHITECTURE devide_arch OF devide_tb IS-- constants-- signalsSIGNAL clock : STD_LOGIC:='0';SIGNAL done : STD_LOGIC:='0';SIGNAL overflow : STD_LOGIC:='0';SIGNAL q : STD_LOGIC_VECTOR(4 DOWNTO 0):="00000"; SIGNAL r : STD_LOGIC_VECTOR(4 DOWNTO 0):="00000"; SIGNAL reset : STD_LOGIC:='0';SIGNAL start : STD_LOGIC:='0';SIGNAL x : STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL y : STD_LOGIC_VECTOR(8 DOWNTO 0); CONSTANT CLK_P : TIME :=10 ns;COMPONENT devidePORT (clock : IN STD_LOGIC;done : OUT STD_LOGIC;overflow : OUT STD_LOGIC;q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);r : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);reset : IN STD_LOGIC;start : IN STD_LOGIC;x : IN STD_LOGIC_VECTOR(4 DOWNTO 0);y : IN STD_LOGIC_VECTOR(8 DOWNTO 0));END COMPONENT;BEGINi1 : devidePORT MAP (-- list connections between master ports and signalsclock => clock,done => done,overflow => overflow,q => q,r => r,reset => reset,start => start,x => x,y => y);PROCESSBEGINCLOCK<='0';W AIT FOR CLK_P;CLOCK<='1';W AIT FOR CLK_P;END PROCESS;reset <= '0','1' AFTER 10 ns;start <='0','1' AFTER 25 ns;x<="00000","01011"AFTER 60 ns,"00010"AFTER 120 ns;y<="000000000","010010000"AFTER 60 ns,"000001101"AFTER 120 ns; END devide_arch;二.仿真图。
电路中的除法器设计在电路设计中,除法器是一种十分重要的组件。
它可以将输入的数字进行除法运算,将商和余数输出。
除法器在计算机和数字信号处理器等电子设备中被广泛使用,因此其设计和优化具有重要意义。
一、除法器的基本原理除法运算是一种复杂的运算,要实现除法器的设计,首先需要了解其基本原理。
除法器的基本原理是通过移位和减法实现的。
在将被除数和除数输入除法器后,除法器将被除数和除数进行比较,并开始迭代过程。
在每一次迭代中,被除数的位数向左移动,直到其高位与除数相等或超过除数。
然后,除法器进行减法操作,将除数减去被除数,结果作为商的一位。
此后,商持续左移,被减数保持不变,重复上述过程,直到所有的商位都得出。
二、除法器的设计策略在除法器的设计中,有几种常见的策略可以考虑。
1. 组合逻辑除法器:这种类型的除法器使用组合逻辑电路实现,通过减法器、比较器和移位器等组件的组合来实现除法运算。
组合逻辑除法器的优点是速度较快,但缺点是占用较多的电路资源。
2. 串行逻辑除法器:与组合逻辑除法器相反,串行逻辑除法器使用顺序逻辑电路实现。
它通过一个时钟信号,逐位地进行计算,因此典型的串行逻辑除法器速度较慢。
但串行逻辑除法器更节省电路资源,因此在一些资源有限的场景中得到了广泛应用。
3. 重复系列除法器:这种除法器通过多个并行的子除法器实现,并行计算多个位的商。
重复系列除法器具有较高的性能,但需要更多的电路资源和功耗。
三、除法器的优化方法为了提高除法器的性能和效率,可以采用一些优化方法。
1. 位级并行思路:通过将除法器分解为多位的子除法器,并行计算多个子除法器,可以大幅提高除法器的速度。
这种方法在重复系列除法器中得到了广泛应用。
2. 乘法相关技巧:利用乘法器计算除法运算,可以加速除法器的运算速度。
通过将除数进行逆运算,转化为乘法操作,可以利用乘法器的高速性能,提升除法器的效率。
3. 进制转换思想:将数字进行二进制到十进制的转换,然后进行简单的除法运算,可以减少运算的复杂程度,提高除法器的运算速度。
Verilog除法器设计(包含单步设计和流水线设计)1.单步设计:单步设计是最简单的一种除法器设计,其原理是将被除数和除数逐位进行比较和计算,直到得到商和余数。
首先,需要定义Verilog模块的输入和输出端口。
输入包括被除数(dividend)和除数(divisor),输出包括商(quotient)和余数(remainder)。
同时,还需要定义一些辅助信号,如计数器和比较器。
```verilogmodule Dividerinput [N-1:0] dividend,input [N-1:0] divisor,output [N-1:0] quotient,output [N-1:0] remainder```在单步设计中,使用一个循环进行逐位比较和计算,直到得到商和余数。
在每一步循环中,被除数向左移动一位,并与除数进行比较。
如果被除数大于或等于除数,则商的对应位为1,否则为0。
然后,将商的对应位赋值给商,并从被除数中减去除数的相应部分。
最后,余数更新为被除数。
```verilogreg [N-1:0] temp_dividend;reg [N-1:0] temp_remainder;reg [N-1:0] temp_quotient;integer i;temp_dividend = dividend;temp_remainder = {N{1'b0}};temp_quotient = {N{1'b0}};for (i = 0; i < N; i = i+1) begintemp_remainder = temp_dividend;if (temp_remainder >= divisor) begin temp_quotient[i] = 1'b1;temp_dividend = temp_remainder - divisor; endtemp_dividend = temp_dividend << 1;endquotient = temp_quotient;remainder = temp_dividend;endendmodule```以上就是单步设计的Verilog除法器代码。
Xxxxxxxxx课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:阵列除法器的设计院(系):xxxxxxxxx专业:xxxxxxxxx班级:xxxxxxxxx学号:xxxxxxxxxxx姓名:xxxxxxxxxxxxx指导教师:xxxxxxxxxxxx完成日期:xxxxxxxxxxxxxxx沈阳航空工业学院课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (3)1.3设计环境 (4)第2章详细设计方案 (7)2.1顶层方案图的设计与实现 (7)2.1.1创建顶层图形设计文件 (7)2.1.2器件的选择与引脚锁定 (8)2.1.3编译、综合、适配 (9)2.2功能模块的设计与实现 (9)2.3仿真调试 (11)第3章编程下载与硬件测试 (14)3.1编程下载 (14)3.2硬件测试及结果分析 (14)参考文献 (16)附录(电路原理图) (17)第1章总体设计方案1.1 设计原理阵列除法器是一种并行运算部件,采用大规模集成电路制造,与早期的串行除法器相比,阵列除法器不仅所需的控制线路少,而且能提供令人满意的高速运算速度。
阵列除法器有多种形式,如不恢复余数阵列除法器、补码阵列除法器等等本实验设计的是加减交替阵列除法器。
原理是利用一个可控加法/减法CAS单元所组成的流水阵列来实现的它有四个输出端和四个输入端。
当输入线P=0时,CAS作加法运算;当P=1时,CAS作减法运算。
逻辑结构图如图1.1所示。
图1.1不恢复余数阵列除法器的逻辑结构图CAS单元的输入与输出的关系可用如下一组逻辑方程来表示:S i=A i⊕(B i⊕P)⊕CC i+1=(A i+C i)·(B i⊕P)+A i C i当P=0时,就是一个全加器,如下式:S i=A i⊕B i⊕C iC i+1=A i B i+B i C i+A i C i当P=1时,则得求差公式:S i=A i⊕B i⊕C iC i+1=A i B i+B i C i+A i C i其中B i=B i⊕1。
基于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位二进制除法器的设计班级 / 学号学生姓名指导教师常丽东沈阳航空航天大学课程名称数字逻辑课程设计院(系)计算机学院专业计算机科学与技术班级学号姓名课程设计题目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。
除法器设计摘要: 本设计要求设计一个简单的除法器,根据要求采用乘法器BG314与运算放大器3554AM以及外部电源共同实现除法器功能.乘法器用以实现乘法运算,然后通过运算放大器工作于负反馈状态实现信号的放大,并由自制电源电路供电.通过对系统各模块进行仔细的分析,了解了各器件的性能与用途后,便可将其运用到自己的设计当中去.电路设计完成后,开始对系统进行测试,方法有两种,可以通过对系统电路在Multisim软件下仿真测试,也可以做出相应的印制电路板来进行测试.在本设计中,通过仿真测试与实物测试相结合的综合测试后,发现系统基本能达到设计要求.关键字: 乘法器运算放大器电源Multisim 印制电路板Summary: This design requests to design a simple division machine, adopting the multiplication machine BG314 and the operation enlarger 3554 AMses and the exterior power supplies according to the request to carry out the division machine function together.The multiplication machine carries out the multiplication operation in order to, then pass to operate the enlarger work to carry out the signal to enlarge in the negative feedback appearance, and from the self-control power supply electric circuit power supply.Pass to carry on the careful analysis to each mold of system piece, after understanding the function and uses of each machine piece, can make use of it to own design then in the middle.The electric circuit is after design complete, starting carrying on the test to the system, the method have two kinds of, can pass to imitate the true test to the system electric circuit under the software of Multisim, can also do a homologous of print and make circuit board to carry on the test.In this design, after passing to imitate the comprehensive test that the true test and real objects test combine together, discover that the system is basic and can attain design to request.Key word: The multiplication machine operation enlarger power supply Multisim prints to make the circuit board目录1、系统方案设计与论证 (1)1.1 设计要求 (1)1.2 系统基本方案 (1)1.2.1 各模块方案选择与论证 (1)(1) 乘法器模块 (1)(2) 运算电路模块 (2)(3) 电源模块 (2)(4) 显示模块 (2)1.2.2系统各模块的最终方案 (3)2、系统的硬件设计与实现 (3)2.1 系统硬件的基本组成部分 (3)2.2 主要单元电路设计 (3)2.2.1 乘法器电路设计 (3)2.2.2 运算电路设计 (5)2.2.3 电源电路设计 (9)2.2.4 显示电路的设计 (13)3、系统测试与优化 (13)3.1 电源部分测试 (13)3.2 其他部分测试 (14)3.3 系统实现的功能 (15)4 结论 (15)4.1 评价 (15)4.2 心得 (15)5 参考文献 (16)6附录 (16)6.1 器件清单 (16)6.2 系统原理图 (16)1、系统方案设计与论证1.1 设计要求设计一个简单的除法器(Vx=0.2V V y=0.5V K=1 可用集成芯片做)1.2 系统基本方案根据题目要求,系统可以划分为集成乘法器模块、集成运算放大器模块和12V电源模块.模块框图如图1.2所示.为实现各模块的功能,分别做了几种不同的设计方案并进行了论证.图1.2 除法器基本模块方框图1.2.1 各模块方案选择与论证(1) 乘法器模块根据题目要求,模拟乘法器主要用于实现两个互不相关的模拟信号间的相乘的功能.对乘法器的选择有以下两种方案:方案一:采用集成模拟乘法器BG314. 集成模拟乘法器是实现两个模拟信号相乘的器件,它广泛用于乘法、除法、乘方和开方等模拟运算,同时也广泛用于信息传输系统作为调幅、解调、混频、鉴相和自动增益控制电路,是一种通用性很强的非线性电子器件,目前已有多种形式、多品种的单片集成电路,同时它也是现代一些专用模拟集成系统中的重要单元.该集成模拟乘法器不仅功能强大而且外部电路简单,工作原理易理解.方案二:采用分离元件组合电路.分离元件组合电路参数可自行调节,但是精度较差,在使用过程中难度较大.而且由于电路较复杂,增加了焊接的难度.根据以上论述,考虑到各方面的因素,在本设计中,采用简单、方便、可靠的集成模拟乘法器来实现.(2) 运算电路模块根据题目要求,运算电路主要用于实现信号的放大功能.对于运算放大器的选择有以下三种方案:方案一:采用单运放集成芯片3554AM.这是一款较老的芯片,在平时的电路设计当中常常要用到,主要是因为它是同类芯片当中功能相似但电路结构却相对简单的一种.方案二:采用单运放集成芯片LM741.这是曾经学到过的一种芯片,我们对它较熟悉,而且对其内部结构和功能也有所了解.它的各参数都较稳定,有较高的共模抑制比,也是需要15V的双电源供电.方案三:采用双运放集成芯片LM358.这也是一款较常用到的芯片,由于是双运放,所以功能也相应的有所加强,但是我们所用到的电路比较简单,结果可能使它的很多功能都没有得到运用,导致对资源的浪费.在本设计中,对各方案进行比较论证之后,我们采用熟悉简单而且性能优良的单运放集成芯片3554AM来实现对信号的放大.(3) 电源模块电源模块主要用于实现对各模块供电的功能.对于电源模块的选择有以下三种方案: 方案一:采用1.5V常用电池串接而成.这种方法简单易懂,但是精确度不够,稳定度也不高,当电池里面的电用光之后,便不在具有供电功能.方案二:采用直接购买电源的方法.在市场上可以直接买到相应的电源,但是考虑到经济上的原因,显然这并不合适.方案三:采用自制整流电路.这种方法简单可行,可以得到精确的电压值,而且稳定度高,可以长期使用.正好可以让自己所学的知识在实践中得到很好的运用.其方框图如图1.3所示:图1.3 整流电路方框图根据以上论述,考虑到经济、实用等方面因素,在本设计中选择方案三,采用自制整流电路来实现.(4) 显示模块根据不同的需要,显示模块可以有以下三种不同的方案可供选择:方案一:使用数码管显示时间和温度.数码管具有低功耗、低压、寿命长、耐老化、防晒、防潮、防火、防高低温等优点,对外界环境要求低,易于维护,同时其精度比较高,操作简单.另外,数码管采用BCD码显示数字,程序编译简单,资源占用较少.方案二:使用液晶显示屏显示. 液晶显示屏(LCD)具有轻薄短小,低耗电量,无辐射危险,平面直角显示以及影象稳定不闪烁,可视面积大等优势.方案三:采用数字电压表进行直接测量.数字电压表读数精确,是常用器件,使用起很方便.而且性能稳定,读数方便.根据以上论述,由于我们暂时对LCD还不是很熟悉,对其性能还不是很了解,而使用数码管会使电路变的复杂,而且还要通过编程来实现,因此我们在设计中选择直接用数字电压表进行测量显示读数.1.2.2 系统各模块的最终方案经过仔细的分析与论证,决定了系统各模块的最终方案如下:(1)乘法器模块:采用集成模拟乘法器BG314实现;(2) 运算电路模块: 采用单运放集成芯片LM741;(3) 电源模块: 采用自制整流电路实现;(4) 显示模块: 采用数字电压表进行直接测量.系统的基本框图如图1.4所示.图1.4 系统的基本框图模拟乘法器主要用于实现两个互不相关的模拟信号间的相乘的功能,而运算电路主要用于实现对信号的放大.其工作过程如下:电源加电后, 经过整流电路的整流以后可以得到运放所需要的+(-)15V电压,从乘法器输入端输入被处理电压,经过运放电路处理后便可在数字电压表上看到经过除法器处理过后的电压值了.2、系统的硬件设计与实现2.1 系统硬件的基本组成部分本题是一个除法器的综合设计,在设计中运用了模拟乘法器处理技术、电压整流技术. 2.2 主要单元电路设计2.2.1 乘法器电路设计(1) 模拟乘法器的基本特性模拟乘法器是一种完成两个模拟信号(连续变化的电压或电流)相乘作用的电子器件,通常具有两个输入端和一个输出端,电路符号如图2.1所示。
高速硬件除法器设计一、实验目得:了解与掌握硬件除法器得结构与工作原理,分析除法器得仿真波形与工作时序。
二、实验原理:除法器算法得思路与手写除法基本一致。
假设除法a/b,a、b就是输入得两个位数都为n得二进制数。
如果位数小于n,可以在位数较少得数得前面添加0来满足这种位数要求。
商与余数就是n位标准矢量类型得二进制数。
在过程中,算法也就是按顺序执行得,但就是综合后系统将会由组合逻辑电路组成,进程中得每一步都与系统构建得不同级别得逻辑电路相对应。
首先,从输入信号中创建变量A与B,A=a,B=b,其中a,b都就是n位二进制数。
如果A大于等于B,则商为1 ,余数为A-B,否则商为0,余数为A。
这就是算法开始得第一次循环,如果小于B,结果商位就是0,A得值不做变化并保留其值。
否则,结果商位为1,则把相减后得余数插入变量A中。
不管比较结果如何,变量A都要右移一位(左边添加0),接着开始下一次循环。
循环n次之后,n位结果赋给商,最后A剩余得值就就是余数。
三、实验任务:用VerilogHDL设计除法器。
除法器得参考程序如下:module DIV16(input CLK,input[15:0] A,B,output reg[15:0] QU,RE);reg[15:0] AT,BT,P,Q; integer i;always (posedge CLK) beginAT=A; BT=B; P=16'H0000;Q=16'H0000;for(i=15;i>=0;i=i-1)beginP={P[14:0],AT[15]};AT={AT[14:0],1'B0}; P=P-BT;if (P[15]==1) begin Q[i]=0; P=P+BT; endelse Q[i]=1;endendalways (*) begin QU=Q;RE=P; endendmodule其中A与B就是除法器输入端得两个16位数据,它们分别为被除数与除数,输出结果分成两部分:QU就是商,RE就是余数。
除法器设计摘要: 本设计要求设计一个简单的除法器,根据要求采用乘法器BG314与运算放大器3554AM以及外部电源共同实现除法器功能.乘法器用以实现乘法运算,然后通过运算放大器工作于负反馈状态实现信号的放大,并由自制电源电路供电.通过对系统各模块进行仔细的分析,了解了各器件的性能与用途后,便可将其运用到自己的设计当中去.电路设计完成后,开始对系统进行测试,方法有两种,可以通过对系统电路在Multisim软件下仿真测试,也可以做出相应的印制电路板来进行测试.在本设计中,通过仿真测试与实物测试相结合的综合测试后,发现系统基本能达到设计要求.关键字: 乘法器运算放大器电源Multisim 印制电路板Summary: This design requests to design a simple division machine, adopting the multiplication machine BG314 and the operation enlarger 3554 AMses and the exterior power supplies according to the request to carry out the division machine function together.The multiplication machine carries out the multiplication operation in order to, then pass to operate the enlarger work to carry out the signal to enlarge in the negative feedback appearance, and from the self-control power supply electric circuit power supply.Pass to carry on the careful analysis to each mold of system piece, after understanding the function and uses of each machine piece, can make use of it to own design then in the middle.The electric circuit is after design complete, starting carrying on the test to the system, the method have two kinds of, can pass to imitate the true test to the system electric circuit under the software of Multisim, can also do a homologous of print and make circuit board to carry on the test.In this design, after passing to imitate the comprehensive test that the true test and real objects test combine together, discover that the system is basic and can attain design to request.Key word: The multiplication machine operation enlarger power supply Multisim prints to make the circuit board目录1、系统方案设计与论证 (1)1.1 设计要求 (1)1.2 系统基本方案 (1)1.2.1 各模块方案选择与论证 (1)(1) 乘法器模块 (1)(2) 运算电路模块 (2)(3) 电源模块 (2)(4) 显示模块 (2)1.2.2系统各模块的最终方案 (3)2、系统的硬件设计与实现 (3)2.1 系统硬件的基本组成部分 (3)2.2 主要单元电路设计 (3)2.2.1 乘法器电路设计 (3)2.2.2 运算电路设计 (5)2.2.3 电源电路设计 (9)2.2.4 显示电路的设计 (13)3、系统测试与优化 (13)3.1 电源部分测试 (13)3.2 其他部分测试 (14)3.3 系统实现的功能 (15)4 结论 (15)4.1 评价 (15)4.2 心得 (15)5 参考文献 (16)6附录 (16)6.1 器件清单 (16)6.2 系统原理图 (16)1、系统方案设计与论证1.1 设计要求设计一个简单的除法器(Vx=0.2V V y=0.5V K=1 可用集成芯片做)1.2 系统基本方案根据题目要求,系统可以划分为集成乘法器模块、集成运算放大器模块和12V电源模块.模块框图如图1.2所示.为实现各模块的功能,分别做了几种不同的设计方案并进行了论证.图1.2 除法器基本模块方框图1.2.1 各模块方案选择与论证(1) 乘法器模块根据题目要求,模拟乘法器主要用于实现两个互不相关的模拟信号间的相乘的功能.对乘法器的选择有以下两种方案:方案一:采用集成模拟乘法器BG314. 集成模拟乘法器是实现两个模拟信号相乘的器件,它广泛用于乘法、除法、乘方和开方等模拟运算,同时也广泛用于信息传输系统作为调幅、解调、混频、鉴相和自动增益控制电路,是一种通用性很强的非线性电子器件,目前已有多种形式、多品种的单片集成电路,同时它也是现代一些专用模拟集成系统中的重要单元.该集成模拟乘法器不仅功能强大而且外部电路简单,工作原理易理解.方案二:采用分离元件组合电路.分离元件组合电路参数可自行调节,但是精度较差,在使用过程中难度较大.而且由于电路较复杂,增加了焊接的难度.根据以上论述,考虑到各方面的因素,在本设计中,采用简单、方便、可靠的集成模拟乘法器来实现.(2) 运算电路模块根据题目要求,运算电路主要用于实现信号的放大功能.对于运算放大器的选择有以下三种方案:方案一:采用单运放集成芯片3554AM.这是一款较老的芯片,在平时的电路设计当中常常要用到,主要是因为它是同类芯片当中功能相似但电路结构却相对简单的一种.方案二:采用单运放集成芯片LM741.这是曾经学到过的一种芯片,我们对它较熟悉,而且对其内部结构和功能也有所了解.它的各参数都较稳定,有较高的共模抑制比,也是需要15V的双电源供电.方案三:采用双运放集成芯片LM358.这也是一款较常用到的芯片,由于是双运放,所以功能也相应的有所加强,但是我们所用到的电路比较简单,结果可能使它的很多功能都没有得到运用,导致对资源的浪费.在本设计中,对各方案进行比较论证之后,我们采用熟悉简单而且性能优良的单运放集成芯片3554AM来实现对信号的放大.(3) 电源模块电源模块主要用于实现对各模块供电的功能.对于电源模块的选择有以下三种方案: 方案一:采用1.5V常用电池串接而成.这种方法简单易懂,但是精确度不够,稳定度也不高,当电池里面的电用光之后,便不在具有供电功能.方案二:采用直接购买电源的方法.在市场上可以直接买到相应的电源,但是考虑到经济上的原因,显然这并不合适.方案三:采用自制整流电路.这种方法简单可行,可以得到精确的电压值,而且稳定度高,可以长期使用.正好可以让自己所学的知识在实践中得到很好的运用.其方框图如图1.3所示:图1.3 整流电路方框图根据以上论述,考虑到经济、实用等方面因素,在本设计中选择方案三,采用自制整流电路来实现.(4) 显示模块根据不同的需要,显示模块可以有以下三种不同的方案可供选择:方案一:使用数码管显示时间和温度.数码管具有低功耗、低压、寿命长、耐老化、防晒、防潮、防火、防高低温等优点,对外界环境要求低,易于维护,同时其精度比较高,操作简单.另外,数码管采用BCD码显示数字,程序编译简单,资源占用较少.方案二:使用液晶显示屏显示. 液晶显示屏(LCD)具有轻薄短小,低耗电量,无辐射危险,平面直角显示以及影象稳定不闪烁,可视面积大等优势.方案三:采用数字电压表进行直接测量.数字电压表读数精确,是常用器件,使用起很方便.而且性能稳定,读数方便.根据以上论述,由于我们暂时对LCD还不是很熟悉,对其性能还不是很了解,而使用数码管会使电路变的复杂,而且还要通过编程来实现,因此我们在设计中选择直接用数字电压表进行测量显示读数.1.2.2 系统各模块的最终方案经过仔细的分析与论证,决定了系统各模块的最终方案如下:(1)乘法器模块:采用集成模拟乘法器BG314实现;(2) 运算电路模块: 采用单运放集成芯片LM741;(3) 电源模块: 采用自制整流电路实现;(4) 显示模块: 采用数字电压表进行直接测量.系统的基本框图如图1.4所示.图1.4 系统的基本框图模拟乘法器主要用于实现两个互不相关的模拟信号间的相乘的功能,而运算电路主要用于实现对信号的放大.其工作过程如下:电源加电后, 经过整流电路的整流以后可以得到运放所需要的+(-)15V电压,从乘法器输入端输入被处理电压,经过运放电路处理后便可在数字电压表上看到经过除法器处理过后的电压值了.2、系统的硬件设计与实现2.1 系统硬件的基本组成部分本题是一个除法器的综合设计,在设计中运用了模拟乘法器处理技术、电压整流技术. 2.2 主要单元电路设计2.2.1 乘法器电路设计(1) 模拟乘法器的基本特性模拟乘法器是一种完成两个模拟信号(连续变化的电压或电流)相乘作用的电子器件,通常具有两个输入端和一个输出端,电路符号如图2.1所示。
图2.1 模拟乘法器的电路符号若输入信号为x u , y u ,则输出信号o u 为:o u =k y u x u式中: k 为乘法器的增益系数或标尺因子,单位为V 1 .根据两个输入电压的不同极性,乘法输出的极性有四种组合,用图2.2所示的工作象限来说明。
图2.2 模拟乘法器的工作象限若信号x u 、y u 均限定为某一极性的电压时才能正常工作,该乘法器称为单象限乘法器;若信号x u 、y u 中一个能适应正、负两种极性电压,而另一个只能适应单极性电压,则为二象限乘法器;若两个输入信号能适应四种极性组合,称为四象限乘法器。
(2) BG314内部结构如图2.3所示,外部电路如图2.4所示:图2.3 BG314内部电路图2.4 BG314 外部电路(3) BG314主要技术参数表1 BG314技术参数(4) BG314 内部结构分析输出电压o u =k x u y u 式中 k=yx ox c R R I R 2为乘法器的增益系数。