除法器设计方法

合集下载

电路中的除法器设计

电路中的除法器设计

电路中的除法器设计在电路设计中,除法器是一种十分重要的组件。

它可以将输入的数字进行除法运算,将商和余数输出。

除法器在计算机和数字信号处理器等电子设备中被广泛使用,因此其设计和优化具有重要意义。

一、除法器的基本原理除法运算是一种复杂的运算,要实现除法器的设计,首先需要了解其基本原理。

除法器的基本原理是通过移位和减法实现的。

在将被除数和除数输入除法器后,除法器将被除数和除数进行比较,并开始迭代过程。

在每一次迭代中,被除数的位数向左移动,直到其高位与除数相等或超过除数。

然后,除法器进行减法操作,将除数减去被除数,结果作为商的一位。

此后,商持续左移,被减数保持不变,重复上述过程,直到所有的商位都得出。

二、除法器的设计策略在除法器的设计中,有几种常见的策略可以考虑。

1. 组合逻辑除法器:这种类型的除法器使用组合逻辑电路实现,通过减法器、比较器和移位器等组件的组合来实现除法运算。

组合逻辑除法器的优点是速度较快,但缺点是占用较多的电路资源。

2. 串行逻辑除法器:与组合逻辑除法器相反,串行逻辑除法器使用顺序逻辑电路实现。

它通过一个时钟信号,逐位地进行计算,因此典型的串行逻辑除法器速度较慢。

但串行逻辑除法器更节省电路资源,因此在一些资源有限的场景中得到了广泛应用。

3. 重复系列除法器:这种除法器通过多个并行的子除法器实现,并行计算多个位的商。

重复系列除法器具有较高的性能,但需要更多的电路资源和功耗。

三、除法器的优化方法为了提高除法器的性能和效率,可以采用一些优化方法。

1. 位级并行思路:通过将除法器分解为多位的子除法器,并行计算多个子除法器,可以大幅提高除法器的速度。

这种方法在重复系列除法器中得到了广泛应用。

2. 乘法相关技巧:利用乘法器计算除法运算,可以加速除法器的运算速度。

通过将除数进行逆运算,转化为乘法操作,可以利用乘法器的高速性能,提升除法器的效率。

3. 进制转换思想:将数字进行二进制到十进制的转换,然后进行简单的除法运算,可以减少运算的复杂程度,提高除法器的运算速度。

Verilog除法器设计(包含单步设计和流水线设计)

Verilog除法器设计(包含单步设计和流水线设计)

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除法器代码。

除法器设计方法

除法器设计方法

controlsignals:process(T,I,X,Y)
--状态控制进程
begin
Extern<='0';Done<='0';Ain<='0';Gin<='0';
Gout<='0';AddSub<='0';Rin<="0000";Rout<="0000";
case T is
when "00"=>
update:process(clk)
--同步数据更新进程
begin
if(clk='1'and clk'event) then
state<=nextstate;
if load='1' then
dividend<='0'&dividend_in;
end if;
if su='1' then
dividend(8 downto 4)<=subout;
end proc;
architecture Behavioral of proc is
component upcount
--计数器元件声明
Port ( Clear,Clock : in std_logic;
Q : buffer std_logic_vector(1 downto 0));
end component;
signal subout:std_logic_vector(4 downto 0);
signal dividend:std_logic_vector(8 downto 0);

二进制除法器设计步骤

二进制除法器设计步骤

设计一个二进制除法器的步骤如下:
1. 确定设计要求。

明确除数和被除数的位数,以及商和余数的位数。

2. 设计硬件结构。

根据设计要求,设计出相应的硬件结构,包括数据输入、数据输出、除数输入、被除数输入、商输出和余数输出等。

3. 编写硬件描述语言代码。

根据硬件结构,使用硬件描述语言(如Verilog或VHDL)编写代码,实现二进制除法器的功能。

4. 仿真验证。

使用仿真工具对设计的二进制除法器进行仿真验证,确保其功能正确。

5. 综合和布局布线。

将硬件描述语言代码进行综合和布局布线,生成可用的二进制文件。

6. 下载和测试。

将生成的二进制文件下载到FPGA或ASIC 等硬件中,进行实际测试,验证其功能和性能。

以上步骤仅是设计二进制除法器的基本流程,具体的设计和实现可能会因具体应用和设计要求而有所不同。

简单的除法器设计系统

简单的除法器设计系统

除法器设计摘要: 本设计要求设计一个简单的除法器,根据要求采用乘法器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 Vy=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所示。

16位小数除法器参考思路

16位小数除法器参考思路

16位小数除法器的ASIC 实现 一.说明: ● 输入输出信号input : N_in [15:0], D_in[15:0];Input : CLK_in, Reset_in; Output : Q_out[15:0].● N_in[15:0]小于D_in ,即被除数小于除数,输出商Q_out[15:0]中Q[15]一定为0,Q[14:0]为商的小数部分。

16位除法器设计的流程图见图 1. 分子N_in[15:0], 分母D_in[15:0],商Q_out[15:0]. 二.流程图根据已知的条件和要求,采用原码不恢复余数法。

若第i-1次求商的余数R i-1为正,即余数大于除数,减法器的标识位Flag 为1,下一次求商的过程为:● 若R i ≥0,Q_out[i]=1, 下一步,R i+1=2R i -D_in 。

(因为N_in 一定小于D_in ,余数左移后一定添0,即*2)● 若R i <0,Q_out[i]=0,先恢复余数Ri+D_in ,下一步,R i+1=2(R i +D_in )-D_in=2R i +D_in 。

这就是原码不恢复余数法的运算规则,其流程图见图1. 其中涉及到的主要电路有4个:减法器,加法器,移位器和寄存器。

其中最主要的电路为加法器,该加法器的工作频率和功耗等性能指标主要取决于该加法器的设计。

减法器的流程图见图2。

,不减法器B[q-1:0]三. 基本电路结构D_in[15:0]图3整体电路基本结构见图3,主要由三种电路构成:加法器,移位寄存器和寄存器。

下面分别介绍这三种电路的电路结构。

加法器该电路中的加法器采用Brent-Kung加法器[2],设计巧妙,可以提高整体电路的工作频率。

其0.25um 工艺Spice网表见下,0.13um工艺的电路设计结构完全一致,仅需重新设定Mos管的尺寸。

.subckt not in out M=1mn1p out in vss vss nmos l=0.25u w='0.25u*1*M'mp1p out in vdd vdd pmos l=0.25u w='0.25u*2*M'.ends not.subckt andnor_dyn a_and b_and c_nor outmpClk out clk vdd vdd pmos l=0.25u w='0.25u*1'mn0 out b_and n1 vss nmos l=0.25u w='0.25u*4'mn1 n1 a_and n2 vss nmos l=0.25u w='0.25u*4'mn2 out c_nor n2 vss nmos l=0.25u w='0.25u*2'mnClk n2 clk vss vss nmos l=0.25u w='0.25u*2'.ends andnor_dyn.subckt andnor_stat a_and b_and c_nor outmn0 n3 a_and vss vss nmos l=0.25u w='0.25u*2'mn1 out b_and n3 vss nmos l=0.25u w='0.25u*2'mn2 out c_nor vss vss nmos l=0.25u w='0.25u*1'mp0 n5 a_and vdd vdd pmos l=0.25u w='0.25u*4'mp1 n5 b_and vdd vdd pmos l=0.25u w='0.25u*4'mp2 out c_nor n5 vdd pmos l=0.25u w='0.25u*4'.ends andnor_stat.subckt nand_dyn a b outmpClk out clk vdd vdd pmos l=0.25u w='0.25u*1'mn0 out a n2 vss nmos l=0.25u w='0.25u*3'mn1 n2 b n1 vss nmos l=0.25u w='0.25u*3'mnClk n1 clk vss vss nmos l=0.25u w='0.25u*3'.ends nand_dyn.subckt nand_stat a b outmn0 n1 a vss vss nmos l=0.25u w='0.25u*2'mn1 out b n1 vss nmos l=0.25u w='0.25u*2'mp0 out a vdd vdd pmos l=0.25u w='0.25u*2'mp1 out b vdd vdd pmos l=0.25u w='0.25u*2'.ends nand_stat.subckt xnor_dyn a a_not b b_not outmpClk out clk vdd vdd pmos l=0.25u w='0.25u*1'mn0 n1 a n3 vss nmos l=0.25u w='0.25u*3'mn1 out b_not n1 vss nmos l=0.25u w='0.25u*3'mn2 n2 b n3 vss nmos l=0.25u w='0.25u*3'mn3 out a_not n2 vss nmos l=0.25u w='0.25u*3'mnClk n3 clk vss vss nmos l=0.25u w='0.25u*3'.ends xnor_dyn.subckt xnor_stat a a_not b b_not outmp0 n0 a vdd vdd pmos l=0.25u w='0.25u*4'mp1 out b n0 vdd pmos l=0.25u w='0.25u*4'mp2 n1 b_not vdd vdd pmos l=0.25u w='0.25u*4'mp3 out a_not n1 vdd pmos l=0.25u w='0.25u*4'mn0 n2 a_not vss vss nmos l=0.25u w='0.25u*2'mn1 out b n2 vss nmos l=0.25u w='0.25u*2'mn2 n3 a vss vss nmos l=0.25u w='0.25u*2'mn3 out b_not n3 vss nmos l=0.25u w='0.25u*2'.ends xnor_stat.subckt xor_stat a a_not b b_not outmp0 n0 a vdd vdd pmos l=0.25u w='0.25u*4'mp1 out b_not n0 vdd pmos l=0.25u w='0.25u*4'mp2 n1 b vdd vdd pmos l=0.25u w='0.25u*4'mp3 out a_not n1 vdd pmos l=0.25u w='0.25u*4'mn0 n2 a vss vss nmos l=0.25u w='0.25u*2'mn1 out b n2 vss nmos l=0.25u w='0.25u*2'mn2 n3 a_not vss vss nmos l=0.25u w='0.25u*2'mn3 out b_not n3 vss nmos l=0.25u w='0.25u*2'.ends xor_stat.end●一位左移寄存器电路已经相当成熟,可以参考[1].●寄存器电路也可参考[1].四.参考文献[1] Jan M. Rabaey, Anantha Chandrakasan,周润德(译),“数字集成电路”,2nd Edition, pp.430.[2] Jan M. Rabaey, Anantha Chandrakasan,周润德(译),“数字集成电路”,2nd Edition, pp.438.。

加减交替阵列除法器的设计与仿真实现

加减交替阵列除法器的设计与仿真实现

加减交替阵列除法器的设计与仿真实现一、引言随着数字电路的发展,除法器在计算机和通信系统中的应用越来越广泛。

加减交替阵列除法器是一种高效的除法器,具有运算速度快、面积小等优点。

本文将详细介绍加减交替阵列除法器的设计与仿真实现。

二、加减交替阵列除法器原理加减交替阵列除法器是一种基于移位和加减运算的快速除法器。

其主要原理如下:1. 将被除数左移n位,得到一个n+1位的数(其中最高位为0)。

2. 对于每个n+1位的数,采用加减交替的方式进行运算。

3. 在第n步时,判断商是否已经求出。

4. 如果商未求出,则返回第1步。

三、加减交替阵列除法器设计1. 系统框图加减交替阵列除法器由以下模块组成:被除数寄存器、商寄存器、余数寄存器、控制单元、计算单元和状态机。

系统框图如下所示:2. 系统模块设计(1)被除数寄存器被除数寄存器用于存储待处理的被除数。

它由一个n位的寄存器和一个移位器组成,可以将被除数左移n位。

(2)商寄存器商寄存器用于存储计算得到的商。

它由一个n位的寄存器和一个移位器组成,可以将商左移1位。

(3)余数寄存器余数寄存器用于存储计算得到的余数。

它由一个n+1位的寄存器和一个移位器组成,可以将余数左移1位。

(4)控制单元控制单元用于控制整个系统的运行。

它根据状态机的输出信号来控制各个模块之间的数据传输和运算。

(5)计算单元计算单元是加减交替阵列除法器最核心的部分,用于进行加减运算。

它由若干个加法器和减法器组成,每个加法器或减法器都能够进行一次加或减运算。

(6)状态机状态机用于控制控制单元的工作状态,并输出相应的信号。

它有以下三种状态:a. 初始化状态:在这个状态下,被除数、商、余数等变量都被初始化。

b. 运行状态:在这个状态下,加减交替阵列除法器按照原理进行运算。

c. 结束状态:在这个状态下,商已经求出,整个系统停止工作。

四、加减交替阵列除法器仿真实现1. 系统仿真为了验证加减交替阵列除法器的正确性,需要对其进行仿真。

除法器设计

除法器设计

除法器设计摘要: 本设计要求设计一个简单的除法器,根据要求采用乘法器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所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity divider is
Port ( dividend_in : in std_logic_vector(7 downto 0); --被除数
remainder<=dividend(7 downto 4); --分离出余数
quotient<=dividend(3 downto 0); --分离出商
state_graph:process(state,st,c)
--状态控制器
begin
load<='0';overflow<='0';sh<='0';su<='0';
update:process(clk)
--同步数据更新进程
begin
if(clk='1'and clk'event) then
state<=nextstate;
if load='1' then
dividend<='0'&dividend_in;
end if;
if su='1' then
dividend(8 downto 4)<=subout;
divisor : in std_logic_vector(3 downto 0); --除数
st : in std_logic;
--除法启动控制信号
clk : in std_logic;
--时钟信号
quotient : out std_logic_vector(3 downto 0); --商
remainder : out std_logic_vector(3 downto 0); --余数
w Function
R3in R3out 控制器
ALU
G
Ain Gin
Gout
AddSub
Extern
Done
简易CPU的基本操作及功能
操作 Load Rx,Data Move Rx,Ry Add Rx,Ry
Sub Rx,Ry
功能 Rx←Data Rx←[Ry] Rx←[Rx]+[Ry] Ry←[Rx]-[Ry]
else sh<='1';nextstate<=2;
end if;
when 2|3|4=>
--状态2、3、4:实现除法运算
if(c='1')then su<='1';nextstate<=state;
else sh<='1';nextstate<=state+1;
end if;
when 5=>
--状态5:结束运算过程,返回初始态
overflow : out std_logic);
--溢出标志
end divider;
architecture Behavioral of divider is
signal state,nextstate:integer range 0 to 5;
signal c,load,su,sh:std_logic;
设计控制电路至少需要有四个状态T0、T1、T2、T3,其中 T0状态表示没有任何操作的状态,即初始状态。T1对应各 种操作的第一步,T2、T3则分别对应加法和减法器的第二 步和第三步。为了实现这样的状态控制,可以用如图8-14 所示的电路实现。图8-14中包括一个4进制计数器和一个24译码器。用4进制计数器实现4个状态转换控制,用2-4译 码器对这4个状态进行译码,产生相应的控制信号。
dividend(0)<='1';
end if;
if sh='1' then
dividend<=dividend(7 downto 0)&'0';
end if;
end if;
end process update;
end Behavioral;
简易CPU的设计
Data
Bus
Clock
R0
R3
A
B
R0in R0out
C’/Sh
S5
S4
S3
C/Su
C/Su
当启动信号St=1时,启动除法器工作,产生Load信号,装 载被除数寄存器和除数寄存器。如果C=1,除法溢出,除 法器停止工作,溢出标志OV输出有效;如果C=0,将发生 第一次移位操作,控制电路转到状态S2。然后,如果C=1, 执行减法操作,减法操作完成后,C将保持为“0”,保证在 下一次时钟有效时产生移位操作。这个过程将直到完成4次 移位操作结束,控制状态转到S5。最后,如果C=1,执行 最后一次减法运算,否则,不做减法运算。这时没有移位 操作要求,控制电路回到停止状态S0。在这里假设启动信 号St为高有效,并且仅持续一个时钟周期,在完成全部操 作前,启动信号St将一直保持为低电平。
if(c='1') then su<='1';
end if;
nextstate<=0;
end if;
when 5=>
--状态5:结束运算过程,返回初始态
if(c='1') then su<='1';
end if;
nextstate<=0;
end case;
end process state_graph;
signal subout:std_logic_vector(4 downto 0);
signal dividend:std_logic_vector(8 downto 0);
begin
subout<=dividend(8 downto 4)-('0'&divisor); --减法器
c<=not subout(4);
remainder<=dividend(7 downto 4); --分离出余数
quotient<=dividend(3 downto 0); --分离出商
begin
subout<=dividend(8 downto 4)-('0'&divisor); --减法器
c<=not subout(4);
case state is
when 0=>
--状态0 :启动除法运算
if(st='1') then load<='1';nextstate<=1;
else nextstate<=0;
end if;
when 1=>
--状态1 :溢出判断
if(c='1')then overflow<='1';nextstate<=0;
除法器设计方法
9
Load Su
=1
Ld
Sh
X(8:0)
0
Sh
Clock
9
Load
MUX18_9
0
1
9
9
总线连接 5
1
5位减法器
X(8:4)
04
除数
0
8
被除数
X(3:1) X0
总线分配 9
St’/0
S0 (停止)
St/Load
C’/Sh S1
S2
C/OV
C/Su
C/Su C’/0
C’/Sh
பைடு நூலகம்
C’/Sh
相关文档
最新文档