《VHDL语言与EDA技术》课程试卷答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《VHDL语言与EDA技术》课程试卷(1)答案
一、分析下列代码。
1、试分析,该代码描述的是什么功能电路?
答:模8计数器
2、
试分析,该代码描述的是什么功能电路?
答:四位二进制码输入,LED七段码显示电路
若不写第24行代码,是否可以?说明理由。
答:不可以,否则输入0000-1001以外的数据时就无法继续执行代码。
3、试分析,在该代码中,第8行“f<=temp1 XOR temp2;”写在第九行“temp1<=a AND b; ”和第十行“temp2<=c OR d;”前面,这种书写顺序对功能的实现有没有影响?
答:没有
该代码中有一个错误,在第4行,此行语句应改为END exam;
4、
试分析,该代码描述的是什么功能电路?
答:通用译码器
第4句中的端口ena 是使能信号输入端,在此代码描述的电路中,ena为0还是为1时电路能有效完成期望功能?
答:1
此代码描述中,第11句和第12句中,x'high 代表的值是多少?
答:7
二、填空,补全下列代码。
1、output: OUT std_logic_vector( 7 downto 0) );
(OTHERS=>' Z');
2、
q:OUT STD_LOGIC_VECTOR (1 DOWNTO 0));
SIGNAL q_tmp: STD_LOGIC_VECTOR(1 DOWNTO 0);
process( clk)
IF(clk'event and clk=' 1 ')then
q_tmp <= ( others =>'0');
end if;
end process ;
end rtl;
三、设计程序,完成下列功能
1、
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY fulladder IS
PORT (a, b, cin: IN BIT;
s, cout: OUT BIT);
END fulladder;
ARCHITECTURE rtl OF fulladder IS
BEGIN
s<=a XOR b XOR cin;
cout<=(a AND B) OR (a AND cin) OR (b AND cin);
END rtl;
2、
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY dff1 IS
PORT(d, clk, rst: IN STD_LOGIC;
q: OUT STD_LOGIC);
END dff1;
ARCHITECTURE behavior OF dff1 IS
BEGIN
PROCESS (rst, clk)
BEGIN
IF (rst='1') THEN
q<='0';
ELSIF ( clk'EVENT AND clk='1' ) THEN
q<=d;
END IF;
END PROCESS;
END behavior;
四、简答题
1、
进程(process)内部的语句是一种顺序描述语句,其内部经常包括if,wait,case或loop语句。
特点:
1、进程与进程,或其它并发语句之间的并发性;
2、进程内部的顺序性;
3、要么使用敏感信号列表(sensitivity list),要么使用wait语句,二者不可同时使用。
4、进程必须包含在主代码段中,当敏感信号列表中的某个信号发生变化,或者wait语句的条件满足时,process内部的代码就顺序执行一次;
2、
答:函数有零个或多个输入(模式)参数和一个返回值(return 语句),输入参数只能是常量(默认)或信号,不能被改变,不能是变量。
过程可以具有多个输入/输出/双向模式的参数,可以是信号、变量和常量;对输入模式的参数,默认的为常量(不可改变),对于输出和双向模式的参数,默认的为变量(可变)(无需使用return语句);
函数调用是作为表达式一部分出现的,过程则可以直接调用;
函数和过程内部的wait和component都是不可综合的;
两者的存放位置相同。
3、
答:1、启动Quartus II。
2、新建一个工程。
3、打开文本编辑器,输入VHDL代码,保存为.vhd文件。
4、编译代码,如有错误进行修改。
5、打开波形编辑器,建立波形文件。
6、添加输入输出信号进波形文件,然后进行适当的设置,保存为.vwf文件。
7、仿真得仿真波形文件结果。
8、观察RTL电路图。