- 1、本文档共90页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 数字逻辑单元设计-本章概要 在复杂数字系统中,其结构总可以用若干基本逻辑单元 的组合进行描述。 基本逻辑单元一般分为组合逻辑电路和时序电路两大类。 在此基础上,可以更进一步进行组合. 本章首先介绍基本的组合逻辑电路和时序电路设计, 然后介绍在数字系统设计中普遍使用的存储器电路、运算 单元,它们也是由基本逻辑单元组合而成的。 6.1 组合逻辑电路设计6.1.1基本逻辑门电路设计 对基本逻辑门的操作主要有:与、与非、或、或非、 异或、异或非和非操作。通过使用VHDL语言中描述基本 逻辑门电路操作的关键字:and(与),nand(与非), or(或),nor(或非),xor(异或),xnor(异或 非),not(非)来实现对基本逻辑门的操作。一堆复杂 的逻辑门操作总可以化简为集中基本逻辑门操作的组合。 6.1 组合逻辑电路设计-基本逻辑门电路设计 【例6-1】基本门电路的设计 Library ieee; Use ieee.std_logic_1164.all; Entity gate is Port(a, b,c : in std_logic; d : out std_logic); end gate; architecture rtl of gate is begin d=((not a) and b) or c; end rtl; 6.1.2 编码器和译码器设计 在数字系统中,常常会将某一信息用特定的代码进行描 述,这称为编码过程。编码过程可以通过编码器电路实现。 同时,将某一特定的代码翻译成原始的信息,这称为译码 过程。译码过程可以通过译码器电路实现。 1.编码器设计 将某一信息用一组按一定规律排列的二进制代码描述 称为编码。典型的有8421码、BCD码等。在使用VHDL 语言设计编码器时,通过使用CASE和IF语句等实现对编 码器的描述。 第6章 数字逻辑单元设计-编码器设计 【例6-2】8/3线编码器的VHDL描述 library ieee; use ieee.std_logic_1164.all; entity priority_encoder_1 is port ( sel : in std_logic_vector (7 downto 0); code :out std_logic_vector (2 downto 0)); end priority_encoder_1; architecture archi of priority_encoder_1 is begin code = 000 when sel(0) = 1 else 001 when sel(1) = 1 else 010 when sel(2) = 1 else 011 when sel(3) = 1 else 100 when sel(4) = 1 else 101 when sel(5) = 1 else 110 when sel(6) = 1 else 111 when sel(7) = 1 else ZZZ; end archi; 2.译码器设计 译码的过程实际上就是编码过程的逆过程,即将一 组按一定规律排列的二进制数还原为原始的信息。 下面以最常用的3:8译码器为例,给出其VHDL语 言描述。 【例6-3】使用case语句实现3/8译码器的VHDL描述 library ieee; use ieee.std_logic_1164.all; entity encoder_38 is port ( sel : in std_logic_vector (2 downto 0); en : in std_logic code :out std_logic_vector (7 downto 0)); end encoder_38; architecture rtl of encoder_38 is begin pr
文档评论(0)