建材秒知道
登录
建材号 > 设计 > 正文

简述比较器的作用及设计方法

着急的仙人掌
怡然的豆芽
2022-12-28 19:11:12

简述比较器的作用及设计方法?

最佳答案
勤奋的老师
烂漫的狗
2026-05-08 09:59:41

电压比较器可以看做是放大倍数接近“无穷大”的运算放大器。 电压比较器的功能:比较两个电压的大小(用输出电压的高或低电平,表示两个输入电压的大小关系): 当”+”输入端电压高于”-”输入端时,电压比较器输出为高电平; 当”+”输入端电压低于”-”输入端时,电压比较器输出为低电平; 电压比较器的作用:它可用作摹拟电路和数字电路的接口,还可以用作波形产生和变换电路等。利用简单电压比较器可将正弦波变成同频率的方波或矩形波。 简单的电压比较器结构简单,灵敏度高,但是抗干扰能力差,因此我们就要对它进行改进。改进后的电压比较器有:滞回比较器和窗口比较器。 运放,是通过反馈回路和输入回路的肯定“运算参数”,比如放大倍数,反馈量可以是输出的电流或电压的部份或全部。而比较器则不需要反馈,直接比较两个输入真个量,如果同相输入大于反相,则输出高电平,否则输出低电平。电压比较器输入是线性量,而输出是开关(高低电平)量。1般利用中,有时也能够用线性运算放大器,在不加负反馈的情况下,构成电压比较器来使用。 可用作电压比较器的芯片:所有的运算放大器。常见的有LM324 LM358 uA741 TL081234 OP07 OP27,这些都可以做成电压比较器(不加负反馈)。LM339、LM393是专业的电压比较器,切换速度快,延迟时间小,可用在专门的电压比较场合,其实它们也是1种运算放大器。

最新回答
缥缈的奇迹
土豪的超短裙
2026-05-08 09:59:41

这个比较简单,只需要单通道的比较器,P/N应该是LM331。将反相输入端接上一个4V基准电压,同相输入端接上你的待检测信号,这样只要大于4,输出端就会翻转成高电平,需要注意的是,LM331是open collect结构,需要外接上拉电阻,阻值可以是4.7k to 10k,取决于后级电路所需要的输入电流。

冷静的大象
温婉的吐司
2026-05-08 09:59:41
解:

方法一:

LIBRARY ieee

USE ieee.std_logic_1164.all

USE ieee.std_logic_unsigned.all

USE ieee.std_logic_arith.all

ENTITY comp1 IS

port(

a,b : in std_logic_vector(7 downto 0)

d,e,f : out std_logic

)

END

ARCHITECTURE hdlarch OF comp1 IS

BEGIN

d <= '1' when a = b else

'0'

e <= '1' when a <b else

'0'

f <= '1' when a <b else

'0'

END

方法二:

LIBRARY ieee

USE ieee.std_logic_1164.all

USE ieee.std_logic_unsigned.all

USE ieee.std_logic_arith.all

ENTITY comp2 IS

port(

a,b : in std_logic_vector(7 downto 0)

d,e,f : out std_logic

)

END

ARCHITECTURE hdlarch OF comp2 IS

signal tmp : std_logic_vector(8 downto 0)

signal t : std_logic

BEGIN

tmp <= ('0'&a)-('0'&b)

t <= '1' when tmp = 0 else

'0'

d <= t

e <= (not tmp(8)) and (not t)

f <= tmp(8) and (not t)

方法二使用资源较多

顺心的哈密瓜
专注的篮球
2026-05-08 09:59:41

LIBRARY IEEE

USE IEEE.STD_LOGIC_1164.ALL

USE IEEE.STD_LOGIC_UNSIGNED.ALL

ENTITY COMPARE4 IS                        ——四位比较器

PORT(IA_MORE_THAN_B:IN STD_LOGIC    ——高位比较的标志位的输入

IB_MORE_THAN_A:IN STD_LOGIC

IA_EQUAL_B:IN STD_LOGIC

A:IN STD_LOGIC_VECTOR(3 DOWNTO 0)——两个输入

B:IN STD_LOGIC_VECTOR(3 DOWNTO 0)

OA_MORE_THAN_B:OUT STD_LOGIC

OB_MORE_THAN_A:OUT STD_LOGIC

OA_EQUAL_B:OUT STD_LOGIC)

END COMPARE4

ARCHITECTURE BEHAV OF COMPARE4 IS

BEGIN

PROCESS(IB_MORE_THAN_A, IA_EQUAL_B,IA_EQUAL_B)

BEGIN

IF(IA_EQUAL_B='1')THEN

——从最高位比较,如果高位大则停止比较输出结果,否则进行下一位比较

IF(A(3)>B(3))THEN              

OA_MORE_THAN_B<='1'OB_MORE_THAN_A<='0'OA_EQUAL_B<='0'

ELSIF(A(3)<B(3))THEN

OA_MORE_THAN_B<='0'OB_MORE_THAN_A<='1'OA_EQUAL_B<='0'

ELSIF(A(2)>B(2))THEN

OA_MORE_THAN_B<='1'OB_MORE_THAN_A<='0'OA_EQUAL_B<='0'

ELSIF(A(2)<B(2))THEN

OA_MORE_THAN_B<='0'OB_MORE_THAN_A<='1'OA_EQUAL_B<='0'

ELSIF(A(1)>B(1))THEN

OA_MORE_THAN_B<='1'OB_MORE_THAN_A<='0'OA_EQUAL_B<='0'

ELSIF(A(1)<B(1))THEN

OA_MORE_THAN_B<='0'OB_MORE_THAN_A<='1'OA_EQUAL_B<='0'

ELSIF(A(0)>B(0))THEN

OA_MORE_THAN_B<='1'OB_MORE_THAN_A<='0'OA_EQUAL_B<='0'

ELSIF(A(0)<B(0))THEN

OA_MORE_THAN_B<='0'OB_MORE_THAN_A<='1'OA_EQUAL_B<='0'

ELSE

——如果输入中两个数相等的标志位为0,则表明高位不相等,停止比较,输出结果。

OA_MORE_THAN_B<='0'OB_MORE_THAN_A<='0'OA_EQUAL_B<='1'

END IF

ELSE

OA_MORE_THAN_B<=IA_MORE_THAN_BOB_MORE_THAN_A<=IB_MORE_THAN_A

OA_EQUAL_B<=IA_EQUAL_B

END IF

END PROCESS

END BEHAV

VHDL 的英文全名是VHSIC Hardware Description Language(VHSIC硬件描述语言)。VHSIC是Very High Speed Integrated Circuit的缩写,是20世纪80年代在美国国防部的资助下始创的,并最终导致了VHDL语言的出现。1987 年底,VHDL被 IEEE 和美国国防部确认为标准硬件描述语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

寒冷的大树
凶狠的鸭子
2026-05-08 09:59:41
下面是CD4585的VHDL描述,CD4585是一个可以级联的4位数值比较器。你可以改一下描述就变成8位的了:

LIBRARY IEEE;

USE IEEE.Std_logic_1164.ALL;

ENTITY cd4585 IS

PORT (a_g_b,a_e_b,a_l_b:IN Std_logic;

a,b:IN Std_logic_vector (3 DOWNTO0);

a_greater_than_b:OUT Std_logic;

a_equal_to_b:OUT Std_logic;

a_less_than_b:OUT Std_logic) ;

END cd4585;

ARCHITECTURE arch_4585 OF cd4585 IS

SIGNAL y:Std_logic_vector (2 DOWNTO0);

BEGIN

y <= ″100″ WHEN (a >b OR (a = b AND a_g_b = ′1′)) ELSE

″010″ WHEN (a = b AND a_e_b = ′1′ ) ELSE

″001″ WHEN (a <b OR (a = b AND a_l_b = ′1′ )) ELSE

″000″;

a_greater_than_b <= y(2);

a_equal_to_b <= y(1);

a_less_than_b <= y(0);

END arch_4585;

上面的描述中,有很多符号是在全角状态下键入的,你需要将其改成半角字符才能通过编译。

超级的彩虹
小巧的啤酒
2026-05-08 09:59:41

你所要求的这个电压比较器比较的电压范围是多少?你所使用的电源电压是多少?是双电源还是单电源?要求的输出驱动电流是多大?干什么用的?没有这些参数,就是提供给你,也不一定能符合你的要求啊!

阀值可调的方法很多,提供一个简单给你,看是否适用。

Vcc为电源电压的高电位,Vss为电源电压的低电位,Vin为输入电压,Vout为输出电压。

当电位器动臂向上调时,其比较阀值的参考电位接近Vcc,向下调节时,比较阀值的参考电位接近Vss。当输入电压Vin大于运放负端的阀值时,运放的输出Vout为高电平。否则为低电平。

该电路没有考虑输出电流的问题。所以没有另外接驱动电路。

如果有问题,欢迎继续讨论。