资源预览内容
第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
第9页 / 共29页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
LOGO第第3 3章电路设计应用实例章电路设计应用实例 电子科学学院电子科学学院电子科学学院电子科学学院主要内容主要内容3.5 百进制加法计数器百进制加法计数器3.4 编码器设计编码器设计3.3 分频器设计分频器设计3.2 双向电路和三态控制电路设计双向电路和三态控制电路设计3.1 带有并行置位的移动寄存器带有并行置位的移动寄存器电子科学学院电子科学学院电子科学学院电子科学学院3.1 带有并行置位的移位寄存器带有并行置位的移位寄存器LOADQBDIN7.00 111001011110001111电子科学学院电子科学学院电子科学学院电子科学学院3.1 带有并行置位的移位寄存器带有并行置位的移位寄存器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 IEEE;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 双向电路和三态控制电路设计双向电路和三态控制电路设计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.STD_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 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, datain2, 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;END 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 三态总线设计三态总线设计并行语句中对同一信号多次赋值,并行语句中对同一信号多次赋值,只能在设计三态电路时可以使用。只能在设计三态电路时可以使用。电子科学学院电子科学学院电子科学学院电子科学学院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.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.5 百进制加法计数器百进制加法计数器3.4 编码器设计编码器设计3.3 分频器设计分频器设计3.2 双向电路和三态控制电路设计双向电路和三态控制电路设计3.1 带有并行置位的移动寄存器带有并行置位的移动寄存器电子科学学院电子科学学院电子科学学院电子科学学院3.3 分频器设计分频器设计分频器分频器基准基准信号信号分频分频信号信号电子科学学院电子科学学院电子科学学院电子科学学院基准基准信号信号分频分频信号信号1周期周期2周期周期二分频(占空比二分频(占空比50%)3.3.1 偶数分频器设计偶数分频器设计1周期周期四分频(占空比四分频(占空比50%)4周期周期电子科学学院电子科学学院电子科学学院电子科学学院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_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七分频(占空比七分频(占空比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(clk_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; else 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 带有并行置位的移动寄存器带有并行置位的移动寄存器电子科学学院电子科学学院电子科学学院电子科学学院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 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 ; ELSIF (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;优先级优先级电子科学学院电子科学学院电子科学学院电子科学学院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 优先编码器优先编码器优先级优先级电子科学学院电子科学学院电子科学学院电子科学学院主要内容主要内容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_VECTOR(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;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 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;电子科学学院电子科学学院电子科学学院电子科学学院LOGOwww.dqpi.netwww.dqpi.net
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号