简单数字逻辑电路的设计优秀PPT.ppt
《简单数字逻辑电路的设计优秀PPT.ppt》由会员分享,可在线阅读,更多相关《简单数字逻辑电路的设计优秀PPT.ppt(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、简单数字逻辑电路的设计第一页,本课件共有95页1.逻辑表达式的VHDL描述 设计一个函数电路:y=abc+efLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;entity example is port(a,b,c,e,f:in std_logic;y:out std_logic);end;architecture a of example isbegin yqqqqqqqqq=XXX;END CASE;END PROCESS encoder_process;END rtl;第四页,本课件共有95页D0D1D2D3D4D5D6D7E1Q0Q1Q2GSE0E1
2、D0 D1 D2 D3 D4 D5 D6 D7 Q2 Q1 Q0 E0 GS 1 x x x x x x x x 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 x x x x x x x 0 0 0 0 1 0 0 x x x x x x 0 1 0 0 1 1 0 0 x x x x x 0 1 1 0 1 0 1 0 0 x x x x 0 1 1 1 0 1 1 1 0 0 x x x 0 1 1 1 1 1 0 0 1 0 0 x x 0 1 1 1 1 1 1 0 1 1 0 0 x 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1
3、 1 1 1 1 1 1 1 1 0第五页,本课件共有95页LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY priorityencoder IS PORT(d :IN STD_LOGIC_VECTOR(7 DOWNTO 0);e1 :IN STD_LOGIC;q :OUT STD_LOGIC_VECTOR(2 DOWNTO 0);gs,e0 :OUT STD_LOGIC);END priorityencoder;第六页,本课件共有95页ARCHITECTURE rtl OF priorityencoder ISBEGIN encoder_proc
4、ess:PROCESS(e1,d)BEGIN IF(e1=1)THEN q=“111”;gs=1;e0=1;ELSIF(d=“11111111”AND e1=0)THEN q=“111”;gs=1;e0=0;ELSIF(d(7)=0 AND e1=0)THEN q=“000”;gs=0;e0=1;ELSIF(d(6)=0 AND e1=0)THEN q=“001”;gs=0;e0=1;ELSIF(d(5)=0 AND e1=0)THEN q=“010”;gs=0;e0=1;第七页,本课件共有95页 ELSIF(d(4)=0 AND e1=0)THEN q=“011”;gs=0;e0=1;ELS
5、IF(d(3)=0 AND e1=0)THEN q=“100”;gs=0;e0=1;ELSIF(d(2)=0 AND e1=0)THEN q=“101”;gs=0;e0=1;ELSIF(d(1)=0 AND e1=0)THEN q=“110”;gs=0;e0=1;ELSIF(d(0)=0 AND e1=0)THEN q=“111”;gs=0;e0=1;END IF;END PROCESS encoder_process;END rtl;第八页,本课件共有95页D QCLKDFF1D QCLKDFF2D QCLKDFF3D QCLKDFF4D QCLKDFF8D QCLKDFF7D QCLKDF
6、F6D QCLKDFF5q(0)q(1)q(2)q(3)q(4)q(5)q(6)q(7)q(8)cp输出d0输入d18位串入/串出移位寄存器的逻辑电路图3.逻辑电路图的VHDL描述第九页,本课件共有95页LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dff IS PORT(d,clk :IN STD_LOGIC;q :OUT STD_LOGIC);END dff;ARCHITECTURE rtl OF dff ISBEGIN dff_process:PROCESS(clk)BEGIN IF(clkEVENT AND clk=1)THEN q=d
7、;END IF;END PROCESS dff_process;END rtl;第十页,本课件共有95页8位串入/串出移位寄存器的VHDL描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY shift_reg IS PORT(d1 :IN STD_LOGIC;cp :IN STD_LOGIC;d0 :OUT STD_LOGIC);END shift_reg;ARCHITECTURE structure OF shift_reg IS COMPONENT dff PORT(d:IN STD_LOGIC;clk:IN STD_LOGIC;q:OUT
8、STD_LOGIC);END COMPONENT;SIGNAL q:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGIN q(0)=d1;register8:FOR I IN 0 TO 7 GENERATE DFFX:dff PORT MAP(q(i),cp,q(i+1);END GENERATE register8;d0=q(8);END structure;第十一页,本课件共有95页【例例】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY shift_reg IS PORT(CLK:IN STD_LOGIC;DIN:IN STD
9、_LOGIC;QB:OUT STD_LOGIC );END shift_reg;ARCHITECTURE behav OF shift_reg IS SIGNAL REG8:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN REG8(7)=DIN;REG8(6 DOWNTO 0)=REG8(7 DOWNTO 1);END IF;END PROCESS;QB=REG8(0);END behav;4.根据逻辑功能的要求按行为方式进行描述第十二页,本课件共有95页常用逻辑电路的常用逻辑电路的
10、VHDL语言程序语言程序 数字逻辑电路可分为两类:一.组合逻辑电路,二.时序逻辑电路 任何复杂、实用的数字逻辑电路都是由基本的组合逻辑电路和时序逻辑电路构成的,而且 主要集中在典型的几 种电路中。第十三页,本课件共有95页一.常用组合逻辑电路的VHDL语言程序 常见的组合逻辑电路主要包括基本门电路、编码器、译码器、选择器、缓冲器以及运算器等1.基本门电路1)与门、或门、非门 在数字电路中,与门、或门、非门的逻辑表达式分别为其VHDL语言描述可以如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALLENTITY logic_gate IS PORT(a,b :IN
11、 STD_LOGIC;y1,y2,y3:OUT STD_LOGIC);第十四页,本课件共有95页END logic_gate;ARCHITECTURE behave OF logic_gate ISBEGIN y1=a AND b;y2=a OR b;y3qqqqqqqqq=“XXX”;END CASE;END PROCESS encoder_process;END rtl;第十七页,本课件共有95页 2)优先编码器:指将所有的输入信号按优先级顺序进行排队,当几个输入信号同时出现时,只对其中优先级最高的一个输入信号进行编码的编码器.D0D1D2D3D4D5D6D7E1Q0Q1Q2GSE074L
12、S148优先编码器逻辑符号E1 D0 D1 D2 D3 D4 D5 D6 D7 Q2 Q1 Q0 E0 GS 1 x x x x x x x x 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 x x x x x x x 0 0 0 0 1 0 0 x x x x x x 0 1 0 0 1 1 0 0 x x x x x 0 1 1 0 1 0 1 0 0 x x x x 0 1 1 1 0 1 1 1 0 0 x x x 0 1 1 1 1 1 0 0 1 0 0 x x 0 1 1 1 1 1 1 0 1 1 0 0 x 0 1 1 1 1 1 1 1 1
13、 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0第十八页,本课件共有95页 表中,”X”代表任意项;E1是使能控制端,低电平有效;D0-D7为输入信号,低电平有效;Q0-Q2为输出端;E0为无编码信号输入的状态标志端,低电平有效;GS是有编码信号输入的状态标志端,低电平有效;(E0端和GS端在进行编码器级联时十分有用).这里设定D7的优先级最高.74LS148优先编码器VHDL语言程序入下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY priorityencoder IS PORT(d :IN STD_LOGIC_VECTO
14、R(7 DOWNTO 0);e1 :IN STD_LOGIC;q :OUT STD_LOGIC_VECTOR(2 DOWNTO 0);gs,e0 :OUT STD_LOGIC);END priorityencoder;第十九页,本课件共有95页ARCHITECTURE rtl OF priorityencoder ISBEGIN encoder_process:PROCESS(e1,d)BEGIN IF(e1=1)THEN q=“111”;gs=1;e0=1;ELSIF(d=“11111111”AND e1=0)THEN q=“111”;gs=1;e0=0;ELSIF(d(7)=0 AND e
15、1=0)THEN q=“000”;gs=0;e0=1;ELSIF(d(6)=0 AND e1=0)THEN q=“001”;gs=0;e0=1;ELSIF(d(5)=0 AND e1=0)THEN q=“010”;gs=0;e0=1;第二十页,本课件共有95页 ELSIF(d(4)=0 AND e1=0)THEN q=“011”;gs=0;e0=1;ELSIF(d(3)=0 AND e1=0)THEN q=“100”;gs=0;e0=1;ELSIF(d(2)=0 AND e1=0)THEN q=“101”;gs=0;e0=1;ELSIF(d(1)=0 AND e1=0)THEN q=“110”
16、;gs=0;e0=1;ELSIF(d(0)=0 AND e1=0)THEN q=“111”;gs=0;e0=1;END IF;END PROCESS encoder_process;END rtl;第二十一页,本课件共有95页3.译码器 译码是编码的逆过程,在数字电路中,一般将译码器分为三类:变量译码器、码制变换译码器和地址译码器1)变量译码器:把输入的二进制代码的各种组和状态翻译成对应的输出信号,如3-8译码器.Y0Y1Y2Y3Y4Y5Y6Y7ABCG1G2AG2B74LS138译码器的逻辑符号 从逻辑符号中可以看到,它具有三个附加的控制端G1、G2A和G2B.当G1=1、G2A+G2B=0
17、时,译码器将处在译码工作状态;否则译码器将被禁止,所有的输出端将被封锁在高电平,如真值表所示.实际上,这三个输入端可叫作”片选”输入端,可以将多片74LS138译码器连接起来以扩展译码器的功能.第二十二页,本课件共有95页G1 G2A G2B C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 x 1 x x x x 1 1 1 1 1 1 1 1 x x 1 x x x 1 1 1 1 1 1 1 1 0 x x x x x 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0
18、1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 74LS138译码器的真值表LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder3_8 IS PORT(g1,g2a,g2b :IN STD_LOGIC;a,b,c :IN STD_LOGIC;y :OUT STD_LOG
19、IC_VECTOR(7 DOWNTO 0);END decoder3_8;第二十三页,本课件共有95页ARCHITECTURE rtl OF decoder3_8 IS SIGNAL comb:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN combqqqqqqqqq=“XXXXXXXX”;END CASE;ELSE y=“11111111”;END IF;END PROCESS decoder_process;END rtl;第二十四页,本课件共有95页2)码制变换译码器 所谓码制变换译码器就是将一种码制转换成另外一种码制的译码器,常用于码制转换电路中,其VHDL描述与
20、变量译码器相似.第二十五页,本课件共有95页七段字符显示器ABCDEFGABCDEFGA3 A2 A1 A0 A B C D E F G0 0 0 0 1 1 1 1 1 1 00 0 0 1 0 1 1 0 0 0 00 0 1 0 1 1 0 1 1 0 10 0 1 1 1 1 1 1 0 0 10 1 0 0 0 1 1 0 0 1 10 1 0 1 1 0 1 1 0 1 10 1 1 0 1 0 1 1 1 1 10 1 1 1 1 1 1 0 0 0 01 0 0 0 1 1 1 1 1 1 11 0 0 1 1 1 1 1 0 1 11 0 1 0 1 1 1 0 1 1 11
21、 0 1 1 0 0 1 1 1 1 11 1 0 0 1 0 0 1 1 1 01 1 0 1 0 1 1 1 1 0 11 1 1 0 1 0 0 1 1 1 11 1 1 1 1 0 0 0 1 1 1上图为七段字符显示器的输出与发光二极管的对应关系3)显示译码器第二十六页,本课件共有95页LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY se7_display IS PORT(a0,a1,a2,a3 :IN STD_LOGIC;a,b,c,d,e,f,g :OUT STD_LOGIC);END se7_display;-seven_segm
22、ent display-a-f|b-g-e|c-d-end of description for seven_segment displayARCHITECTURE rtl OF se7_display IS SIGNAL input:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL output:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGIN display_process:PROCESS(a0,a1,a2,a3)BEGIN inputoutputoutputoutputoutputoutputoutputoutputoutputoutputout
23、putoutputoutputoutputoutputoutputoutputoutput=“0000000”;END CASE;END PROCESS display_process;a=output(0);b=output(1);c=output(2);d=output(3);e=output(4);f=output(5);g=output(6);END rtl;第二十八页,本课件共有95页4.选择器 其逻辑功能是在地址选择信号的控制下从多路输入数据中选择一路数据作为输出端口的输出数据.4)地址译码器 地址译码器是指将译码器输入地址信号翻译成相应的输出控制信号,其典型应用是根据输入端的不同
24、地址输入信号,经过译码后选择不同的存储空间.EEPROMSRAMperipheral2peripheral1PROM/ShadowRAM0XFFFF0XC0000X80000X40100X40080X40000X0000 现根据右图所示的存储空间的分布情况设计一个地址译码器第二十九页,本课件共有95页LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 IS PORT(a,b,c,d :IN STD_LOGIC;s0,s1 :IN STD_LOGIC;y :OUT STD_LOGIC);END mux4;ARCHITECTURE rtl OF
25、 mux4 IS SIGNAL comb:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN mux_process:PROCESS(a,b,c,d,s0,s1)BEGIN combyyyynull;END CASE;END PROCESS mux_process;END rtl;yabcds0s1第三十页,本课件共有95页LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 IS PORT(a,b,c,d :IN STD_LOGIC;s0,s1 :IN STD_LOGIC;y :OUT STD_LOGIC);END mux
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 数字 逻辑电路 设计 优秀 PPT
限制150内