5.51164E,18
详细内容
第一篇:《EDA复习》
1、进程中的信号赋值语句,其信号更新是在进程的最后完成;
在顺序代码中,信号值的更新不是及时的,变量是及时的
信号的类型包括bit(0,1),std_logic(0,1,高阻态),integer(整数)
2、CPLD和FPGA有什么差异?在实际应用中各有什么特点?
a)差异:(1)CPLD:复杂可编程逻辑器件,FPGA:现场可编程门阵列;
(2)CPLD:基于乘积项技术的确定型结构,FPGA:基于查找表技术的统计型结构;
(3)CPLD:5500~50000门,FPGA:1K~10M门。
b)实际应用中各自的特点:
CPLD适用于逻辑密集型中小规模电路,编程数据不丢失,延迟固定,时序稳定;
FPGA适用于数据密集型大规模电路,需用专用的ROM进行数据配置,布线灵活,但时序特性不稳定
3、端口模式IN,OUT,BUFFER和INOUT各自的特点及OUT,BUFFER与INOUT的主要区别(p11)In,out:单向引脚,in只能被读取,out只能被赋值;
inout:双向引脚,不能供本电路内部使用;
buffer:先是一个输出引脚,但该输出信号可以供本电路内部使用,既能被读取,又能被赋值
4、VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构
体描述器件的内部功能;
5、3种数据对象为:常量、信号、变量。
各自的功能特点和使用场所:
a)常量:代表电路中一个确定的数,如电源、地等。全局量,信号变量使用的地方都可用
b)信号:代表电路中的某一条硬件连接线,包括输入、输出端口,信号赋值存在延迟。
全局量,使用场所:architecture、package、entitiy。
c)变量:代表电路中暂存某些值的载体。变量赋值不存在延迟。
局部量,使用场所:process、function、procedure。
6、用VHDL编写的代码,variable和signal可以在同处声明,但作用不同的说法是错误的。
Signal的声明应该放在process和begin之间
7、VHDL代码中是不区分大小写。
8、对于状态机,状态机必须有复位信号输入,但可以没有时钟信号输入说法是不正确的。也即是说
状态机可以没有复位信号,但必须有时钟信号。
9、已知A和Q均为BIT类型的信号,下面的代码片断:
ARCHITECTUREtestOFtestIS
Process(clk)
BEGIN
CASEAIS
WHEN'0'=>Q<='1';
WHEN'1'=>Q<='0';
ENDCASE;
Endprocess;
ENDtest;
CASE语句属于顺序代码,因此应当存在于进程PROCESS内,而不应当这样。
10、下面的代码中,start为STD_LOGIC类型的信号,sum是INTEGER类型的信号:
PROCESS(start)
BEGIN
FORiIN1TO9LOOP
sum:=sum+I;--改正为sum<=sum+I;
ENDLOOP;
ENDPROCESS;
因为sum是信号,其赋值符号应该由“:=”改为“<=”。
11、已知Q为STD_LOGIC类型的输出端口,下面的程序片断:
ARCHITECTUREtestOFtestIS
SIGNALB:STD_LOGIC;
BEGIN
Q<=B;
ENDtest;
信号SIGNAL的声明语句应该放在ARCHITECTURE和BEGIN语句之间。
12、已知A和B均为STD_LOGIC类型的信号,请判断下面的语句:
A<='0';
B<='x';--B<='X';
不定态符号应该由小写的„x‟改为大写的„X‟。
13、已知A为INTEGER类型的信号,B为STD_LOGIC类型的信号,下面的程序片断:
ARCHITECTUREtestOFtestIS
BEGIN
B<=A;
ENDtest;
A和B的数据类型不一致,不能相互赋值。
14、已知sel是STD_LOGIC_VECTOR(1DOWNTO0)类型信号,而a、b、c、d、q均为STD_LOGIC
类型信号,请判断下面给出的CASE语句:
CASEselIS
WHEN“00”=>q<=a;
WHEN“01”=>q<=b;
WHEN“10”=>q<=c;
WHEN“11”=>q<=d;
Whenothers=>null;
ENDCASE;
CASE语句缺“WHENOTHERS”语句(因为STD_LOGIC_VECTOR除了上面的值,还有其他值)。
15、VHDL代码填空,请认真看并记住一些完整的代码,特别是带有if..then..else和elsif结构的代码,(从
头到尾,即从LIBRARY开始)。
16、简述三态门输出的三种状态分别为哪三种。
高电平,低电平,高阻态
高电平,低电平可以由内部电路拉高和拉低。而高阻态时引脚对地电阻无穷,此时读引脚电平时可以读到真实的电平值.
17、状态机分哪两类,下图所示状态机属于哪一类。
C-state:当前状态;n-state:下一状态
这个属于莫里型状态机
18、三输入或非门的完整代码。
3个输入端,1个输出端,输出端的功能是F非=A+B+C
--两输入
entitynor_gateis
Port(a,b:inbit;y:outbit);
Endnor_gate;
Architecturenor_gateofnor_gateis
Beginy<=anorb;--如果是与非门,这句改成:y<=anandb;
Endnor_gate;
--三输入
entitynor_gateis
Port(a,b,c:inbit;y:outbit);
Endnor_gate;
Architecturenor_gateofnor_gateis
Beginy<=not(aorborc);
Endnor_gate;
19、二选一的选择器的完整代码,(习题5.1的简化版)。
Libraryieee;
Useieee.std_logic_1164.all;
Entityselectoris
port(a,b,s0:instd_logic;
y:outstd_logic);
endselector;
Architectureselectorofselectoris
Beginy<=(aandnots0)or(bands0);
endselector;
20、弄清哪些是顺序语句,哪些是并发语句,如下列中出现的错误
四选一多路选择器错误代码
libraryieee;
useieee.std_logic_1164.all;
entityex1is
port(A,B,C,D:instd_logic;
sel:instd_logic_vector(1downto0);
Z:outstd_logic);
Endex1;
Architecturearchofex1is
Begin
Process(A,B,C,D)--去掉这一行
Begin
Z<=Awhensel=“00”else说明:when….else是并行语句,不能放在
Bwhensel=“01”elseProcess内。去掉process(A,B,C,D)和
Cwhensel=“10”elseBegin语句
D;
Endprocess;--去掉这一行,process内部的代码是顺序执行的,每当敏感信号发生变化,process就执行一次,但是when….else是并行语句
Endarch;
D触发器错误代码
libraryieee;
useieee.std_logic_1164.all;
entityex2is
port(clk,d:instd_logic;
q:outstd_logic);
Endex2;
Architecturearchofex2is
Begin
Process(clk)说明:wait语句和process的敏感量不能同时Begin存在。去掉process(clk)中的(clk)
Waituntilclk‟eventandclk=„1‟;--或者改为:if(clk'eventandclk='1')then
q<=d;
Endprocess;
Endarch;
数据分配器
libraryieee;
useieee.std_logic_1164.all;
entityex3is
port(din:instd_logic_vector(2downto0);
dout:outstd_logic_vector(3downto0));{5.51164E,18}.
endex1;
architecturertlofex1is
begin
Process(din)说明:cass语句是顺序语句要放在beginprocess内,在begin与case之间增加case(din)isprocess(din)与begin语句when“00”=>dout<=“0001”;
when“01”=>dout<=“0010”;
when“10”=>dout<=“0100”;
whenothers=>dout<=“1000”;
endcase;
Endprocess;
endrtl;
模16计数器
libraryieee;
useieee.std_logic_1164.all;
Useieee.std_logic_unsigned.all;
entityex4is
port(clk:instd_logic;
count:outstd_logic_vector(3downto0));--改为count:bufferintegerrange0to3;count:=0;
endex4;
architecturertlofex4is说明:ieee.std_logic_1164.all程序包不具有加begin运算功能,本程序有加法运算,因此需添加process(clk)useieee.std_logic_unsigned.all语句;同时ifclk‟eventandclk=‟1‟thencount是out模式,在程序中做了源,因此需将count<=count+1;out改为buffer;还有在port声明部分用:=endif;给count赋给初值。
endprocess;
endrtl;
三态门电路
libraryieee;
useieee.std_logic_1164.all;
entityex5is
port(en,din:inbit;--instd_logic;
dout:outbit--outstd_logic;
);
endex5;
architectureartofex5is
begin
process(en,din)beginifen='1'thendout<=din;libraryieee;
elsedout<='Z';useieee.std_logic_1164.all;
endif;port中的bit改为:std_logic
endprocess;
endart;
奇偶校验电路
libraryieee;
第二篇:《EDA考试试卷2004下学期A卷》第三篇:《07电工本EDA试卷(B)》2009—2010年第二学期闽江学院考试试卷(B)
适用年级专业:07级电子信息工程考试形式:闭卷笔试
考试课程:电子设计自动化(EDA技术)
班级姓名学号
一、选择题(每小题2分共20分)20%
装
订
线
1.EDA技术最终实现的目标是(){5.51164E,18}.
A.ASIC,B.FPGAC.CPLDD.GAL
2.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是____。
A.FPGA全称为复杂可编程逻辑器件;
B.FPGA是基于乘积项结构的可编程逻辑器件;
C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;D.在Altera公司生产的器件中,EP1C6Q240C8系列属CPLD结构。3.在EDA工具中,能完成在目标系统器件上布局布线软件称为()A.仿真器B.综合器C.适配器D.下载器4.下面既是并行语句又是顺序语句的是()
A.变量赋值B.信号赋值C.PROCESS语句D.WHEN…ELSE语句5.在VHDL中,用语句()表示clock的下降沿。
A.clock’EVENTB.clock’EVENTANDclock=’1’C.clock=’0’D.clock’EVENTANDclock=’0’6.不完整的IF语句,其综合结果可实现______。
A.时序逻辑电路B.组合逻辑电路C.双向电路D.三态控制电路
7.下列标识符中,是不合法的标识符。
A.State0
B.9moonC.Not_Ack_0D.signall
8.VHDL语言文件的后缀名是(){5.51164E,18}.
A..gdfB..symC..vhlD..vhd9.进程语句process是()
A.顺序语句且是一个无限循环语句B.并行语句需要敏感信号启动
C.即是顺序语句也是并行语句D.并行语句无需敏感信号启动10.如下一段代码描述的是()Entitytest1isport(clk:inbit;d:inbit;q:outbit);
endtest1;
architecturebodyoftest1issignalq1:bit;begin
process(clk,d)begin
if(clk=‘1’)thenq1<=d;endif;q<=q1;
endprocess;endbody;
A.上升沿触发的D触发器B.下降沿触发的D触发器C.电平触发的D触发器D.单次触发的
D触发器
二、填空题(每空1分共10分)10%1.VHDL语言的子程序有两种类型,即和2顺序语句主要有六类基本顺序语
句:、、、、、
3.时序仿真是在设计输入完成之后,选择具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为。
4.