archivetemp第四章 组合逻辑电路.ppt
文本预览下载声明
组合逻辑电路——译码器 3-8译码器的描述(接上) 改写后的IF语句: If (g1=‘1’and g2a=‘0’ and g2b=‘0’) then y=; Elsif indata=“000” then y=; Elsif indata=“001” then y=; Elsif indata=“010” then y=; Elsif indata=“011” then y=; Elsif indata=“100” then y=; Elsif indata=“101” then y=; Elsif indata=“110” then y=; Elsif indata=“111” then y=; End if; 组合逻辑电路——译码器 小结 本例设计的是一个3—8线译码器,有使能端,低电平有效。 这个程序的一、二句是库和程序包的语言。接下来是实体,主要是定义了一些输入、输出端口。需要注意的是要帮实体命名,如“decoder_38”,并且工程名与实体名保持一致。还要有结束语,如“end decoder_38”。 最后是结构体部分,其中“=”是信号传输符号,“indata=c b a”表示把c、b、a进行位合并并且赋值给信号indata。进程语句是结构体的一种子程序,括号内的信号量是process的输入信号,这些信号无论哪个发生变化,都将启动process语句。 组合逻辑电路——编码器 编码器的设计 组合逻辑电路——编码器 编码器的功能 将信号(如比特流)或数据进行编制、转换成用于通信,传输和存储的信号形式。 什么是编码器(Decoder) 完成编码工作的组合逻辑电路称为译码器。它的输入是一组高低电平信号,输出是一组二进制代码。每输入一组高低电平信号,则输出不同的二进制代码。 与译码器类似,编码器同样是数字系统中广泛使用的多输入多输出组合逻辑部件。 组合逻辑电路——编码器 优先级编码器 如图,74LS148是一个8输入,3位二进制码输出的优先级编码器。 当某一个输入有效时(低电平),就可以输出一个对应的3位二进制编码。 当同时有几个输入有效时,将输出优先级最高的那个输入对应的二进制编码。 组合逻辑电路——编码器 优先级编码器实现 Library IEEE; Use IEEE.std_logic_1164.all; Entity priorityencoder is Port ( input : in std_logic_vector (7 downto 0 ); y: out std_logic_vector( 2 downto 0) ); End priorityencoder; Architecture behav of priorityencoder is Begin Process(input) Begin 组合逻辑电路——编码器 优先级编码器的实现(接上) If ( input(0)=‘0’) then y=“111”; elsif ( input(1)=‘0’) then y=“110”; elsif ( input(2)=‘0’) then y=“101”; elsif ( input(3)=‘0’) then y=“100”; elsif ( input(4)=‘0’) then y=“011”; elsif ( input(5)=‘0’) then y=“010”; elsif ( input(6)=‘0’) then y=“001”; elsif ( input(7)=‘0’) then y=“000”; else y=“XXX”; end if; End process; End behav; 当input=时,编码成? 因为IF语句是一种流程控制语句,判断条件有前后次序,所以应编码为“010”。 组合逻辑电路——加法器 加法器的设计 组合逻辑电路——加法器 加法器 在数字系统中,常需要进行加、减、乘、除等运算,而乘、除和减法运算均可变换为加法运算,故加法运算电路应用十分广泛,另外,加法器还可用于码组变换,数值比较等,因此加法器是数字系统中最基本的运算单元。 加法在数字系统中分
显示全部