时序电路VHDL设计时序逻辑部分.pptx
《时序电路VHDL设计时序逻辑部分.pptx》由会员分享,可在线阅读,更多相关《时序电路VHDL设计时序逻辑部分.pptx(106页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、组合逻辑电路设计1.分析逻辑问题,抽象输入、输出逻辑变量。2.列真值表、写函数表达式。3.采用基本门电路、PLD实现。第1页/共106页实体(A,B,C)结构体a1库、程序包声明结构框图ABC结构体a1数字电路的VHDL表述第2页/共106页实体描述ENTITY entity_name ISPORT(input1_name:IN STD_LOGIC;input2_name:IN STD_LOGIC_VECTOR(a2 downto a1);output1_name:OUT STD_LOGIC;output2_name:OUT STD_LOGIC_VECTOR(b2 downto b1);END
2、 entity_name;-STD_LOGIC:描述1位宽度的电路端口,如单独的逻辑变量A,可描述为A:IN STD_LOGIC;-STD_LOGIC_VECTOR(a2 downto a1):描述多位宽度的电路端口,如一组逻辑变量的组合(D3,D2,D1,D0)4位宽度,可描述为D:in std_logic_vector(3 downto 0);第3页/共106页ARCHITECTURE a OF entity_name ISSIGNAL signal_name:STD_LOGIC;BEGIN-VHDL语句;-逻辑电路描述,输入输出的逻辑关系描述;END a;结构体描述第4页/共106页VH
3、DL参考书VHDL设计指南(第二版)作者:(美)阿森顿 译者:葛红出版社:机械工业出版社(2005)CPLD/FPGA应用开发技术与工程实践作者:求是科技出版社:人民邮电出版社(2005)第5页/共106页(1)三态输出电路(2)比较器(3)数据选择器(4)编码器(5)译码器 一、常用组合逻辑电路设计一、常用组合逻辑电路设计第6页/共106页(1)三态输出电路(1位)AENBEN=1 B=A;EN=0 B=高阻态第7页/共106页library ieee;use ieee.std_logic_1164.all;entity triout isport (A:in std_logic;en:in
4、 std_logic;B:out std_logic);end triout;第8页/共106页architecture behave of triout isbegin B=A when en=1 else Z;end behave;-注意此处的“Z”要大写;第9页/共106页三态输出电路(多位)A7-A0ENB7-B0EN=1 B=A;EN=0 B=高阻态88第10页/共106页library ieee;use ieee.std_logic_1164.all;entity triout isport(A:in std_logic_vector(7 downto 0);en:in std_l
5、ogic;B:out std_logic_vector(7 downto 0);end triout;第11页/共106页architecture behave of triout isbegin A=B when en=1 else ZZZZZZZZ;end behave;-注意多位时用双引号;第12页/共106页(1)三态输出电路(2)数据选择器(3)比较器(4)编码器(5)译码器 一、常用组合逻辑电路设计一、常用组合逻辑电路设计第13页/共106页(2)数据选择器4选1 MUX ABCDYS0S1输出端第14页/共106页library ieee;use ieee.std_logic_1
6、164.all;entity mux41 is Port(A,B,C,D:in std_logic;sel :in std_logic_vector(1 downto 0);Y:out std_logic);end mux41;第15页/共106页architecture archmux of mux41 is begin Y b,输出为:agtb=1,altb=0,aeqb=0;如果 ab,输出为:altb=1,agtb=0,aeqb=0;如果 a=b,输出为:aeqb=1,agtb=0,altb=0。第19页/共106页Library ieee;Use ieee.std_logic_116
7、4.all;Use ieee.std_logic_unsigned.all;ENTITY cmpab IS PORT(A,B:in std_logic_vector(7 downto 0);AGTB,ALTB,AEQB:out std_logic);END cmpab;第20页/共106页ARCHITECTURE a OF cmpab ISBEGIN aeqb=1 when a=b else 0;agtbb else 0;altb=1 when ab else 0;END a;第21页/共106页(1)三态输出电路(2)比较器(3)数据选择器(4)编码器(5)译码器 一、常用组合逻辑电路设计一
8、、常用组合逻辑电路设计第23页/共106页(4)编码器I6I7I5I4I3I2I1I0Y2Y1Y083编码器I7 I6 I5 I4 I3 I2 I1 I0Y2 Y1 Y01111111000011111101001111110110101111011101111101111100110111111011011111111001111111111第24页/共106页LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY encoder IS PORT(i:IN STD_LOGIC_VECTOR(7 DOWNTO 0);y:OUT STD_LOGIC_VEC
9、TOR(2 DOWNTO 0);END encoder;ARCHITECTURE rtl OF encoder IS BEGIN y=111 when i=01111111 else 110 when i=10111111 else 101 when i=11011111 else 100 when i=11101111 else 011 when i=11110111 else 010 when i=11111011 else 001 when i=11111101 else 000 when i=11111110 else XXX;END rtl;第25页/共106页(1)三态输出电路(2
10、)比较器(3)数据选择器(4)编码器(5)译码器 一、常用组合逻辑电路设计一、常用组合逻辑电路设计第27页/共106页(2)译码器A.38译码器第28页/共106页LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY decode_3to8 IS PORT(a,b,c,G1,G2A,G2B:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END decode_3to8;第29页/共106页ARCHITECTURE rtl OF decode_3to8 IS SIGNAL indata:STD_LOGIC_
11、VECTOR(5 DOWNTO 0);BEGIN indata=G1&G2A&G2B&c&b&a;y=11111110 when indata=100000 else 11111101 when indata=100001 else 11111011 when indata=100010 else 11110111 when indata=100011 else 11101111 when indata=100100 else 11011111 when indata=100101 else 10111111 when indata=100110 else 01111111 when inda
12、ta=100111 else 11111111;END rtl;第30页/共106页译码器(2)译码器B.数码管译码器A3A2A1A0abcdefg第31页/共106页Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity bcd isPort(A:in std_logic_vector(3 downto 0);Seven:out std_logic_vector(6 downto 0);End bcd;第32页/共106页Architecture a of bcd isBeginSeven
13、=0111111 when A=0000 else -0 0000110 when A=0001 else -1 1011011 when A=0010 else -2 1001111 when A=0011 else -3 1100110 when A=0100 else -4 1101101 when A=0101 else -5 1111101 when A=0110 else -6 0000111 when A=0111 else -7 1111111 when A=1000 else -8 1101111 when A=1001 else -9 0000000;End a;第33页/
14、共106页例例1 1:组合逻辑设计:组合逻辑设计 四舍五入电路四舍五入电路 输入输入8421BCD8421BCD码,输出码,输出F F。第34页/共106页library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity sswr isport(d:in std_logic_vector(3 downto 0);y:out std_logic);end sswr;第35页/共106页architecture behave of sswr isb
15、egin y=0 when 0=d and d5 else 1 when 5=d and d10 else Z;end behave;第36页/共106页例例2 2:设计组合逻辑电路设计组合逻辑电路设计一个设计一个1bit全加器。全加器。输入输入 X,Y,CI 输出输出 Z,CO第37页/共106页library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity full_bit_adder isport(a,b,ci:in std_logic
16、;y,cout:out std_logic);end full_bit_adder;第38页/共106页architecture bh1 of full_bit_adder isbegin y=(not a)and(not b)and ci)or (not a)and(b)and(not ci)or (a)and(not b)and(not ci)or (a)and(b)and(ci);cout=(b and ci)or(a and ci)or(a and b);end bh1;第39页/共106页architecture bh2 of full_bit_adder isbegin y=a x
17、or b xor ci;cout=(a and b)or(a and ci)or(b and ci);end bh2;configuration con1 of full_bit_adder isfor bh2end for;end con1;第40页/共106页总结:VHDL+PLD组合逻辑电路设计逻辑问题(逻辑输入、输出,逻辑函数)1.输入逻辑变量描述:1位的输入变量标准逻辑类型,std_logic 多位的输入变量标准逻辑序列类型 std_logic_vector2.输出逻辑变量描述:同输入。3.逻辑关系描述:第41页/共106页列出真值表 适用于输入变量较少、或函数有效输入值较少的情况。
18、求取逻辑函数表达式 输出变量较少或输出变量相互独立的情况。逻辑关系高级抽象表述 逻辑关系概括直接逻辑描述;码制转换等问题(数值运算类)。第42页/共106页设计题一:四位二进制数转换为BCD码。第43页/共106页entity bin2bcd isport(d_bin:in std_logic_vector(3 downto 0);d_bcd_H,d_bcd_L:out std_logic_vector(3 downto 0);end bin2bcd;architecture aa of bin2bcd isBegind_bcd_L=d_bin when d_bin10 else d_bin+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 时序电路 VHDL 设计 时序 逻辑 部分
限制150内