一、实验目的:
熟悉QuartusⅡ 9.0的基本操作,掌握文本输入方法,了解CPLD\\FPGA设计过程。
二、实验内容:
1、用VHDL设计138译码器,并进行输入、编译、综合、适配、仿真,并将其设置成一个硬件符号入库,最后下载;
2、将设计的138译码器和实验开发板连线,其中138译码器的输入接到实验开发板的拨码开关,输出端接8个LED灯,通过输入变化观察LED输出情况。
三、实验参考程序:
3线8线译码器的源程序 library ieee;
use ieee.std_logic_1164.all; entity decoder3_8 is
port (a,b,c,g1,g2a,g2b: in std_logic;
y:out std_logic_vector(7 downto 0)); end;
architecture rtl of decoder3_8 is signal dz:std_logic_vector(2 downto 0); begin
dz<=c&b&a;
process(dz,g1,g2a,g2b) begin
if(g1='1' and g2a='0' and g2b='0') then case dz is
when \"000\"=>y<=\"11111110\"; when \"001\"=>y<=\"11111101\"; when \"010\"=>y<=\"11111011\"; when \"011\"=>y<=\"11110111\"; when \"100\"=>y<=\"11101111\"; when \"101\"=>y<=\"11011111\"; when \"110\"=>y<=\"10111111\"; when \"111\"=>y<=\"01111111\"; when others=>null; end case; else
y<=\"11111111\"; end if;
end process;
end;
设计3-8译码器的关键;74138的逻辑功能表如下:
INPUT Select C B A × × × × × × 0 0 0 Enable G1  ̄G 2A  ̄G 2B × 1 1 0 × × 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0  ̄Y ̄7  ̄Y ̄6  ̄ ̄Y ̄5  ̄ ̄Y ̄4  ̄Y ̄3  ̄Y ̄2  ̄Y ̄1  ̄Y ̄0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 OUTPUT 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 注:使能端G1是高电平有效;
使能端G2是低电平有效,G2 = G2A AND G2B。
四、思考题:
1、上述程序描述的138译码器与中小规模集成电路74LS138功能是否相同?
2、能否用原理图输入法设计138译码器(组合电路和LPM设计)?若能,请画出原理图,可进行输入、编译、综合、适配、仿真,并将其设置成一个硬件符号入库。
五、实验报告:
根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真等步骤及波形图、硬件测试和详细实验过程;思考题及心得体会。
因篇幅问题不能全部显示,请点此查看更多更全内容