1 / 65

# 基本逻辑电路： 组合逻辑电路、 时序逻辑电路 一 组合逻辑电路设计 简单门电路、编码器、译码器、 加法器、多路选择器、三态门等。 - PowerPoint PPT Presentation

§ 3.9 基本逻辑电路设计. 基本逻辑电路： 组合逻辑电路、 时序逻辑电路 一 组合逻辑电路设计 简单门电路、编码器、译码器、 加法器、多路选择器、三态门等。. 1 、基本门电路. 2 、编码器 设计一个 8 输入优先级编码器， y0 级别最低， y7 级别最高；输出为 3 位编码。. 方法 1 ： 利用 if 多选择语句自顶向下的优先特性. 方法 2 ： 进程内为顺序语句，最先描述优先级最低， 最后描述优先级最高，可实现优先级编码。. 方法 3 ：利用条件赋值语句

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about '基本逻辑电路： 组合逻辑电路、 时序逻辑电路 一 组合逻辑电路设计 简单门电路、编码器、译码器、 加法器、多路选择器、三态门等。' - traci

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

§3.9 基本逻辑电路设计

2、编码器

y7 级别最高；输出为3位编码。

architecture behavior of priority is

begin

vec <= “111” when y7 = ‘1’ else

“110” when y6 = ‘1’ else

“101” when y5 = ‘1’ else

“100” when y4 = ‘1’ else

“011” when y3 = ‘1’ else

“010” when y2 = ‘1’ else

“001” when y1 = ‘1’ else

“000” when y0 = ‘1’ else

“XXX”;

end behavior;

3、译码器

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity decoder is

port(inp : in std_logic_vector(2 downto 0);

outp : out std_logic_vector(7 downto 0));

end decoder;

architecture rtl of decoder is

begin

outp<=“00000001” sll(conv_integer(inp));

end rtl;

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity decoder is

port(inp : in std_logic_vector(2 downto 0);

outp : out std_logic_vector(7 downto 0));

end decoder;

architecture rtl of decoder is

begin

process(inp)

begin

outp<=(others=>’0’);

outp(conv_integer(inp))<=‘1’;

end process;

end rtl;

3-8译码器仿真结果：

4、加法器

Sum(i) = a(i)  b(i)  cin

C(i+1) = a(i) b(i) +((a(i) + b(i) ) c(i)

5、多路选择器

6、三态门及总线缓冲器

VHDL语言通过指定大写的Z值表示高阻状态

a : std_logic;

a_bus:std_logic_vector(7 downto 0);

a <= ‘Z’ ;

a_bus <= “ZZZZZZZZ” ;

1、时钟信号描述

1）进程的敏感信号是时钟信号，在进程内

process (clock_signal)

begin

if (clock_edge_condition) then

signal_out <= signal_in ;

end if ;

end process ;

2）在进程中用wait until语句描述时钟信号，此

process

begin

wait until (clock_edge_condition);

signal_out <= signal_in ;

end process ;

a.在对时钟边沿说明时，一定要注明是上升沿

b.一个进程中只能描述一个时钟信号。

c.wait until 语句只能放在进程的最前面或

3）时钟边沿的描述

（clock’event and clock = ‘1’）

（clock’event and clock = ‘0’）

2、触发器的复位信号描述

1）同步复位：在只有以时钟为敏感信号的进程

process (clock_signal)

begin

if (clock_edge_condition) then

if (reset_condition) then

signal_out <= reset_value;

else

signal_out <= signal_in ;

end if ;

end if ;

end process ;

2）异步复位：进程的敏感信号表中除时钟信

begin

if (reset_condition) then

signal_out <= reset_value;

elsif (clock_edge_condition) then

signal_out <= signal_in ;

end if ;

end process ;

1、触发器（Flip_Flop）

1）D触发器

2）T触发器

library ieee;

use ieee.std_logic_1164.all;

entity t_ff is

port(t, clk : in std_logic;

q : buffer std_logic);

end t_ff;

architecture rtl of t_ff is

begin

process(clk)

begin

if clk’event and clk=‘1’ then

if t=‘1’ then

q<=not q;

else

q<=q;

end if;

end process;

end rtl;

T

Q

Clk

Q

3）RS触发器

S

Q

library ieee;

use ieee.std_logic_1164.all;

entity rs_ff is

port(r, s, clk : in std_logic;

q, qn : buffer std_logic);

end rs_ff;

architecture rtl of rs_ff is

begin

Clk

Q

R

process(r, s, clk)

begin

if clk’event and clk=‘1’ then

if s = ‘1’ and r = ‘0’ then q<=‘0’; qn<=‘1’;

elsif s=‘0’ and r=‘1’ then q<=‘1’; qn<=‘0’;

elsif s=‘0’ and r=‘0’ then q<=q; qn<=q n;

else null;

end if;

end if;

end process;

end rtl;

2、寄存器

8位串行输入、串行输出移位寄存器：

z0

z1

z2

z3

z4

z5

z6

z7

z8

3、计数器

（1）同步计数器

（2）异步计数器

4、序列信号发生器、检测器

1）“01111110”序列发生器

1、给触发器复位的方法有哪两种？如果时钟进程

2、设计一个任意 n 分频的分频器。

3、设计一个用于时钟（分、秒）计数的 60进制

4、设计一个用于时钟（小时）计数的 24进制的

5、给定一个参考晶振频率 f = 1MHz，设计一个