第基本逻辑电路的VHDL设计PPT学习教案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第11页/共99页
5.1 组合逻辑电路设计
5.1.2 编码器设计 1. 8线-3线编码器的VHDL描述
本例中,运 用了case语 句完成了编 码器内部逻 辑结构设计, 其RTL电路 图如图5.4所 示。
图5.4 8线-3线编码器的RTL电路图
第12页/共99页
5.1 组合逻辑电路设计
5.1.2 编码器设计
(1)2线-4线译码器的VHDL设计 library ieee; ---【例5.5】 2线-4线译码器的VHDL代码 use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity decode_24 is port (a: in std_logic_vector(1 downto 0);
y1<=a and b; --构成与门
y2<=a or b;
--构成或门
y3<= not a ; --构成非门
y4<=a nand b; --构成与非门
y5<=a nor b; --构成异或门
y6<=not(a xor b); --构成异或非门
END;
第7页/共99页
5.1 组合逻辑电路设计
5.1.2 编码器设计 在数字系统中,常常需要将某信息变换为某一 特定的代码。把二进制码按一定的规律进行编 排,使每组代码具有特定的含义,称为编码。 具有编码功能的逻辑电路称为编码器。 编码器是将 2N 个分立的信息代码以N个二进 制码来表示。
WHEN "1101" => LED <= "1011110" ; --显示“D”
WHEN "1110" => LED <= "1111001" ; --显示“E” WHEN "1111" => LED <= "1110001" ; --显示“F”
WHEN OTHERS => NULL ;
END CASE;
第8页/共99页
5.1 组合逻辑电路设计
5.1.2 编码器设计 1. 8线-3线编码器的VHDL描述 8线-3线编码真值表见表5.2所示。
表5.2 8线-3线编码真值表
输入
输出
I0
I1
I2
I3
I4
I5
I6
I7
Y2
Y1
Y0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
ENTITYD_LOGIC_VECTOR (7 downto 0) ;
y: OUT STD_LOGIC_VECTOR(2 downto 0));
END;
ARCHITECTURE one OF encoder8_3 IS
BEGIN
Process (i) is
LED: OUT STD_LOGIC_VECTOR (6 DOWNTO 0) ) ; END; ARCHITECTURE one OF LED_SEG IS BEGIN
PROCESS ( A ) BEGIN
第20页/共99页
5.1 组合逻辑电路设计
5.1.3 译码器设计
2. 7段数码显示译码器设计
z: out std_logic_vector(3 downto 0)); end ; architecture str of decode_24 is Begin with a select z<="0001" when "00",
"0010" when "01", "0100" when "10", "1000" when "11", "XXXX" when others; end;
第16页/共99页
5.1 组合逻辑电路设计
5.1.3 译码器设计 1. 2线- 4线译码器
图5.6 2线-4线译码器的RTL电路
第17页/共99页
5.1 组合逻辑电路设计
5.1.3 译码器设计 1. 2线- 4线译码器 (2)2线-4线译码器的仿真波形
如图5.7所示,当输入使“00”、“01”、“10”、“11”时分别 输出“0001”、“0010”、“0100”和“1000”,这与真值表中 显示的逻辑关系一致。
BEGIN ab<=a&b;
--接下页
第3页/共99页
5.1 组合逻辑电路设计
5.1.1 基本门电路设计 1.与非门电路
---接上页
process (ab) is begin case ab is
when “00”=>y<=‘1‘; --这里的“=>” 相当于THEN或于 是
when "01"=>y<='1'; when "10"=>y<='1'; when "11"=>y<='0'; when others=>y<=null; end case; end process; end;
LIBRARY ieee;
USE ieee.STD_LOGIC_1164.ALL;
ENTITY nand_2 IS
PORT (a, b: IN STD_LOGIC;
y: OUT
STD_LOGIC);
END;
ARCHITECTURE one OF nand_2 IS
SIGNAL ab: STD_LOGIC_VECTOR (1 DOWNTO 0);
END PROCESS;
END;
第21页/共99页
5.1 组合逻辑电路设计
5.1.3 译码器设计 2. 7段数码显示译码器设计
例5.6中输出信号LED 的7位分别接数码管的7个段,高 位在左,低位在右。例如当LED输出为“1101111”时,数 码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、 1、1;接有高电平的段点亮,低电平的段不亮,于是数码 管显示“9”,其功能仿真如图5.8所示。
第基本逻辑电路的VHDL设计
会计学
1
5.1 组合逻辑电路设计
5.1.1 基本门电路设计
1.与非门电路 (1)VHDL设计方法 二输入与非门电路的逻辑真值表见表5.1,二输入与非门的电路符号如 图5.1所示。
表5.1 二输入与非门的真值表
输入
输出
A
B
Y
0
0
1
0
1
1
1
0
1
1
1 0
图5.1 二输入与非门的电路符号
第19页/共99页
5.1 组合逻辑电路设计
5.1.3 译码器设计
2. 7段数码显示译码器设计
【例5.6】 7段BCD译码显示器的VHDL描述 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY LED_SEG IS PORT (A: IN STD_LOGIC_VECTOR (3 DOWNTO 0);
图5.7 2线-4线译码器的仿真波形图
第18页/共99页
5.1 组合逻辑电路设计
5.1.3 译码器设计
2. 7段数码显示译码器设计
7段数码显示译码电路是一个组合逻辑电路, 通常的小规模专用集成IC,如74系列或4000 系列的器件只能作十进制BCD码译码,然而 数字系统中的数据处理和运算都是2进制的, 所以输出表达都是16进制的,为了满足16进 制数的译码显示,最方便的方法就是利用译 码程序在FPGA/CPLD中来实现。
第4页/共99页
5.1 组合逻辑电路设计
5.1.1 基本门电路设计
1.与非门电路
(1)VHDL设计方法
(a) 用nand实现的二输入 与非门的RTL电路
(b)用 case语句实现的二输入 与非门的RTL电路
图5.2 二输入与非门RTL电路
第5页/共99页
5.1 组合逻辑电路设计
5.1.1 基本门电路设计
1.与非门电路
(2)仿真结果 二输入与非门的功能仿真结果如图5.3所示,观察波形可知,输入为a与b, 输出为y,且其逻辑关系满足二输入与非门真值表的要求。
图5.3 二输入与非门的功能仿真图
第6页/共99页
5.1 组合逻辑电路设计
5.1.1 基本门电路设计
2. 基本逻辑门电路的VHDL描述 【例5.3】基本逻辑门电路的VHDL描述
第14页/共99页
5.1 组合逻辑电路设计
5.1.3 译码器设计
1. 2线- 4线译码器
输入
2线-4线译码
A1
A2
Z3
0
0
0
器的真值表
0
1
0
见表5.3所示。 1 0 0
1
1
1
输出
Z2
Z1
Z0
0
0
1
0
1
0
1
0
0
0
0
0
表5.3 2线-4线译码器的真值表
第15页/共99页
5.1 组合逻辑电路设计
5.1.3 译码器设计 1. 2线- 4线译码器
图5.8 7段数码显示译码电路功能仿真波形
第22页/共99页
5.1 组合逻辑电路设计
WHEN "1000" => LED <= "1111111" ; --显示“8” WHEN "1001" => LED <= "1101111" ; --显示“9”
WHEN "1010" => LED <= "1110111" ; --显示“A”
WHEN "1011" => LED <= "1111100" ; --显示“B” WHEN "1100" => LED <= "0111001" ; --显示“C”
y: OUT STD_LOGIC); END; ARCHITECTURE one OF nand_2 IS
BEGIN y<=a nand b; END;
第2页/共99页
5.1 组合逻辑电路设计
5.1.1 基本门电路设计 1.与非门电路
(1)VHDL设计方法
【例5.2】二输入与非门的VHDL描述方法二:
begin case i is
--接下页
第10页/共99页
5.1 组合逻辑电路设计
5.1.2 编码器设计
1. 8线-3线编码器的VHDL描述
when “00000001”=>y<=“000”; -- 接上页
when "00000010"=>y<="001"; when "00000100"=>y<="010"; when "00001000"=>y<="011"; when "00010000"=>y<="100"; when "00100000"=>y<="101"; when "01001000"=>y<="110"; when "10000000"=>y<="111"; when others=>y<="000"; end case; end process; end process; end;
第1页/共99页
5.1 组合逻辑电路设计
5.1.1 基本门电路设计 1.与非门电路
(1)VHDL设计方法
【例5.1】二输入与非门的VHDL描述方法一: LIBRARY ieee; USE ieee.STD_LOGIC_1164.ALL; ENTITY nand_2 IS PORT (a, b: IN STD_LOGIC;
WHEN "0100" => LED <= "1100110" ; --显示“4”
WHEN "0101" => LED <= "1101101" ; --显示“5” WHEN "0110" => LED <= "1111101" ; --显示“6”
WHEN "0111" => LED <= "0000111" ; --显示“7”
2. 8线-3线编码器的功能仿真 8线-3线编码器的功能仿真结果如图5.5所示。
图5.5 8线-3线编码器功能仿真波形图
第13页/共99页
5.1 组合逻辑电路设计
5.1.3 译码器设计
译码是编码的逆过程, 它的功能是将具有特定含义 的二进制码进行辨别,并转 换成控制信号。具有译码功 能的逻辑电路称为译码器。
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
第9页/共99页
5.1 组合逻辑电路设计
5.1.2 编码器设计 1. 8线-3线编码器的VHDL描述
【例5.4】 8线-3线编码器的VHDL设计
LIBRARY ieee;
USE ieee.STD_LOGIC_1164.ALL;
CASE A IS
WHEN "0000" => LED <= "0111111" ; --显示“0” WHEN "0001" => LED <= "0000110" ; --显示“1”
WHEN "0010" => LED <= "1011011" ; --显示“2” WHEN "0011" => LED <= "1001111" ; --显示“3”
LIBRARY ieee;
USE ieee.STD_LOGIC_1164.ALL;
ENTITY gate IS
PORT (a, b: IN STD_LOGIC; y1,y2,y3,y4,y5,y6: OUT STD_LOGIC);
END;
ARCHITECTURE one OF gate IS
BEGIN
相关文档
最新文档