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

上传人:b****5 文档编号:19393185 上传时间: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

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

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

signalwidth:

std_logic_vector(3downto0)。

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

8、设D0为'

0'

D1为'

1'

D2为'

D3为'

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='

then

caseaddris

when"

0000"

=>

data<

="

10001001"

;

0001"

10001010"

0010"

10001011"

0011"

10001100"

0100"

10001101"

0101"

10001110"

0110"

10001111"

0111"

10010000"

1000"

10010001"

1001"

10010010"

1010"

10010011"

1011"

10010100"

1100"

10010101"

1101"

10010110"

1110"

10010111"

whenothers=>

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:

sel:

q:

outstd_logic

);

Endsel2;

(3)

Architectureaofsel2is

ifsel=‘0’then

q<

=a;

(6)

=b;

(9)

enda;

(10)

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

输入时钟信号为clk,输出为q。

Process(reset,clk)

(2)

ifreset=‘0’then

=“0000”;

(4)

elsifclk’eventandclk=‘1’then(6)

=q+1;

(9)

endprocess;

(10)

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

8-3线编码器真值表

en

b

y0y1y2

1

00000000

000

00000010

001

00000100

010

00001000

011

00010000

100

00100000

101

01000000

110

10000000

111

xxxxxxxx

高阻态

entityeight_triis

b:

instd_logic_vector(7downto0);

en:

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”;

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:

carr:

inoutstd_logic;

sum:

);

endadder;

architectureadder_archofadderis

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:

);

endcomponent;

(10)

carr(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)

判断(DECISION)

写(WRITE)

读(READ)

存储器控制器状态图

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<

IF(ready='

)THEN

next_state<

=decision;

ELSE

=idle;

ENDIF;

WHENdecision=>

IF(read_write='

=read;

=write;

WHENread=>

=‘1’;

WHENwrite=>

=idle;

=write;

ENDCASE;

ENDPROCESSstate_comb;

state_clocked:

PROCESS(clk)

IFclk’eventandclk=‘1’THEN

present_state<

=next_state;

ENDPROCESSstate_clocked;

ENDstate_machine;

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

当前位置:首页 > 自然科学 > 天文地理

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

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