北华航天工业学院2011—2012学年第1 学期
EDA技术与应用课程考试卷(A)
考核形式:闭卷班级:姓名:学号:
题号一二三四五六七八九十十一总分得分
一、单项选择题(共10题,每题2分,共20分)
1.使用QuartusII工具软件实现原理图设计输入,应采用( )方式。
A. 图形编辑
B. 文本编辑
C. 状态图编辑
D. 波形图编辑
2.下列选项中哪种不属于FPGA结构特点的是()。
A.由逻辑功能块排成阵列
B.由固定长度的金属线实现逻辑功能块的连接
C.采用查找表结构的编程方式
D.编程工艺为RAM型
3. 对FLEX器件进行在线配置时,将产生下列哪种文件( )。
A. *.pof
B. *.jed
C. *.tdf
D. *.sof
4.在VHDL的端口声明语句中,用( )声明端口为具有输出并向内部反馈的模式。
A.IN B.OUT
C.INOUT D.BUFFER
5.在下列标识符中,( )是VHDL合法标识符。
A.4h_adde B.h_adde_
C._h_adde D.h_adder
6. 用QuartusI软件实现原理图设计输入文件的扩展名是()。
A. *.bdf
B. *.vhd
C. *.tdf
D. *.sof
7. 在图形编辑口中,基本逻辑门在那个库中( )。
A. Megafunctions
B. others
C. Primitives
D. quartus
8.下列那个选项()不属于用QuartusI软件实现设计的全编译的功能。
A.适配
B. 分析与综合
C. 时序分析
D. 设计仿真
9. QuartusII支持多种仿真输入方法,它支持波形方式输入的向量波形文件的扩展名是()
A. *.vwf
B. * .vec
C. *.tbl
D. *.bdf
10.在VHDL语言中,关于信号和变量的区别,以下说法正确的是()
A.信号和变量都可以在进程外部进行声明
B.信号赋值在进程结束时起作用,而变量赋值是立即起作用
C.信号和变量的赋值符相同
D.信号和变量可以在多个进程中使用
二、填空题(10分)
1.基于可编程器件EDA技术主要包括四大要素,分别为、、、。
2.可编程器件分为和可编程模拟器件。
3.CPLD的基本结构是由、和、三部分组成。4.在VHDL中,使用std_logic和std_logic_vector这两种数据类型时,必须进行如下声明;;
三、简答题(10分)
1. 用QuartusI软件进行层次设计时要注意哪些问题?
2. 为什么在组合电路中容易产生竞争和冒险?
四、判断下面程序是否有错误,如果有,请用下划线画出来,并在相应行的后面加以改正或说明(10分)(共有10处错误)
LIBRARY ieee
USE ieee.std_logic.1164.ALL;
ENTITY decod3_8 IS
PORT(
A, B,C,G1,G2A,G2B: IN STD_LOGIC;
Y: OUT STD_LOGIC.VECTOR(7 DOWNTO 0));
END decoder3_8;
ARCHITECTURE fun OF decoder3_8 IS
SIGNAL indata: STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
Indata:= C&B&A;
encoder: PROCESS (indata; G1, G2A,G2B)
BEGIN
IF (G1='1' AND G2A='0' AND G2B='0') THEN
CASE indata 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 =>Y<="XXXXXXXX";
END ;
ELSE
Y:="11111111";
END IF;
END PROCESS encod;
END fuw;
五、解释程序(18分)
要求:
1.解释程序中右边带有下划线的语句,并将解释写在下划线上(10分)。
2.说明该设计程序的功能。(4分)
3. 在图1所示的仿真图中画出输出端引脚Q和CO的波形(4分)。
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.std_logic_unsigned.all;
Entity up_down is
Port(clk,rst,en,up: in std_logic;
Q: out std_logic_vector(2 downto 0);
Co: out std_logic);
End;
Architecture a of up_down is
Signal count: std_logic_vector(2 downto 0);
Begin
Process(clk,rst)
Begin
If rst='0' then
Count<=(others=>'0');
Elsif rising_edge(clk) then
If en='1' then
Case up is
When '1' => count<=count+1;
When others =>count<=count-1;
End case;
End if;
End if;
End process;
Q<=count;
Co <='1' when en='1' and ((up='1' and count=7) or (up='0' and count=0)) else '0';
End;
图1
六、实践环节解释(8分)
1. 使用QuartusI软件进行时序分析时,出现如图2所示的对话框,试分别说明对话框上部的6个按钮的作用?(6分)
2. 此设计的时钟最高工作频率是多少?(2分)
图2
七、编程题(24分)
1. 编写一位共阳极七段码管的译码器(10分)
2.图3是一个含有上升沿触发的D触发器的时序电路,请用VHDL语言编写该设计文件。(14分)
图3
JTAG烧录可以用来下载到RAM或者烧录到ROM,但是AS只能烧录到ROM。
你出现的情况是,用JTAG下载的时候其实是烧录在RAM中的,由于FPGA是基于SRAM 结构的,掉电会丢失,但是如果直接烧录到RAM中速度较快。而用AS烧录的时候,是先烧录到ROM中,也就是EPCS芯片中的(EPCS其实是专用串行FLSH存储芯片),然后重新上电,FPGA会自动从EPCS中读取配置数据,将程序下载到RAM中。
所以你出现的情况差异就是在这里。
追问
谢谢你的回答,但我个人觉得烧录到AS与Jtag口效果都是一样的,因为程序是一样的,所以觉得编译效果都应该一样的,难道说ROM和RAM写入同样地编译文件表现得状态不一样?能不能再细细的说明一下!
回答
程序是一样,但是ram的速度比rom快很多。这也是为什么电脑需要内存条和机械硬盘是一样的道理,机械硬盘存取速度慢,内存条其实就是ram,速度快。而嵌入式中一般会用DDR RAM芯片和FLASH,程序存储在flash中,而执行程序在ram中,其目的一样是为了提高速度。