1 / 60
文档名称:

组合逻辑电路设计.ppt

格式:ppt   页数:60页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

组合逻辑电路设计.ppt

上传人:doc2088 2016/2/26 文件大小:0 KB

下载得到文件列表

组合逻辑电路设计.ppt

文档介绍

文档介绍:4-1、译码器、解码器的设计4-2、数据选择器的设计4-3、数码转换器的设计4-4、比较器的设计4-5、算术运算4-6、只读存储器的设计有关VHDL电路设计语言的语法知识及电路设计的重要概念,都已在前面几章给了说明。本章将重心放在VHDL电路设计语言的实际运用上。本章中将有一些实际电路设计范例,如:译码器与编码器、数据选择器与解数据选择器、数码转换、比较器、只读存储器等,说明如何使用VHDL电路设计语言,来设计一些经常会使用到的组合逻辑电路。4-1 译码器与编码器译码器与编码器的功能类似,它们都是用来做码和码之间的转换器,只是功能恰好相反。译码器是把输入的数码解出其对应的数码,如果有N个二进制选择线,则最多可以码转换成2N个数据。当一个译码器有N条输入线及M条输出线时,这时为N×M的译码器,如3×8译码器。译码器也经常被应用在地址总线或用作电路的控制线。像只读存储器(ROM)中便利用译码器进行地址选址的工作。4-1-1 译码器的设计对于译码器,第一个想到的当然是输入数码和输出数码之间的对应关系,也就是说,“输入码和输出码之间的对应表”这应该算是设计译码器的必须条件。例如下面常见的3×8译码器的真值表:000000011 1 1000000101 1 0000001001 0 1000010001 0 0000100000 1 1001000000 1 0010000000 0 1100000000 0 0Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7A0 A1 A23×8译码器的VHDL设计。3×8译码器,就表示它有3条输入线及8条输出线。另外为了方便译码器的控制或便于扩充之用,在设计时常会增加一个EN输入端。译码器的外部配置如图4-1所示。Y0A0A1A2ENY1Y2Y4Y3Y5Y7Y6图4-1 3×8译码器有了真值表,就可以直接用查表法(look up table)来设计,在VHDL的语法中,“WITH…SELECT”、“CASE…WHEN”及“WHEN…ELSE”这类指令都是执行查表或对应动作的能手,使用前应确定需要的是顺序性语句还是并行同时性命令,否则程序在进行编译时,会发生错误。程序范例(程序文件\EDA\)LIBRARY IEEE;USE ;ENTITY ch4_1_1 ISPORT(A : INSTD_LOGIC_VECTOR(2 DOWNTO 0);EN : IN STD_LOGIC;Y : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END ch4_1_1;接下页ARCHITECTURE a OF ch4_1_1 IS SIGNAL SEL: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINSEL(0)<=EN;SEL(1)<=A(0);SEL(2)<=A(1);SEL(3)<=A(2);WITH SEL SELECTY<="00000001"WHEN"0001","00000010"WHEN"0011","00000100"WHEN"0101","00001000"WHEN"0111","00010000"WHEN"1001","00100000"WHEN"1011","01000000"WHEN"1101","10000000"WHEN"1111","11111111" WHEN OTHERS;END a;只要将真值表内的数据,依次填入语法中,便完成编码的动作。最后一个位是EN将EN、A2、A1、A0合并成序列,目的是将“EN”脚的功能,融入程序及电路中。当EN=1时,译码器工作正常,当EN=0时,译码器不动作。程序说明:(1)将EN、A2、A1、A0合并成序列的另一种写法是: “SEL<=A&EN”。(2)with…select是一种非常好用的并行同时语法,和其它功能相同,属于顺序语法的是case…select,两者都是执行这种查表动作的利器。仿真结果:当EN=1时,译码器工作正常,当EN=0时,译码器不动作。延时