实验三组合电路设计(一) 1.实验目的 堂据设计组合罗组申路的方法 ● 通过开发CPD来实现组合逻辑电路的功能, 2.示例 (1)数选器74153的VHDL描述。 源程序: Use Entity mux4 Port(d0,d1,d2,d3:in std_logic: Sta,b:in std_logic. y:out std_logic). End Architecture bhv of mux4 is Signal co:std_logic_vector(1 downto 0); Begin Cos=h&a Process(st,a,b) begir If(st='I')then Case co is When"00"=>y<='d0" When'"01"=>y<='dl' When"11"->y<='d3 When others=>y<='0'; End case; End if; End process End: (2)代码转换 要求:输入为8421BCD码,输出为2421码,如表431所示
实验三 组合电路设计(一) 1.实验目的 ● 掌握设计组合逻辑电路的方法。 ● 通过开发 CPLD 来实现组合逻辑电路的功能。 2.示例 (1)数选器 74153 的 VHDL 描述。 源程序: Library ieee; Use ieee.std_logic_1164.all; Entity mux4 is Port(d0,d1,d2,d3:in std_logic; St,a,b:in std_logic; y:out std_logic); End; Architecture bhv of mux4 is Signal co:std_logic_vector(1 downto 0); Begin Co<=b&a; Process(st,a,b) begin If (st=’1’) then Case co is When”00”=>y<=’d0’; When”01”=>y<=’d1’; When”10”=>y<=’d2’; When”11”=>y<=’d3’; When others=>y<=’0’; End case; End if; End process; End; (2) 代码转换 要求:输入为 8421BCD 码,输出为 2421 码,如表 4-3-1 所示
表431代码转换电路代码转换表 输入 输出 给入 输出 数字 (8421BCD码) 24p1玛 (842IBCD码) (2421玛) X3 X2 XI XO Y3 Y2 Y1 YO X3 X2 X1 XO Y3 Y2 Y1 Y0 0 0 0 10 0 0 0 0 0 0 1100 0 1 1 1101 0 110 1 1 源程序: Library ieee: Use ieee.std _logic_164.all Entity dmzh is Port(a:in std logic_vector(3 downto 0); y:out std_logic_vector(3 downto ) End Architecture rtl of dmzh is Begin Process(a) Begin Case a is When"0000=>y<="0000 Whem"0001=>y="0001 Whem"0010=v=”0010” When"0011"=>y<="0011" When"100 c=0100 Whcn0101-y<="1011 when0110=v<=1100 When"0111"=>y<="1101"; When"1000" v=”1110” When"1001 y”1111 When others-yZ7Z End case: End process, End; (3)8线.一3线编码器74-148的设计 源程序: Library ieee; Use ieee.std logic 1164.all:
源程序: Library ieee; Use ieee.std_logic_1164.all; Entity dmzh is Port(a:in std_logic_vector(3 downto 0); y:out std_logic_vector(3 downto 0)); End; Architecture rtl of dmzh is Begin Process(a) Begin Case a is When”0000”=>y<=”0000”; When”0001”=>y<=”0001”; When”0010”=>y<=”0010”; When”0011”=>y<=”0011”; When”0100”=>y<=”0100”; When”0101”=>y<=”1011”; When”0110”=>y<=”1100”; When”0111”=>y<=”1101”; When”1000”=>y<=”1110”; When”1001”=>y<=”1111”; When others=>y<=”ZZZZ”; End case; End process; End; (3) 8 线.—3 线编码器 74-148 的设计 源程序: Library ieee; Use ieee.std_logic_1164.all;
Entity yxbm8 3 is logic Y:out std_logic_vector(2 downto 0); Ys.yex:out std_logic): End Architecture bhv of yxbm8_3 is Begin Process(i,s) Begin Ifst='1’then Y<-"11 Ys<='l' Yex<='l': Else IfI刀='0'then Y=000 Yss='l' Yex<='0' Elsif I(6)='0'then Y<=001: Ys<=1 Yex<='0 Elsif I(5)=0 then Y<="010", Ys<=1' Yexc='0' ElsifI(4='0°then Y<=o11 Ys<=1 Yex<='0': Elsif I(3)='0'then Yc=”100”. Ys<=1 Yex<='0' Elsif I(2)='0°then Y<="101, Ys='1: Yexs='0' Elsif I(1)=0 then Y<="110", Ys<=1'; Yex<='0";
Entity yxbm8_3 is Port(i:in std_logic_vector(7 downto 0); St:in std_logic; Y:out std_logic_vector(2 downto 0); Ys,yex:out std_logic); End; Architecture bhv of yxbm8_3 is Begin Process(i,s) Begin If st=’1’ then Y<=”111”; Ys<=’1’; Yex<=’1’; Else If I(7)=’0’ then Y<=”000”; Ys<=’1’; Yex<=’0’; Elsif I(6)=’0’ then Y<=”001”; Ys<=’1’; Yex<=’0’; Elsif I(5)=’0’ then Y<=”010”; Ys<=’1’; Yex<=’0’; Elsif I(4)=’0’ then Y<=”011”; Ys<=’1’; Yex<=’0’; Elsif I(3)=’0’ then Y<=”100”; Ys<=’1’; Yex<=’0’; Elsif I(2)=’0’ then Y<=”101”; Ys<=’1’; Yex<=’0’; Elsif I(1)=’0’ then Y<=”110”; Ys<=’1’; Yex<=’0’;
Elsif I(0)='0'then Y"11 Ys<=1 Yex<='0': Elsif I=”1 mmr”then Y=”111 Ys-0' End if, End if. End process, End: 3.实酸内容 (1)多数表决电略设计 a.要求:当输入A、B、C、D有3个或3个以上为1时输出F为1:输入为其他状态 时输出为0。 b.写出实验内容的真值表及逻辑表达式。 c.将编写好的程序下载到CPLD芯片里,观察结果。 (2)代码转换电路设计 a.要求:输入为8421BCD码,输出为余3码,如表4-3-2所示。 表43-2代码转换电路代码转换表 输入 输出 输入 输出 数字 (8421BCD码)(余3码) 数字(8421BCD码) 〔余3码) x3X2x10321o X32x1x021o 0000 0001 5 0101 1000 0 1 0 0 10 0010 010 10 0 3 00110110 8 10001011 4010001119 10011100 b.按照实验内容及代码转换表,写出逻辑表达式。 编写出实现该电路的HDL程序。 d.用MAX+plusII进行仿真. c.将编写好的程序下载到CPLD芯片里,观察结果。 4.注意事项 (1)电路的绵程要根据要求及真估表,要考虑输入所有可能出现的情况,尽量荷洁。 (2)仿真信号要包括所有端子的各种情况 (3)测试信号要包括所有端子的各种情况 5.预习要求 (1)复习有关组合逻辑电路的设计方法,分析其逻辑功能,写出其真值表及逻辑表达 式
Elsif I(0)=’0’ then Y<=”111”; Ys<=’1’; Yex<=’0’; Elsif I=”11111111” then Y<=”111”; Ys<=’0’; Yex<=’1’; End if; End if; End process; End; 3.实验内容 (1)多数表决电路设计 a. 要求:当输入 A、B、C、D 有 3 个或 3 个以上为 1 时输出 F 为 1;输入为其他状态 时输出为 0。 b. 写出实验内容的真值表及逻辑表达式。 c. 编写出实现该电路的 VHDL 程序。 d. 用 MAX+plusII 进行仿真。 e. 将编写好的程序下载到 CPLD 芯片里,观察结果。 (2)代码转换电路设计 a. 要求:输入为 8421BCD 码,输出为余 3 码,如表 4-3-2 所示。 b. 按照实验内容及代码转换表,写出逻辑表达式。 c. 编写出实现该电路的 VHDL 程序。 d. 用 MAX+plusII 进行仿真。 e. 将编写好的程序下载到 CPLD 芯片里,观察结果。 4.注意事项 (1)电路的编程要根据要求及真值表,要考虑输入所有可能出现的情况,尽量简洁。 (2)仿真信号要包括所有端子的各种情况。 (3)测试信号要包括所有端子的各种情况。 5.预习要求 (1)复习有关组合逻辑电路的设计方法,分析其逻辑功能,写出其真值表及逻辑表达 式
(2)分析输入信号的所有情况,进行记录,便于实验进行验证。 (3)自己绘制激励波形,考虑输入端子的各种情况。 6.实验报告 根据以上的实验内容写出实验报告:包括程序设计、软件编译、(功能、时序)仿真分析 硬件测试和和分析:设计程序、程序分析报告、仿真波形图及其分析报告
(2)分析输入信号的所有情况,进行记录,便于实验进行验证。 (3)自己绘制激励波形,考虑输入端子的各种情况。 6.实验报告 根据以上的实验内容写出实验报告:包括程序设计、软件编译、(功能、时序)仿真分析、 硬件测试和和分析;设计程序、程序分析报告、仿真波形图及其分析报告