《教学课件PPT电路设计应用实例》由会员分享,可在线阅读,更多相关《教学课件PPT电路设计应用实例(29页珍藏版)》请在金锄头文库上搜索。
1、LOGO第第3 3章电路设计应用实例章电路设计应用实例 电子科学学院电子科学学院电子科学学院电子科学学院主要内容主要内容3.5 百进制加法计数器百进制加法计数器3.4 编码器设计编码器设计3.3 分频器设计分频器设计3.2 双向电路和三态控制电路设计双向电路和三态控制电路设计3.1 带有并行置位的移动寄存器带有并行置位的移动寄存器电子科学学院电子科学学院电子科学学院电子科学学院3.1 带有并行置位的移位寄存器带有并行置位的移位寄存器LOADQBDIN7.00 111001011110001111电子科学学院电子科学学院电子科学学院电子科学学院3.1 带有并行置位的移位寄存器带有并行置位的移位寄
2、存器ARCHITECTURE behav OF SHFRT IS BEGIN PROCESS (CLK, LOAD) VARIABLE REG8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLKEVENT AND CLK = 1 THEN IF LOAD = 1 THEN - 装载新数据装载新数据 REG8 := DIN; ELSE REG8(6 DOWNTO 0) := REG8(7 DOWNTO 1); END IF; END IF; QB = REG8(0); END PROCESS; - 输出最低位输出最低位END behav;LIBRARY I
3、EEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHFRT IS PORT ( CLK,LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); QB : OUT STD_LOGIC );END SHFRT;电子科学学院电子科学学院电子科学学院电子科学学院3.1 带有并行置位的移位寄存器带有并行置位的移位寄存器电子科学学院电子科学学院电子科学学院电子科学学院主要内容主要内容3.5 百进制加法计数器百进制加法计数器3.4 编码器设计编码器设计3.3 分频器设计分频器设计3.2 双向电路和三态控制电路设计双
4、向电路和三态控制电路设计3.1 带有并行置位的移动寄存器带有并行置位的移动寄存器电子科学学院电子科学学院电子科学学院电子科学学院3.2双向电路和三态控制电路设计双向电路和三态控制电路设计3.2.1 三态门设计三态门设计1 0 高阻高阻1 0高阻高阻ARCHITECTURE bhv OF tri_s ISBEGINPROCESS(enable,datain) BEGIN IF enable = 1 THEN dataout = datain ; ELSE dataout =ZZZZZZZZ ; END IF ;END PROCESS;END bhv;LIBRARY IEEE;USE IEEE.S
5、TD_LOGIC_1164.ALL;ENTITY tri_s IS port ( enable : IN STD_LOGIC; datain : IN STD_LOGIC_VECTOR(7 DOWNTO 0); dataout : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END tri_s ;Z 高阻态高阻态电子科学学院电子科学学院电子科学学院电子科学学院3.2.2 三态总线设计三态总线设计总线控制端总线控制端总线输出端总线输出端数数据据输输入入端端0电子科学学院电子科学学院电子科学学院电子科学学院3.2.2 三态总线设计三态总线设计LIBRARY IEEE;USE
6、IEEE.STD_LOGIC_1164.ALL;ENTITY tristate2 ISport ( datain3, datain2, datain1, datain0 : IN STD_LOGIC_VECTOR (7 DOWNTO 0); enable : IN STD_LOGIC_VECTOR(1 DOWNTO 0); output : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END tristate2 ; ARCHITECTURE multiple_drivers OF tristate2 ISBEGINPROCESS(enable, datain3, dat
7、ain2, datain1, datain0 ) BEGIN IF enable = 00 THEN output = datain3 ; ELSE output Z); END IF ; IF enable = 01 THEN output = datain2 ; ELSE output Z); END IF ; IF enable = 10 THEN output = datain1 ; ELSE output Z); END IF ; IF enable = 11 THEN output = datain0 ; ELSE output Z); END IF ;END PROCESS;EN
8、D multiple_drivers;进程中顺序语句对同一信号多次赋值,进程中顺序语句对同一信号多次赋值,只执行最后一条。只执行最后一条。电子科学学院电子科学学院电子科学学院电子科学学院3.2.2 三态总线设计三态总线设计断开断开电子科学学院电子科学学院电子科学学院电子科学学院architecture body_tri of tristate2 isbegin q Z) ; q Z) ; q Z) ; q Z) ;end body_tri;3.2.2 三态总线设计三态总线设计并行语句中对同一信号多次赋值,并行语句中对同一信号多次赋值,只能在设计三态电路时可以使用。只能在设计三态电路时可以使用。
9、电子科学学院电子科学学院电子科学学院电子科学学院controlinputoutputIO三态门三态门1 03.2.3 双向端口设计双向端口设计电子科学学院电子科学学院电子科学学院电子科学学院architecture one of bi_state isbeginprocess(control,input,IO)beginif (control=0) then output= IO;IO = ZZZZZZZZ;else IO=input;output=ZZZZZZZZ;end if;end process;end one;library ieee;use ieee.std_logic_1164.
10、all;entity bi_state isport (control: in std_logic; input: in std_logic_vector(7 downto 0); IO : inout std_logic_vector(7 downto 0); output: out std_logic_vector(7 downto 0);end bi_state;controlinputoutputIO3.2.3 双向端口设计双向端口设计电子科学学院电子科学学院电子科学学院电子科学学院3.2.3 双向端口设计双向端口设计电子科学学院电子科学学院电子科学学院电子科学学院主要内容主要内容3.
11、5 百进制加法计数器百进制加法计数器3.4 编码器设计编码器设计3.3 分频器设计分频器设计3.2 双向电路和三态控制电路设计双向电路和三态控制电路设计3.1 带有并行置位的移动寄存器带有并行置位的移动寄存器电子科学学院电子科学学院电子科学学院电子科学学院3.3 分频器设计分频器设计分频器分频器基准基准信号信号分频分频信号信号电子科学学院电子科学学院电子科学学院电子科学学院基准基准信号信号分频分频信号信号1周期周期2周期周期二分频(占空比二分频(占空比50%)3.3.1 偶数分频器设计偶数分频器设计1周期周期四分频(占空比四分频(占空比50%)4周期周期电子科学学院电子科学学院电子科学学院电子
12、科学学院3.3.1偶数分频器设计偶数分频器设计architecture one of clk_div1 isbegin process(clk_in)variable countQ:std_logic_vector(3 downto 0);variable clk_outQ:std_logic:=0;beginif (clk_inevent and clk_in=1) then if (countQ=0001) then countQ:=0000; clk_outQ:=not clk_outQ; else countQ:=countQ+1; end if;end if;clk_out=clk_
13、outQ;end process;end one;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clk_div1 isport(clk_in:in std_logic; clk_out:out std_logic);end clk_div1;countQ10clk_outQ10四分频四分频电子科学学院电子科学学院电子科学学院电子科学学院7周期周期3.3.2奇数分频器设计奇数分频器设计clk_inclk_outclk1clk2
14、七分频(占空比七分频(占空比50%)电子科学学院电子科学学院电子科学学院电子科学学院library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clk_div3 is port (clk_in:in std_logic; clk_out:out std_logic);end clk_div3;architecture one of clk_div3 is signal clk1,clk2:std_logic;beginprocess(cl
15、k_in)variable cnt1:integer range 0 to 6;beginif rising_edge(clk_in) then if cnt16 then cnt1:=cnt1+1; else cnt1:=0; end if; if cnt13 then clk1=1; else clk1=0; end if;end if;end process;process (clk_in)variable cnt2:integer range 0 to 6;begin if falling_edge(clk_in) then if cnt26 then cnt2:=cnt2+1; el
16、se cnt2:=0; end if; if cnt23 then clk2=1; else clk2=0; end if;end if;end process;clk_out=clk1 or clk2;end one;3.3.2奇数分频器设计奇数分频器设计cnt11clk1234560电子科学学院电子科学学院电子科学学院电子科学学院主要内容主要内容3.5 百进制加法计数器百进制加法计数器3.4 编码器设计编码器设计3.3 分频器设计分频器设计3.2 双向电路和三态控制电路设计双向电路和三态控制电路设计3.1 带有并行置位的移动寄存器带有并行置位的移动寄存器电子科学学院电子科学学院电子科学学院
17、电子科学学院3.4 8-3 优先编码器优先编码器8-3 优先编码器真值表优先编码器真值表 注:表中的注:表中的“x”为任意,类似为任意,类似VHDL中的中的“”值。值。输输 入入 输输 出出 din0 din1 din2 din3 din4 din5 din6 din7 output0 output1 output2 x x x x x x x 0 0 0 0 x x x x x x 0 1 1 0 0 x x x x x 0 1 1 0 1 0 x x x x 0 1 1 1 1 1 0 x x x 0 1 1 1 1 0 0 1 x x 0 1 1 1 1 1 1 0 1 x 0 1 1
18、1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 电子科学学院电子科学学院电子科学学院电子科学学院ARCHITECTURE behav OF coder IS BEGIN PROCESS (din) BEGIN IF (din(7)=0) THEN output = 000 ; ELSIF (din(6)=0) THEN output = 100 ; ELSIF (din(5)=0) THEN output = 010 ; ELSIF (din(4)=0) THEN output = 110 ; ELSIF (din(3)=0) THEN output = 001 ; E
19、LSIF (din(2)=0) THEN output = 101 ; ELSIF (din(1)=0) THEN output = 011 ; ELSE output = 111 ; END IF ; END PROCESS ; END behav;3.4 8-3 优先编码器优先编码器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY coder IS PORT ( din : IN STD_LOGIC_VECTOR(0 TO 7); output : OUT STD_LOGIC_VECTOR(0 TO 2) );END coder;优先级优先级电
20、子科学学院电子科学学院电子科学学院电子科学学院ARCHITECTURE behav OF coder IS BEGINoutput = 000 when ( din(7)=0)ELSE 100 when (din(6)=0) ELSE 010 when(din(5)=0) ELSE 110 when (din(4)=0) ELSE 001 when (din(3)=0) ELSE 101 when (din(2)=0) ELSE 011 when(din(1)=0) ELSE 111 ; END behav;3.4 8-3 优先编码器优先编码器优先级优先级电子科学学院电子科学学院电子科学学院电
21、子科学学院主要内容主要内容3.5 百进制加法计数器百进制加法计数器3.4 编码器设计编码器设计3.3 分频器设计分频器设计3.2 双向电路和三态控制电路设计双向电路和三态控制电路设计3.1 带有并行置位的移动寄存器带有并行置位的移动寄存器电子科学学院电子科学学院电子科学学院电子科学学院3.5 百进制加法计数器百进制加法计数器个位个位十位十位进位进位时钟时钟4位矢量位矢量4位矢量位矢量电子科学学院电子科学学院电子科学学院电子科学学院ARCHITECTURE ART OF JSQ IS BEGIN PROCESS(RST,EN,CLK) VARIABLE A2,A1: STD_LOGIC_VECT
22、OR(3 DOWNTO 0); BEGIN IF RST=1 THEN A2:=0000; A1:=0000; ELSIF (CLKEVENT AND CLK=1) THEN IF EN=1 THEN IF A2=1001 and A1=1001 THEN COUNT=1; else COUNT=0; end IF; IF A1=1001 THEN A1:=0000; IF A2=1001 THEN A2:=0000; ELSE A2:=A2+1; END IF; ELSE A1:=A1+1; END IF; END IF; END IF;AA2=A2; AA1=A1;END PROCESS;
23、END ART;LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JSQ IS PORT(RST: IN STD_LOGIC; EN: IN STD_LOGIC; CLK: IN STD_LOGIC; COUNT:OUT STD_LOGIC; AA2,AA1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY JSQ ;3.5 百进制加法计数器百进制加法计数器电子科学学院电子科学学院电子科学学院电子科学学院ARCHITECTURE ART
24、OF JSQ IS BEGIN PROCESS(RST,EN,CLK) VARIABLE A2,A1: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST=1 THEN A2:=0000; A1:=0000; ELSIF (CLKEVENT AND CLK=1) THEN IF EN=1 THEN IF A1=0011 and A2=0010 THEN A1:=0000; A2:=0000;COUNT=1; ELSIF A1=1001 THEN A1:=0000; IF A2=0010 THEN A2:=0000; ELSE A2:=A2+1; END IF; ELSE A1:=A1+1; count=0; END IF; END IF; END IF;AA2=A2; AA1=A1;END PROCESS;END ART;电子科学学院电子科学学院电子科学学院电子科学学院LOGO