硬件描述语言08-09B卷标准答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2008/2009 学年第一学期末考试试题答案及评分标准

(B卷)

硬件描述语言及器件

使用班级:06060241/06060242

一、填空题(30分,每空格1分)

1、试举出两种可编程逻辑器件 CPLD 、 FPGA 。

2、VHDL程序的基本结构至少应包括实体、结构体两部分和对

库的引用声明。

3、1_Digital标识符合法吗?否, \12 @ +\ 呢?合法。

4、在VHDL的常用对象中,信号、变量可以被多次赋予不同的值,

常量只能在定义时赋值。

5、实体的端口模式用来说明数据、信号通过该端口的传输方向,端口模式有 in 、

Out 、 inout 、 buffer 。

6、VHDL语言中std_logic类型取值‘Z’表示高阻,取值‘X’表示不确定。

7、整型对象的范围约束通常用 range 关键词,位矢量用 downto/to 关键词。

8、位类型的初始化采用(字符/字符串)字符、位矢量用字符串。

9、进程必须位于结构体内部,变量必须定义于进程/包/子程序内部。

10、并置运算符 & 的功能是把多个位或位向量合并为一个位向量。

11、进程执行的机制是敏感信号发生跳变。

12、判断CLK信号上升沿到达的语句是 if clk’event and clk = ‘1’ then .

13、 IF 语句各条件间具有不同的优先级。

14、任何时序电路都以时钟为驱动信号,时序电路只是在时钟信号的边沿到来时,

其状态才发生改变。

15、 Moore 状态机输出只依赖于器件的当前状态,与输入信号无关。

二、判断对错并改正(12分,每小题3分)

1、CONSTANT T2:std_logic <= ’0’;

(错)改正:把<= 换为:= 。

2、若某变量被定义为数值型变量,未赋初始值时默认值为‘0’。

(错)改正:把‘0’的单引号去掉。

3、在结构体中定义一个全局变量(V ARIABLES),可以在所有进程中使用。

(错)改正:“变量(V ARIABLES)”改为“信号”。

4、语句 type wr is (wr0,wr1,wr2,wr3,wr4,wr5); 定义了一个状态机变量wr,

可以直接对wr赋值。

(错)改正:语句 type wr is (wr0,wr1,wr2,wr3,wr4,wr5); 定义了一个状态机类型wr,需要定义一个该类型的对象,才可以对该对象赋值。

三、简答(8分,每小题4分)

1、简述如何利用计数器精确控制时序。

⏹只要知道晶振频率f,即可知道周期T=1/f;

⏹使用一个计数器,可以通过计数值n,精确知道当计数值为n时消耗的时间t=nT;

⏹上例中以n为控制条件,可以控制其它信号在某时刻变高,某时刻变低,从而产生精

确时序;

例如:

⏹PROCESS (clr,clk)

⏹BEGIN

⏹ IF(clr=1) THEN

⏹Count_B<=“00000000”;

⏹q <= ‘0’;

⏹ ELSIF (clk'EVENT AND clk = ‘1’ ) THEN

⏹Count_B<=count_B + 1;

⏹IF (Count_B = “00000000”) THEN

⏹q <= ‘1’;

⏹ELSIF (Count_B = “00000001”) THEN

⏹q <= ‘0’;

⏹ELSIF (Count_B = “00000011”) THEN

⏹q <= ‘1’;

⏹ELSIF (Count_B = “00000100”) THEN

⏹q <= ‘0’;

⏹END IF;

⏹ END IF;

⏹END PROCESS;

2、简述moore状态机和mealy状态机的区别。

从输出的时序上看,Mealy机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的。Moore机的输出则仅为当前状态的函数,在输入发生变化时还必须等待时钟的到来,时钟使状态发生变化时才导致输出的变化。

Moore型状态机:次态=f(现状,输入),输出=f(现状);

Mealy型状态机:次态=f(现状,输入),输出=f(现状,输入);

四、编程(共50分)

1、完成下图所示的触发器。(本题10分)

library IEEE;

use IEEE.std_logic_1164.all;

entity VposDff is

port (CLK, CLR, D: in STD_LOGIC; ----------2分

Q, QN: out STD_LOGIC ); ----------4分

end VposDff;

architecture VposDff_arch of VposDff is

begin

process ( CLK, CLR ) ----------6分

begin

if CLR='1' then Q <= '0'; QN <='1';

elsif CLK'event and CLK='1' then

Q <= D; QN <= not D; ----------8分 end if;

end process; ----------10分end VposDff_arch;

2、完成以下4位全加器代码(本题10分)

library IEEE;

use IEEE.std_logic_1164.all;

entity full_add is

port (

相关文档
最新文档