中北大学08硬件描述语言试题1.docx

上传人:b****5 文档编号:6382211 上传时间:2023-01-05 格式:DOCX 页数:12 大小:53.84KB
下载 相关 举报
中北大学08硬件描述语言试题1.docx_第1页
第1页 / 共12页
中北大学08硬件描述语言试题1.docx_第2页
第2页 / 共12页
中北大学08硬件描述语言试题1.docx_第3页
第3页 / 共12页
中北大学08硬件描述语言试题1.docx_第4页
第4页 / 共12页
中北大学08硬件描述语言试题1.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

中北大学08硬件描述语言试题1.docx

《中北大学08硬件描述语言试题1.docx》由会员分享,可在线阅读,更多相关《中北大学08硬件描述语言试题1.docx(12页珍藏版)》请在冰豆网上搜索。

中北大学08硬件描述语言试题1.docx

中北大学08硬件描述语言试题1

中北大学

试题答案及评分标准

硬件描述语言及器件课程

(课程名称须与教学任务书相同)

2007/2008学年第一学期

试题类别A

拟题日期2008-1-6拟题教师李圣昆

课程编号教师编号1180011

使用班级05182401/2/3

 

备注:

试题答案要求按指定规格计算机打印,并将其文本与电子稿一并上交:

①校级考试课程交评估与考试中心命题科;

②院级考试课程交院教务科。

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

(A卷)

硬件描述语言及器件

使用班级:

05182401/2/3

总分

得分

 

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

1、VHDL是否区分大小写?

不区分。

2、digital__8标识符合法吗?

不合法。

12_bit标识符合法吗?

不合法。

signal标识符合法吗?

不合法。

3、结构体有三种描述方式,分别是数据流、行为、

和结构化。

4、请分别列举一个常用的库和程序包libraryieee、useieee.std_logic_1164.all。

5、一个信号处于高阻(三态)时的值在VHDL中描述为‘Z’。

6、将一个信号width定义为一个4位标准逻辑向量为

signalwidth:

std_logic_vector(3downto0)。

7、/=是不相等操作符,功能是在条件判断是判断操作符两端不相等。

8、设D0为'0',D1为'1',D2为'1',D3为'0',D3&D2&D1&D0的运算结果是

“0110”,(D3orD2)and(D1andnotD0)的运算结果是:

‘1’。

9、赋值语句是(并行/串行)并行执行的,if语句是(并行/串行)串行执行的。

10、请列举三种可编程逻辑器件:

EEPROM、GAL、FPGA。

得分

二、简答(20分,每小题5分)

1、简述VHDL程序的基本结构。

(1)

程序包

(2)

实体(3)

结构体(5)若答出配置也可加1分

 

2、简述信号与变量的区别。

信号延时赋值,变量立即赋值

(2)

信号的代入使用<=,变量的代入使用:

=;(4)

信号在实际的硬件当中有对应的连线,变量没有(5)

3、简述可编程逻辑器件的优点。

●集成度高,可以替代多至几千块通用IC芯片

–极大减小电路的面积,降低功耗,提高可靠性

(1)

●具有完善先进的开发工具

–提供语言、图形等设计方法,十分灵活

–通过仿真工具来验证设计的正确性

(2)

●可以反复地擦除、编程,方便设计的修改和升级(3)

●灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间(4)

●保密性好(5)

4、试比较moore状态机与mealy状态机的异同。

Moore输出只是状态机当前状态的函数(3)

Mealy输出为有限状态机当前值和输入值的函数(5)

 

得分

三、判断题(10分)

libraryieee;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

以上库和程序包语句有无错误?

有,有的话请在原程序相应位置改正。

(2)

entityromis

port(

addr:

instd_logic_vector(0to3);

ce:

instd_logic;

data:

outstd_logic_vector(7downto0);

endrom;

以上port语句有无错误?

有,有的话请在原程序相应位置改正。

(4)

architecturebehaveofromis

begin

process(ce,addr)(6)

begin

ifce='0'then

caseaddris

when"0000"=>

data<="10001001";

when"0001"=>

data<="10001010";

when"0010"=>

data<="10001011";

when"0011"=>

data<="10001100";

when"0100"=>

data<="10001101";

when"0101"=>

data<="10001110";

when"0110"=>

data<="10001111";

when"0111"=>

data<="10010000";

when"1000"=>

data<="10010001";

when"1001"=>

data<="10010010";

when"1010"=>

data<="10010011";

when"1011"=>

data<="10010100";

when"1100"=>

data<="10010101";

when"1101"=>

data<="10010110";

when"1110"=>

data<="10010111";

whenothers=>

data<="10011000";

endcase;

else

data:

="00000000";--data<=“00000000”;(8)

endif;(10)

endprocess;

endbehave;

以上architecture中有哪些错误?

请在原程序相应位置改正。

得分

四、编程(共50分,除特殊声明,实体可只写出PORT语句,结构体要写完整)

1、用IF语句编写一个二选一电路,要求输入a、b,sel为选择端,输出q。

(本题10分)

Entitysel2is

Port(

a,b:

instd_logic;

sel:

instd_logic;

q:

outstd_logic

);

Endsel2;(3)

Architectureaofsel2is

begin

ifsel=‘0’then

q<=a;(6)

else

q<=b;(9)

endif;

enda;(10)

2、编写一个4位加法计数器VHDL程序的进程(不必写整个结构框架),要求复位信号reset低电平时计数器清零,变高后,在上升沿开始工作;输入时钟信号为clk,输出为q。

(本题10分)

Process(reset,clk)

(2)

begin

ifreset=‘0’then

q<=“0000”;(4)

elsifclk’eventandclk=‘1’then(6)

q<=q+1;(9)

endif;

endprocess;(10)

 

3、填写完成一个8-3线编码器的真值表(5分),并写出其VHDL程序(10分)。

8-3线编码器真值表

en

b

y0y1y2

1

00000000

000

1

00000010

001

1

00000100

010

1

00001000

011

1

00010000

100

1

00100000

101

1

01000000

110

1

10000000

111

0

xxxxxxxx

高阻态

entityeight_triis

port(

b:

instd_logic_vector(7downto0);

en:

instd_logic;

y:

outstd_logic_vector(2downto0)

);

endeight_tri;(3)

architectureaofeight_triis

signalsel:

std_logic_vector(8downto0);(4)

begin

sel<=en&b;

y<=“000”when(sel=”100000001”)else

“001”when(sel=”100000010”)else

“010”when(sel=”100000100”)else

“011”when(sel=”100001000”)else

“100”when(sel=”100010000”)else

“101”when(sel=”100100000”)else

“110”when(sel=”101000000”)else

“111”when(sel=”110000000”)else(9)

“zzz”;(10)

enda;

4、根据已给出的全加器的VHDL程序,试写出一个4位逐位进位全加器的VHDL程序。

(本题15分)

libraryIEEE;

useIEEE.std_logic_1164.all;

useIEEE.std_logic_arith.all;

useIEEE.std_logic_unsigned.all;

entityadderis

port(

a,b,c:

instd_logic;

carr:

inoutstd_logic;

sum:

outstd_logic

);

endadder;

architectureadder_archofadderis

begin

sum<=axorbxorc;

carr<=(aandb)or(bandc)or(aandc);

endadder_arch;

 

entityfull_addis

port(

a,b:

instd_logic_vector(3downto0);

carr:

inoutstd_logic_vector(4downto0);

sum:

outstd_logic_vector(3downto0)

);

endfull_add;(5)

architecturefull_add_archoffull_addis

componentadder

port(

a,b,c:

instd_logic;

carr:

inoutstd_logic;

sum:

outstd_logic

);

endcomponent;(10)

begin

carr(0)<='0';

u0:

adderportmap(a(0),b(0),carr(0),carr

(1),sum(0));

u1:

adderportmap(a

(1),b

(1),carr

(1),carr

(2),sum

(1));

u2:

adderportmap(a

(2),b

(2),carr

(2),carr(3),sum

(2));

u3:

adderportmap(a(3),b(3),carr(3),carr(4),sum(3));

endfull_add_arch;(15)

 

得分

五、附加题(10分,本题可产生附加分,全卷不能超过100分)

完成下面moore状态机程序,该设计为一个存储控制器状态机。

能够根据微处理器的读写周期,分别对存储器输出写使能WE和读使能OE信号。

工作过程:

存储控制器的输入信号为微处理器的就绪READY及读写read_write信号。

当上电复位后,或read有效时,存储控制器开始工作,并在下一个时钟周期判断本次作业任务是读存储器还是写存储器。

判断的依据是,当read_write有效时为读操作,否则为写操作。

也就是说非读即写。

读操作时,OE信号有效,写操作时,WE信号有效。

当READY信号有效时,表示读本次作业处理完成,并使控制器恢复到初始状态。

控制器真值表和状态图如下。

存储控制器真值表

状态

输出

OE

WE

空闲(IDLE)

0

0

判断(DECISION)

0

0

写(WRITE)

0

1

读(READ)

1

0

 

存储器控制器状态图

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYmooreIS

PORT(clk,ready,read_write:

INStd_Logic;

oe,we:

OUTStd_Logic);

ENDmoore;

ARCHITECTUREstate_machineOFMooreIS

TYPEstate_typeIS(idle,decision,write,read);

SIGNALpresent_state,next_state:

state_type;

BEGIN

state_comb:

PROCESS(present_state,ready,read_write)

BEGIN

CASEpresent_stateIS

WHENidle=>

oe<=‘0’;

we<=‘0’;

IF(ready='1')THEN

next_state<=decision;

ELSE

next_state<=idle;

ENDIF;

WHENdecision=>

oe<=‘0’;

we<=‘0’;

IF(read_write='1')THEN

next_state<=read;

ELSE

next_state<=write;

ENDIF;

WHENread=>

oe<=‘1’;

we<=‘0’;

IF(ready='1')THEN

next_state<=idle;

ELSE

next_state<=read;

ENDIF;

WHENwrite=>

oe<=‘0’;

we<=‘1’;

IF(ready='1')THEN

next_state<=idle;

ELSE

next_state<=write;

ENDIF;

ENDCASE;

ENDPROCESSstate_comb;

state_clocked:

PROCESS(clk)

BEGIN

IFclk’eventandclk=‘1’THEN

present_state<=next_state;

ENDIF;

ENDPROCESSstate_clocked;

ENDstate_machine;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1