西安电子科技大学EDA实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA大作业及实验报告
实验一:QUARTUS Ⅱ软件使用及组合电路设计仿真
实验目的:
学习QUARTUS Ⅱ软件的使用,掌握软件工程的建立,VHDL源文件的设计和波形仿真等基本内容;
实验内容:
1.四选一多路选择器的设计
首先利用QuartusⅡ完成4选1多路选择器的文本编辑输入(mux41a.vhd)和仿真测试等步骤,给出仿真波形。
步骤:
(1)建立工作库文件夹和编辑设计文件;
(2)创建工程;
(3)编译前设置;
(4)全程编译;
(5)时序仿真;
(6)应用RTL电路图观测器(可选择)
实验程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux41 IS
PORT(
S10:IN STD_LOGIC_VECTOR(1 DOWNTO 0);
A,B,C,D:IN STD_LOGIC;
Q:OUT STD_LOGIC
);
END ENTITY mux41;
ARCHITECTURE bhv OF mux41 IS
BEGIN
PROCESS(A,B,C,D,S10)
BEGIN
IF S10="00" THEN
Q<=A;
ELSIF S10="01" THEN
Q<=B;
ELSIF S10="10" THEN
Q<=C;
ELSE
Q<=D;
END IF;
END PROCESS;
END bhv;
波形仿真如图:
其中,分别设置A,B,C,D四个输入都为10.0ns的方波,其占空比分别为25%,50%,75%,90%以作为四种输入的区分,使能端s10以此输入00(即[0]),01(即[1]),10(即[2]),11(即[3]),可以观察到输出端Q依次输出分别为A,B,C,D。试验成功。
其RTL电路图为:
2.七段译码器程序设计仿真
2.1 原理:7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。本项实验很容易实现这一目的。例1作为7段BCD码译码器的设计,输出信号LED7S的7位分别接如实验图1数码管的7个段,高位在左,低位在右。例如当LED7S输出为"0010010" 时,数码管的7个段:g、f、e、d、c、b、a分别接0、0、1、0、0、1、0,实验中的数码管为共阳极的,接有低电平的段发亮,于是数码管显示“5”。
实验图1 数码管及其电路
2.2 实验内容:参考后面的七段译码器程序,在QUARTUS II上对以下程序进行编辑、编译、综
合、适配、仿真,给出其所有信号的时序仿真波形。
试验程序如下:
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY DecL7S IS
PORT ( A : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ;
LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ;
END ;
ARCHITECTURE one OF DecL7S IS
BEGIN
PROCESS( A )
BEGIN
CASE A(3 DOWNTO 0) IS
WHEN "0000" => LED7S <= "1000000" ; -- X“80”->0
WHEN "0001" => LED7S <= "1111001" ; -- X“79”->1
WHEN "0010" => LED7S <= "0100100" ; -- X“24”->2
WHEN "0011" => LED7S <= "0110000" ; -- X“30”->3
WHEN "0100" => LED7S <= "0011001" ; -- X“19”->4
WHEN "0101" => LED7S <= "0010010" ; -- X“12”->5
WHEN "0110" => LED7S <= "0000010" ; -- X“02”->6
WHEN "0111" => LED7S <= "1111000" ; -- X“78”->7
WHEN "1000" => LED7S <= "0000000" ; -- X“00”->8
WHEN "1001" => LED7S <= "0010000" ; -- X“10”->9
WHEN "1010" => LED7S <= "0001000" ; -- X“08”->A
WHEN "1011" => LED7S <= "0000011" ; -- X“03”->B
WHEN "1100" => LED7S <= "1000110" ; -- X“46”->C
WHEN "1101" => LED7S <= "0100001" ; -- X“21”->D
WHEN "1110" => LED7S <= "0000110" ; -- X“06”->E
WHEN "1111" => LED7S <= "0001110" ; -- X“0E”->F
WHEN OTHERS => NULL ;
END CASE ;
END PROCESS ;
END ;
波形仿真如图:
如图,当输入端A依次输入0-15的四位二进制码时,输出端依次输出(0-9及A-F)的数码管所对应的七位二进制数,例如,当输入0000时,输出端输出1000000(即字符@的ASCII 码),显示在数码段上即‘0’。