单选
1、ASIC开发流程中,如下环节的先后顺序是?
A. RTL-> Synthesis->P&R
B. Synthesis->P&R->RTL
C. Synthesis->RTL->P&R
D.RTL->P&R->Synthesis
解:A
2、o10换算成十进制是多少?
A. 8
B.16
C.10
D.2
解:A
3、reg [7:0] mem [1:256];
initial
$readmemh("mem.data", mern, 128. 1):
对于mem行为正确的描述是
A.从地址1开始,写128个地址
B.从地址128开始,写1个地址
C从地址128开始,写到地址1
解:C 题目错了吧,应该是128,1逗号才对
4、中断指示寄存器由实时告警的状态触发,是只读寄存器
A.错误
B.正确
解:B
指示寄存器是只读的,中断置1
5、以下关于False-path,正确的是( )
A一般模拟IP和系统的互联接口都可以设置为False path
B.一般同步复位可以设置为False path
C.一般不同频率的接口可以设置为False path
D.一般异步电路可以设置为False path
解:D
false_path是不希望工具分析的路径,一般是异步路径,即跨时钟域的路径。另外一种是与电路正常工作不相关的电路,比如测试逻辑的电路等。
6.有关DFT,以下说法不正确的是?
A.主流的Scan方式采用Mux-DFF
B.Scan的设计规则,需保证时钟复位可控
C.MBIST指的是对memory的BIST测试
D.ECO时无需关注DFT网表
解:D
ECO表示工程改动要求,就是代码不能修改之后,工程有问题,再对设计进行的手工门级修改,这一步必定要关注DFT网表,DFT表示可测性设计,用来测试芯片加工过程中出现的问题。
Scan中要保证时钟复位可控,是对的主流的scan方式采用Mux-DFF,就是在dff的输入端加入mux,这是对的;bist在设计时在电路中植入相关功能电路用于提供自我测试功能的技术,以此降低器件测试对自动测试设备(ATE)的依赖程度。包括L(ogic)BIST和MBIST,前者用于测试随机逻辑电路,后者用于测试存储器
7、在verilog中,比算术运算符+优先级高的运算符是( )
A. >
B.!==
C.&
D. %
解:D
8、有关综合的说法,以下哪个选项是错误的?
A.相同的RTL代码,每次综合出来的网表可能是不一样的
B.时序逻辑always语句中,if-else如果else的分支缺乏,会综合成latch
C. casez是不可综合的
D.综合网表可用于EDA功能仿真
解:B
casez,casex有时候可以有时候不可以综合,先放着
b写了else有时候会综合成latch
9、下面这段代码,说法错误的是:
always @(posedge clk) begin
din_dly <= din;
end
A.数据寄存推荐这样的写法
B. din_dly用来当控制信号是安全的
C. din_ dly不受复位影响
D. din的不定态会传递到din_dly
解:B
b是错的,因为d说了
10.下面的选项中关于宏定义的说法不正确的是
A如果模块中有很多宏定义,在模块的文件列表最后需要undefl使用的宏,防止和其他模块的宏定义冲突
B.宏定义文件最好放在一个文件中集中管理,防止出现不同项目需要修改为不同的宏定义值,但是却漏改了某些地方的情况出现
C.综合的时候,define可以跨文件列表生效。
D.仿真时如果出现宏定义冲突,后面的define值会覆盖前面的define值。
解:A
使用#define指令和#undef指令进行宏定义和终止宏定义_LiuBo_01的博客-CSDN博客_结束宏定义
b、宏定义最好放到同一个文件中集中管理,比如放到para.v中,使用的时候include “para.v”调用即可。
c、define可以跨文件使用,parameter可以跨module使用,localparam只能在本module使用。
a、把不希望下面使用的宏undef掉。
d、后面的宏会覆盖前面的宏。
15、影响芯片成本的主要因素是die size和封装,但电源、时钟等因素,特别是功耗对解决方案的成本影响很大,因此低成本设计需要采用低功耗设计
A.对
B.错识
解:A
常识题,低成本设计要兼顾低功耗设计,需要注意记住他的前半句,
影响芯片成本的主要因素是die size 与封装。
18、有关功耗,以下说法不正确的是?
A.电压越大,工作频率越高,其动态功耗越高
B.设计层次越高,功耗优化所能达到的效果越好。
C.低功耗设计的目标就是采用各种优化技术和方法,在各个设计目标之间找到最佳的结合点
D.芯片单位面积的动态功耗和静态功耗的随着工艺的发展呈下降趋势
解:D
随着工艺的上升,晶体管阈值降低,漏电流变大,静态功耗变大。
B是对的,在链接里:
《硬件架构的艺术》读书笔记(五)低功耗设计_青雨qy的博客-CSDN博客
22、在时钟上升沿时采样到start有效开始,两个时钟周期后,信号“a”连续或者间断地出现3次为高电平,紧接着信号"stop"在下一个时钟周期为高电平,转换成断言描述,以下哪个是正确的( )
A. property p0: @(posedge clk)
$rose(start) 1->##2 (a[->3])##1 stop:
endproperty
a0 : assert property(p0).
B. property p0:@(posedge clk)
$rose(start)1-> ##2 (a[=>3]) ##1 stop;
endproperty
a0: assert property(p0);
C. property p0:
@(posedge clk)
$rose(start) 1-> ##2 (a[*3]) ##1 stop:
endproperty
a0: assert property(p0);
D. property p0:
@(posedge clk)
$rose(start)1-> ##2 (a[=3]) ##1 stop;
endproperty
a0 : assert property(p0);
解:A
我要学sv了,他怎么老考这个
SV -- Assertions 断言_love小酒窝的博客-CSDN博客_sv断言
26、关于类的构造函数,以说法中正确的有()
A.不能有形参
B.返回类型是void类型
C.函数体中必须有new语句
D.函数名与其类名完全相同
解:C
不会啊不会
解析:D
类可以认为是用户定义的一种数据类型
类的显式定义有new(),隐式定义无,new()的作用是进行初始化,没有new()时,类默认为null,C错;
构造类可以没有返回值,也没有返回值类型,但是可以有参数(包括形参int a),a错;
类名与函数名一样,D对;
返回值类型不一定是void,void用于有返回值的数据类型,用来取消返回值,B错
类的显式定义如下:
class Packet;
bit [31:0] addr;
function new ();//显示定义构造方法,并在方法中对addr进行初始化
addr = 32'hfade_cafe;
endfunction
Endclass
类的隐式定义如下:
class Packet;//没有显示定义构造方法
bit [31:0] addr;
endclass
28、下列不属于动态数组内建函数的是( )
A. new []
B. delete ()
C. length ()
D. sizet ()
解:
解析:B
动态数组内建函数
Size:用来约束动态数组元素的个数;
length:防止数据越界,即控制数据的位宽;
new是构造函数,创造对象空间;
Delete用于给队列删除元素,B错;
29、a1和a2的检查效果完全一样:
property p1:
@(posedge clk) a|=>b|=>c;
endproperty
a1: assert property(p1);
property p2:
@(posedge clk)a ##1 b ##1|-> c;
endproperty
a2: assert property(p2);
A.正确
B.错误
解:
解析:A
断言检测:a1与a2的检查效果一样。
(|->)表示交叠蕴含,指左边条件发生时,立即在同一个上升沿检测右边。
(|=>)表示非交叠蕴含。指左边条件发生时,在下一个周期检测右边。
本题a1表示上升沿到来之后检测到a=1,下一个周期b=1,再下一个周期c=1;
A2表示上升沿到来之后检测到a=1,延时一个周期b=1,再延时一个周期立即检测c=1;
多选题
38、添加断言(SVA)的作用主要包含以下哪些方面
A.复杂逻辑中添加assertion,增加微观检查,做补充验证,相当于验证的白盒检查
B.部分bug需要累积效应才会暴露,检证环境难以构造足够长时间的用例冲击出来,通过assertion来保证这种问题在第一次发生时便被发现
C.关键节点添加assertion,帮助设计人员迅速找到代码出错点,提高问题定位的效率。
D.增加覆盖率的检查,保证自己希望冲击的场景都被冲击到。
解:abcd