VHDL组合逻辑电路设计.ppt
《VHDL组合逻辑电路设计.ppt》由会员分享,可在线阅读,更多相关《VHDL组合逻辑电路设计.ppt(52页珍藏版)》请在三一办公上搜索。
1、,第五章 组合逻辑电路设计,5.1 门电路 5.2 编码器 5.3 优先编码器5.4 译码器 5.5 多路选择器 5.6 数值比较器 5.7 加法器,在前面的各章里,分别介绍了VHDL语言的语句、语法以及利用VHDL语言设计硬件电路的基本方法,本章重点介绍利用VHDL语言设计基本组合逻辑模块的方法。,5.1 门电路,二输入异或门二输入异或门的逻辑表达式如下所示:,二输入异或门的逻辑符号如图所示,真值表如下表所示:,a b y0 0 00 1 11 0 11 1 0,例:采用行为描述方式设计的异或门(依据逻辑表达式)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL
2、;ENTITY xor2_v1 IS PORT(a,b:IN STD_LOGIC;y:OUT STD_LOGIC);END xor2_v1;ARCHITECTURE behave OF xor2_v1 ISBEGIN y=a XOR b;END behave;,例:采用数据流描述方式设计的异或门(依据真值表)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xor2_v2 IS PORT(a,b:IN STD_LOGIC;y:OUT STD_LOGIC);END xor2_v2;ARCHITECTURE dataflow OF xor2_v2 IS
3、BEGIN PROCESS(a,b)VARIABLE comb:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN comb:=a,CASE comb IS WHEN 00=y y y y y=X;END CASE;END PROCESS;END dataflow;,二输入异或门的仿真波形,5.2 编码器,用一组二进制代码按一定规则表示给定字母、数字、符号等信息的方法称为编码,能够实现这种编码功能的逻辑电路称为编码器。,I0 I1 I2 I3 I4 I5 I6 I7 A2 A1 A0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 0 0 0 1 0 0 1
4、 0 0 0 0 0 0 1 00 0 0 1 0 0 0 0 0 1 10 0 0 0 1 0 0 0 1 0 00 0 0 0 0 1 0 0 1 0 10 0 0 0 0 0 1 0 1 1 00 0 0 0 0 0 0 1 1 1 1,8线3线编码器真值表,输入 输出,8线3线编码器逻辑表达式:A2=I4+I5+I6+I7A1=I2+I3+I6+I7A0=I1+I3+I5+I7,例:采用行为描述方式的8线3线编码器VHDL源代码(依据逻辑表达式),LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY coder83_v1 IS PORT(I0,
5、I1,I2,I3,I4,I5,I6,I7:IN STD_LOGIC;A0,A1,A2:OUT STD_LOGIC);END coder83_v1;ARCHITECTURE behave OF coder83_v1 ISBEGIN,A2=I4 OR I5 OR I6 OR I7;A1=I2 OR I3 OR I6 OR I7;A0=I1 OR I3 OR I5 OR I7;END behave;,采用行为描述方式的8线3线编码器仿真波形,例:采用数据流描述方式的8线3线编码器VHDL源代码(依据真值表),LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTIT
6、Y coder83_v2 IS PORT(I:IN STD_LOGIC_VECTOR(7 DOWNTO 0);A:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END coder83_v2;ARCHITECTURE dataflow OF coder83_v2 ISBEGIN PROCESS(I)BEGIN,CASE I IS WHEN 10000000=A A A A A A A A=000;END CASE;END PROCESS;END dataflow;,采用数据流描述方式的8线3线编码器仿真波形(总线显示方式),5.3 优先编码器,EI I0 I1 I2 I3 I
7、4 I5 I6 I7 A2 A1 A0 GS EO1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 0 10 0 1 1 1 1 1 1 1 1 0 0 10 0 1 1 1 1 1 1 1 1 1 1 0 1,输 入 输出,74148优先编码器真值表(反码编码方案),各输出端的逻辑方程,以74148逻辑表达式为依据,按行为描述方式编写的VHDL源
8、代码如 下:,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY prioritycoder83_v1 IS PORT(I7,I6,I5,I4,I3,I2,I1,I0:IN STD_LOGIC;EI:IN STD_LOGIC;A2,A1,A0:OUT STD_LOGIC;GS,EO:OUT STD_LOGIC);END prioritycoder83_v1;ARCHITECTURE behave OF prioritycoder83_v1 ISBEGIN A2=EI OR(I7 AND I6 AND I5 AND I4);A1=EI OR(I7 AN
9、D I6 AND I3 AND I2)OR(I7 AND I6 AND NOT I5)OR(I7 AND I6 AND NOT I4);,A0=EI OR(I7 AND NOT I6)OR(I7 AND I5 AND NOT I4)OR(I7 AND I5 AND I3 AND I1)OR(I7 AND I5 AND I3 AND NOT I2);GS=EI OR(I7 AND I6 AND I5 AND I4 AND I3 AND I2 AND I1 AND I0);EO=EI OR NOT(I7 AND I6 AND I5 AND I4 AND I3 AND I2 AND I1 AND I
10、0);END behave;,74148优先编码器的仿真波形,注意:采用数据流编写优先编码器时,因为VHDL语言目前还不能描述任意项,即下面的语句形式是非法的:WHEN“0XXXXXXX”=A=“000”;因此不能用CASE语句来描述74148。采用IF语句对74148进行了逻辑描述 如下:,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY prioritycoder83_v2 IS PORT(I:IN STD_LOGIC_VECTOR(7 DOWNTO 0);EI:IN STD_LOGIC;A:OUT STD_LOGIC_VECTOR(2 DOW
11、NTO 0);GS,EO:OUT STD_LOGIC);END prioritycoder83_v2;,ARCHITECTURE dataflow OF prioritycoder83_v2 ISBEGIN PROCESS(EI,I)BEGIN IF(EI=1)THEN A=111;GS=1;EO=1;ELSIF(I=11111111 AND EI=0)THEN A=111;GS=1;EO=0;,ELSIF(I(7)=0 AND EI=0)THEN A=000;GS=0;EO=1;ELSIF(I(6)=0 AND EI=0)THEN A=001;GS=0;EO=1;ELSIF(I(5)=0 A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 组合 逻辑电路 设计

链接地址:https://www.31ppt.com/p-6522942.html