电子科技大学 电子设计自动化技术期末试卷B答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《大规模数字集成电路设计》试卷B标准答案与评分细则
(卷面总分:80分)
一. 名词解释(2分×6题)(评分标准:给出正确英文的2分/题,仅给中文解释1分/题)1.EDA:Electronic Design Automation
2.IP:Intellectual Property
3.CPLD:Complex Programmable Logic Device
4.ASIC:Application Specific Integrated Circuit
5.MCU:Micro Control Unit
6.FSM:Finite State Machine
二. 填空题(每空1分,共18分)(评分标准:填写正确 1分/空)
1.VHDL用Active-HDL对 HDL程序进行仿真时,常用的三种仿真方法:用图形化界面加激励(或:手动加测试激励)、编写测试平台文件(或:编写TestBench)、编写宏文件
(编写*.do文件)。
2.VHDL程序主要有三种描述方式:行为描述方式、RTL描述方式、结构描述方式。
3.VHDL程序中数值的载体称为对象。VHDL中有四种对象,分别是:常量(CONSTANT)、变量(V ARIABLE)、信号(SIGNAL)、文件(FILE)。
4.VHDL的并行信号赋值语句,除了常见的一般信号赋值语句(如:C<=A and B;)外,还有两种形式,它们分别是:条件信号赋值语句(或:条件型)、选择信号赋值予局(或:选择型)。
5.除了Δ延迟外,VHDL还支持两类性质的延迟,它们分别是:_惯性延迟(INERTIAL)、传播延迟(TRANSPORT)。
6.VHDL结构描述是实体构造的层次化、结构化的表现。试列举出其中两种描述结构的语句COMPNENT语句(或:元件语句)、GENERATE语句(或:生成语句)。(也可填:GENERIC语句/参数说明语句、端口映射语句等)
7.IP核可以分为三种,即:软核、固核、硬核。
三. 简答题(2分×4题)(评分标准:得分点分细目标在答案正文内。)
1.什么是逻辑综合?它在EDA技术中的意义?
【参考答案】:
逻辑综合是一个把高层次的描述转换为低层次描述的过程,它是利用逻辑综合工具软件,将RTL描述的VHDL源程序转换成用基本逻辑元件表示的逻辑网表。1分逻辑综合是EDA的Top-Down设计的一个重要环节,有了逻辑综合技术才可能使HDL
源程序描述的行为变成真正的物理逻辑。1分
2.简述Top-Down设计方法及其基本步骤。
【参考答案】:
所谓Top-Down的设计过程是指从系统硬件的高层次抽象描述向最底层物理描述的一系列转换过程1分。具体讲这一过程由功能级、行为级描述开始;寄存器传输(RTL)级描述为第一个中间结果;再将RTL级描述由逻辑综合得到网表(Net-list)或电路图;由网表即可自动生成现场可编程门阵列(FPGA)/复杂可编程逻辑器件(CPLD)或专用集成电路(ASIC),从而得到电路与系统的物理实现1分。
3.请从申明格式、赋值符号、赋值生效时间、作用范围等方面对信号和变量进行比较分析。
【参考答案】:
①申明时关键字不一样,变量为:V ARIABLE;信号为:SIGNAL。但申明时赋初值
均用“:=”符号。0.5分
②赋值符号不同:信号赋值用“﹤=”;变量赋值用“:=”。0.5分
③赋值生效时间:信号赋值△延时后生效;变量赋值立即生效。0.5分
④声明引用范围:信号在构造体内(进程外)申明,整个构造体内有效;变量主要在进
程内申明,只在进程内有效。0.5分
4.VHDL程序的组成部分包含哪些内容?其中哪几部分是VHDL程序必不可少的?
【参考答案】:
VHDL程序的组成部分包含:实体(Entity)、构造体(Architecture)、配置(Configuration)、包集合(Package)、库(Library)。1分其中,实体(Entity)、构造体(Architecture)是VHDL 程序必不可少的。1分
四. 判断改错题(1分×6题)(评分标准:给出正确答案1分/题;答案基本正确0.5分/题。)1.已知A和Q均为BIT类型的信号,请判断下面的程序片断:
ARCHITECTURE test OF test IS
BEGIN
IS
CASE
A
WHEN '0' => Q <= '1' ;
WHEN '1' => Q <= '0' ;
END CASE ;
END test ;
【参考答案】:
CASE语句应该存在于进程PROCESS内。
2.已知start为STD_LOGIC类型的信号,sum是INTEGER类型的信号,请判断下面的程序片断:
PROCESS (start)
BEGIN
FOR i IN 1 TO 9 LOOP
sum := sum + i ;
END LOOP ;
END PROCESS ;
【参考答案】:
sum是信号,其赋值符号应该由“:=”改为“<=”。
3.已知Q为STD_LOGIC类型的输出端口,请判断下面的程序片断:
ARCHITECTURE test OF test IS
BEGIN
SIGNAL B :STD_LOGIC ;
Q <= B ;
END test ;
【参考答案】:
信号SIGNAL的申明语句应该放在BEGIN语句之前。
4.已知A和B均为STD_LOGIC类型的信号,请判断下面的语句:
A <= '0' ;
B <= 'x' ;
【参考答案】:
不定态符号应该由小写的‘x’改为大写的‘X’。
5.已知A为INTEGER类型的信号,B为STD_LOGIC类型的信号,请判断下面的程序片断:
ARCHITECTURE test OF test IS
BEGIN
B <= A ;
END test ;
【参考答案】:
A和B的数据类型不一致,不能相互赋值。
6.已知sel是STD_LOGIC_VECTOR(1 DOWNTO 0)类型信号,而a、b、c、d、q均为STD_LOGIC类型信号,请判断下面给出的CASE语句:
CASE sel IS
WHEN “00” => q <= a ;
WHEN “01” => q <= b ;
WHEN “10” => q <= c ;
WHEN “11” => q <= d ;
END CASE ;
【参考答案】:
CASE语句缺“WHEN OTHERS”语句。