山西高考理综试题.docx
《山西高考理综试题.docx》由会员分享,可在线阅读,更多相关《山西高考理综试题.docx(17页珍藏版)》请在冰豆网上搜索。
山西高考理综试题
一、填空题
1.VHDL的数据对象分为信号,变量和常数3类。
(文件4类)
2.VHDL的进程(process)语句是由顺序语句组成的,但其本身却是并行语句。
3.VHDL的操作符包括关系操作符,算术,逻辑和符号操作符。
4.VHDL的顺序语句只能出现在进程,函数和过程中,是按照书写顺序自上而下,一条一条执行
5.Quartus支持原理图,文本,符号和波形等不同编辑方式
6.指定设计电路的输入/输出端口与目标芯片引脚的连接关系的过程称为引脚锁定
7.当前最流行的并成为IEEE标准的硬件描述语言包括VHDL和venlogHDL
8.状态机根据输出与内部器件和输入之间的关系来分可以分为moore和Mealy两种
9.位类型(BIT)的取值只有0和1。
10.多个进程之间进行并行联系是通过信号来实现的
11.variable只能在进程和子程序中使用,signal的使用和定义的范围是实体,
结构体和程序包。
12.IEEE库中预定义的标准逻辑位的逻辑共有9种
13.FPGA的一般采用SRAM工艺
14.在VHDL程序的基本结构,由设计库,程序包,实体和结构体以及配置5个部分组成
15.对CPLD编程的目标文件扩展名为.pof,对FPGA配置的目标文件扩展名为.sof。
16.设D0为‘0’,D1为‘1’,D2为‘1’,D3为‘0’,D3&D2&D1&D0的运算结果是:
0110,(D3orD2)and(D1andnotD0)的运算结果是:
1。
17.VHDL的数据STD_LOGIC定义了9种数据,其中‘Z’表示高阻态,取值‘X’表示不确定。
18.VHDL的两大基本描述语句是顺序语句和并行语句
19.VHDL的子程序有两种类型,即函数和过程。
20.程序包得结构体由程序包首声明和程序包体两部分组成
21.Moore状态机输出只依赖于器件的当前状态,与输入信号无关
22.在VHDL程序中,实体和结构体是两个必须的基本结构
23.在VHDL的端口声明语句中,端口方向包括in,out,inout和buffer。
二、选择题
1.VHDL程序设计结构体的基本功能是:
(C)
A.声明结构体中将用到的数据类型,元件,常数,子程序等
B.定义本设计的输入/输出端口
C.说明设计内部结果与外部端口间的逻辑关系
D.为本设计特定的结构体
2.在下列操作中,最高优先级的运算操作符是(C)
A.ANDB.ORC.NOTD.*
3.进程中的变量赋值语句,其变量更新是(A)
A.立即完成;B.按顺序完成;C.在进程的最后完成;D.都不对
4.在一个VHDL设计中idata是一个信号,数据类型为std_logic_vector,试指出下面赋值语句错误的是(D)
A.idata<=“00001111”B.idata<=B“0000_1111”C.idata<=X“AB”D.idata<=B“21”
5.下述哪个语句用于描述组合电路(C)
A.caseiswhenB.ifthenelsifthenC.whenelseD.ifthen
6.在下列类型的语句中不属于顺序语句的是(C)
A.赋值语句B.LOOP语句C.进程语句D.CASE语句
7.执行QuartusⅡ的(A)命令,可以在底层设计时创建元件的图形符号
A.CreateDefaultSymbolB.SimulatorC.CompilerD.TimingAnalvzer
8.在VHDL语言中,用语句(B)表示检测到时钟clk的上升沿
A.clk’eventB.risingedge(clk)C.clk=‘0’D.clk=‘1’
9.在VHDL中为目标signal赋值符号为(B)
A.=B.<=C.I:
=D.=:
10.假设输入信号a=6,b=E,则以下程序执行后,c的值为(B)
Entitylogicis
Port(a,b:
instd_logic_vector(3downto0);
C:
outsed_logic_vector(7downto0));
Endlogic;
Architectureaoflogicis
Begin
C(0)<=a(0);
C(2downto1)<=a(2downto1)andb(2downto1);
C(3)<=‘1’xorb(3);____________xor表示异或
C(7downto4)<=“1111”when(a
(2)=b
(2))else“0000”;
Enda;
A.F8B.F6C.F7D.0F
11.规模可编程器件主要有FPGA,CPLD两类下列对FPGA结构与工作原理的描述中,正确的是(B)
A.FPGA即是现场可编程逻辑器件的英文简称
B.FPGA是基于查找表结构的可编程逻辑器件
C.早期的CPLD是从GAL的结构扩展而来
D.在Altera公司生产的器件中,FLEX10K系列属CLPD结构
12.下面哪种VHDL库使用时不需要声明(C)
A.IEEE库B.ASIC库C.WORK库D.ALTERA库
13.嵌套使用IF语句,其综合结果可实现(A)
A.带优先级且条件相与的逻辑电路B.条件相或的逻辑电路
C.三态控制电路D.双向控制电路
14.在IEEE预定义的标准逻辑位数据中“Z”表示(D)
A.强未知的B.强0C.强1D.高阻态
15.类属说明的正确格式是:
(B)
A.GENERIC(delay:
TIME=20us)B.GENERIC(delay:
TIME:
=20us)
C.GENERIC(delayTIME=20us)D.GENERIC(delay=TIME:
=20us)
16.用于下载到目标芯片进行硬件调试的文件类型是(A)
A.scfB.bdfC.vhdD.v
17.在VHDL中用(D)来把特定的结构体关联到一个确定的实体
A.输入B.输出C.综合D.配置
18.能反馈输出信号至内部的端口模式是(C)
A.INB.OUTC.BUFFERD.INOUT
19.在VHDL中为目标Variable赋值符号(C)
A.=B.<=C.:
=D.=:
20.进程中对Signal进行赋值,其更新是(C)
A.立即完成;B.按顺序完成;C.在进程的最后完成;D.都不对
21.VHDL语言中,下列对时钟边沿检测描述中,错误的是(D)
A.ifclk’eventandclk‘1’thenB.iffallingedge(clk)then
C.ifclk’eventandclk‘0’thenD.ifclk’stableandnotclk‘1’then
22.若s1为“1011”,s2为“0101”,下面程序执行后,outValue输出结果为:
(B)
Liberaryieee;
Useieee.std_logic_1164.all;
Entityexis
Port(s1:
instd_logic_vector(3downto0);
S2:
instd_logic_vector(0to3)
OutValue:
outstd_logic_vector(3downto0));
Endex;
…………………….
outValue(3downto0)<=(s1(2downto0)andnots2(1to3)ands2(0));
endrtl
A.0101B.O100C.0001D.0000
三、EDA名词解释,写出下列缩写的中文(或者英文)含义。
1.FGPA:
现场可编程门阵列2.EDA:
电子设计自动化
3.VHDL:
超高速硬件描述语言4.ASIC:
专用集成电路
5.CPLD:
复杂可编程逻辑器件6.EAB:
嵌入式阵列块
7.RIT:
寄存传输级
四、根据题目要求完成如下:
1.阅读下列VHDL程序,画出相应RTL图
Libraryieee;
Useieee.std_logic_1164.all;
Entitylfsris
Port(clk,clr,d:
instd_logic;
Mount:
outstd_logic);
Endlfsr;
Architecturertloflfsris
signalsreg:
std_logic;
begin
Process(clk,clr)
variables:
std_logic;
Begin
Ifclr=‘1’thens:
=‘0’;
Elsifrising_edge(clk)then
S:
=sregxor(notd);
Endif;
Sreg<=s;
Endprocess;
Mout<=sreg;
Endrtl;
2.阅读下列VHDL程序,画出相应RTL图,并说明其功能
Entityquansubis
Port(a,b,c_in:
inbit;
Sub,c_out:
outbit);
Endquansub
Architectureoneofquansubis
Procedurebansub(signalx,y:
inbit;signals,c:
outbit)is
Begin
S<=xxoryafter5ns
C<=(notx)andyafter5ns;
Endprocedurebansub;
Procedureorgate(singalm,n:
inbit;signalo:
outbit)is
Begin
0<=morn;
EndProcedureorgate;
Signaltemp1,temp2,temp3:
bit;
Begin
U0:
bansub(a,b,temp1,temp2);
U1:
bansub(temp1,c_in,sub,temp3);
U2:
bansub(temp1,temp2,c_out);
Endone;
五、VHDL程序改错
1)libraryieee;
2)Useieee.std_logic_1164.all;
3)Entitymooris
4)Port(datain:
instd_logic_vector(1downto0)
5)Clk,rst:
instd_logic;
6)Q:
outstd_logic_vector(2downto0));
7)Endmoor;
8)Architecturebehaveofmooris
9)Signalst_typeis(st0,st1,st2);
10)Signalc_st:
st_tytp;
11)Begin
12)Process(clk,rst)
13)Begin
14)Ifrst=‘1’thenc_st<=st0;q<=“0000”;
15)Elsifclk’eventandclk=‘1’then
16)Casec_stis
17)Whenst0=>ifdatain=“10”thenc_st<=st1;
18)Elsec_st<=st0;
19)Endif;Q<=“1001”;
20)Whenst1=>ifdatain=“11”thenc_st<=st2;
21)Elsec_st<=st1;
22)Endif;Q<=“0101”;
23)Whenst2=>ifdatain=“01”thenc_st<=st3;
24)Elsec_st<=st0;
25)Endif;Q<=“1001”;
26)Endcase
27)Endif;
28)Endprocess;
29)Endbehave;
在程序中存在三处错误,试指出出错对应的行数,并说明理由:
第6行:
数据宽度不符合
第9行:
状态机数据类型声明错误,关键字应为TYPE
第26行:
case语句缺少whenothers处理异常状态情况
修改相应行的错误程序(如果是缺少语句请指出对应的行数)
错误1行号:
6程序改为:
q:
outstd_logic_vector(3downto0)
错误2行号:
9程序改为:
signal改为TYPE
错误3行号:
26程序改为:
之前添加一句whenothers=>c_st<=st0;
libraryieee;
Useieee.std_logic_1164.all;
Entitymux41is
Port(s1,s2:
instd_logic;
A,b,c,d:
instd_logic;
Y:
outstd_logic;——————————加个“)”
Endmux41;
Architecturebehofmux41is
Signals:
std_logic_vector(2downto0);————————改为(1downto0)
Begin
S<=s1&s2;
Process(d)————————————————改为process(s)
Begin
Casesis
When“00”=>y<=a;
When“01”=>y<=b;
When“10”=>y<=c;
When“11”=>y<=d;
Whenothers=>y<=‘X’;
Endcase;
End;———————————————————改为endprocess;
Endbeh;
libraryieee;
Useieee.std_logic_1164.all;
Entityyima3_8is
Port(a,b,c,g1.g2a.g2b:
instd_logic;
Y:
outstd_logic_vector(7to0));————————改为(7downto0)
Endyima3_8;
ArchitectureoneofXXis——————————XX改为yima3_8
Variableindata:
std_logic_vector(2downto0);——————Variable改为signal
Begin
Indata>=c&b&a;
Process(indata)
Begin
If(g1=’1’andg2a=’0’andg2b=’0’)then
Caseindatais
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<=“10111110”;
When“111”=>y<=“01111111”;
Whenothers=>y<=“Z”;————————————-改为“ZZZZZZZZ”
Endcase;
Elsey<=“11111111”;
——————————————————添加一句“endif”
Endprocess;
Endone;
六、1)设计一数据选择器MUX,其系统模块图和功能表如下图所示试采用下面三种方式中的两种来描述该数据选择器MUX的结构体。
(a)用if语句(b)用case语句(c)用whenelse语句
libraryieee;
Useieee.std_logic_1164.all;
Entitymymuxis
Port(sel:
instd_logic_vector(1downto0);
Ain,bin:
instd_logic_vector(1downto0);
Cout:
outstd_logic_vector(1downto0));
Endmymux;
Architectureoneofmymuxis
Begin
Process(sel,ain,bin)
Begin
Ifsel=“00”thencout<=ainandbin;
Elsifsel=“01”thencout<=ainxorbin;
Elsifsel=“10”thencout<=notain;
Elsecout<=notbin;
Endif;
Endprocess;
Endone;
Architecturetwoofmymuxis
Begin
Process(sel,ain,bin)
Begin
Caseselis
When“00”=>cout<=ainandbin;
When“01”=>cout<=ainxorbin;
When“10”=>cout<=notain;
whenothers=>cout<=notbin;
Endcase;
Endprocess;
Endtwo;
Architecturethreeofmymuxis
Begin
Cout<=ainandbinwhensel=“00”else
ainxorbinwhensel=“01”else
notainwhensel=“10”else
notbin;
Endthree;
2)看下面原理图,补充完相应VHDL描述。
DFF为上升沿触发,LATCH为高电平选通
libraryieee;
Useieee.std_logic_1164.all;
Entitymyciris
Port(A,B,clk:
instd_logic;
Q:
outstd_logic);
Endmycir;
Architecturebehofmyciris
Signalta,tc;
Begin
tc<=tanandB;
Process(clk)
Begin
ifclk’eventandclk=‘1’then
ta<=A;
Endif;
Endprocess;
Process(clk,tc)
Begin
Ifclk=‘1’then
Q<=tc;
Endif;
Endprocess;
Endbeh;
3.利用元件例化和生成语句完成74373的8位三态锁存器的设计
——1位锁存器LATCH的逻辑描述
libraryieee;
Useieee.std_logic_1164.all;
Entitylatchis
Port(D,ENA:
instd_logic;
Q:
outstd_logic);
Endentitylatch;
Architectureoneoflatchis
Signalsig:
std_logic;
Begin
Process(D,ENA)
Begin
IfENA=‘1’thensig<=d;
Endif;
Q<=sig;
Endprocess;
EndArchitectureone;
--8位锁存器74373逻辑描述
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYSN74373IS
PORT(D:
INSTD_LOGIC_VECTOR(7DOWNTO0);
OEN,G:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDSN74373;
ARCHITECTUREoneOFSN74373IS
COMPONENTLatch
PORT(D,ENA:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC);
ENDCOMPONENT;
SIGNALsig:
STD_LOGIC_VECTOR(8DOWNTO1);
BEGIN
FORiIN7DOWNTO0GENERATE
LatchPORTMAP(D(i),G,sig(i));
ENDGENERATE;
Q<=sigWHENOEN='0'ELSE"ZZZZZZZZ";
ENDARCHITECTUREone;
4、用VHDL语言设计一个电梯电路模拟其控制逻辑,下图a为该VHDL电路的设计模块图。
图a控制器设计模块图
图a中cnt100控制电梯开关门延时,elev2为电梯状态控制器。
电梯闸门由打开到关闭或由关闭到打开时,elev2模块向cnt100输出一个en计数使能信号(高电平有效)。
cnt100计数溢出(≥100)时输出cout信号(高电平有效),同时cnt100计数停止。
cnt100仿真波形如下图所示。
cnt100的实体描述如下所示:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitycnt100is
port(clk,en:
instd_logic;--时钟、使能信号
cout:
outstd_logic);--溢出信号
endcnt100;
问题1,补充完整cnt100的结构体设计。
architectureoneofcnt100is
begin
process(clk,en)
variableq:
std_logic_vector(7downto0);
begin
ifen=‘0’thenq:
=(others=>‘0’);
elsifclk’eventandclk=‘1’thenq:
=q+1;
endif;
ifq=100thencout<=‘1’;
elsecout<=‘0’;
endif;
endprocess;
endone;
以下是elev2模块的VHDL实体描述(结构体部分省略):
entityelev2is
port(clk,rst:
instd_logic;--时钟、复位信号
cout:
instd_logic;--定时溢出信号
door:
outstd_logic;--门控信号,低电平开门
up:
outstd_logic;--上升信号
down:
outstd_logic;--下降信号
en:
outstd_logic);--延时计数清零、使能信号
end