单选题 (3分)
1.当一个乘法器需要10个cycle才能完成计算任务,对其需要设置multicycle,setup会设置为10,hold设置为()
A.9
B.不需要设置
C.10
D.1
解.A 在多周期设置中,Setup的周期是X,设置Hold周期为X-1。
2.以下工艺器件中,电阻值的最大的是()
A. AA
B. Contact
C. Poly
D. VIA
解.C poly电阻最大
3.当clock的周期是10ns,对于模块的input需要添加input delay,假设外部延迟是6ns,内部延迟是4ns,那模块的input delay需要设置为()
A. 5ns
B. 6ns
C. 4ns
D. 10ns
解:B
4.以下叙述中,不正确的是()
A. N MOS位于PWELL中
B. P MOS的substrate是N参杂
C. POLY的电阻值比Metal高
D. P WELL的参杂浓度比P Sub高
解:A NMOS的well是P-sub
5.以下对于MOORE/MEALY状态机的特点描述正确的是()
A. Moore状态机的输出仅与当前状态值相关,Mealy状态机的输出不仅与当前状态有关,也与当前输入值有关
B. Mealy状态机更容易出现错误
C. Moore状态机可以没有default状态
D. Mealy状态机的输出仅与当前状态值相关,Moore状态机的输出不仅与当前状态有关,也与当前输入值有关
解:A B错;C要有defult状态;D说反了
6.已知Y=A*B’+B+A’*B,下列结果中正确的是()
A. Y=B
B. Y=A
C. Y=A’+B’
D. Y=A+B
解:D Y = AB‘+B+(~A)B
= AB‘+B(1+(~A))
= A+B
7.关于同步复位和异步复位说法错误的是()
A.异步复位在使用时,复位信号仍旧需要先经过同步后才能使用
B.同步复位在复位时会产生大的瞬态power
C.异步复位容易在输出产生毛利,从而影响后续电路工作
D.在大fanout时,异步复位时序更容易满足
解:B(还是D?)不懂这两个选项
8.16bit有符号数0×C6的十进制数是()
A.-57
B.-56
C.-59
D.-58
解:D 负数取反加一
- 0×6F5A的十进制数是()
A.28510
B.其他均不正确
C.67532
D.28506
解:D
10.16bit有符号数0×A7,其中低4bit为尾数,截掉后4bit,四舍五入后是()
A.0×9
B.0×8
C.0×A
D.0×B
解:C
参考用round去掉小数部分并进行四舍五入:
assign add_bit = a[15] ? (a[3] & (|a[2:0]) ) : a[3];
assign temp[15:0] = {a[15],a[14:4]} + add_bit;
分析:第一句判断是否需要进位。设要舍弃部分的值为d, (-1.0<d<1.0)。当a为正,即a[15] = 0时,若a[3]=1, 则说明d>0.5,故可以产生进位。当a为负,即a[15] = 1时,由于负数用补码表示,若直接舍弃d则意味着round up, 即向高位进位。然而,当0>d>-0.5时,不需要进位,而对于补码表示的负数而言,add_bit=1即表示不产生进行。另外,0>d>-0.5即a[3] & (|a[2:0]),因为 - 0.5的补码是1000, d>-0.5即a[2:0]不全为0。考虑到四舍五入时可能产生进位,故需要扩展1bit的符号位。
综上0xA7为正数,且a[3]=0, 说明小数部分d<0.5则四舍五入后不产生进位,结果为0xA。
多选题(5分)
1.信号跨时钟域时,会出现亚稳态,其失效性和哪些因素有关__________
A.信号发射端的高存器输出信号的翻转率
B.信号发射端的寄存器时钟频率
C.信号接收端的寄存器时钟频率
D.同步寄存器的级数
解:ACD
A:应该减少使用或者避免使用那种信号翻转时间很长的输入信号,如果翻转时间长,那么进入器件未定义的电平的时间也很长,容易导致亚稳态的产生。
B:接收域时钟clkb的频率越高,也越容易采集到变化中的源信号
D:同步级数越多越可靠数据
亚稳态失效公式
2.哪些Verilog的写法是不能综合的__________
A.输入为变量的除法
B.循环边界未在编译时指定的for循环
C.含有时序电路的function函数
D.输入为变量的乘法
解:ABC 除法不可综合
function里不能有过程块(always initial)
3.关于异步fifo说法正确的是____________
A.异步fifo的reset信号,可以经过时钟同步后直接使用
B.读写指针需要通过格雷码做过域处理
C.使用中,读写clock可以是同步的
D.地址格雷码过域时,信号延迟必须小于1个源时钟的周期
解:3.ABC 两个时钟周期
4.关于clock以下说法正确的是_____________
A.在clock path上可以使用OAI等组合控制逻辑
B.clock可以被当成data使用
C.在设计中尽可能的使用上升沿触发的逻辑
D.clock jitter越小越好
解:ABCD
5.Hold violation可以通过__________方式解决
A.降低工作电压
B.升高工作电压
C.在capture clock path上插入clk buffer
D.降低时钟频率
E.提高时钟频率
F.在data path上插入delay cell
解:AC F
hold time检查
launch(clk_latency+clk_path_delay)+clk_to_q + logic_delay > capture(clk_latency + clk_path_delay)+ dff_hold
6.以下说法正确的是__________
A.当工作电压从1.0V降低到0.9V,系统功耗会降低20%
B.当工艺从0.18um升级到0.13um,工作电压和频率不变的情况下,芯片面积减小,功耗不变
C.85C的leakage power是25C的10倍
D.降低系统时钟频率一半,延长系统运行时间一倍,会降低系统的power
解:6.AD
A:不考虑静态功耗?P = U^2/R 降低了19%
B:感觉功耗会变小,因为电阻电容变小了
C:按照统计数据,85c的leakage大约是25c的8倍左右,即温度每升高20度,leakage翻一倍
D:动态功耗等于0.5CeffVDD^2f,f下降,功耗下降
大题
1.使用Verilog编写三分频电路,输出为50%占空比(10分)
2.除法器的Verilog RTL实现。16bitA,8bitB。C=A/B (15分)
3.简要描述AHB总线协议。包括有哪些信号,简要描述信号的作用(15分)
答案:
大题
1.
module div3_half
#(parameter DIV_CLK = 3)
(
input rstn ,
input clk,
output clk_div3
);
//计数器
reg [3:0] cnt ;
always @(posedge clk or negedge rstn) begin
if (!rstn) begin
cnt <= 'b0 ;
end
else if (cnt == DIV_CLK-1) begin
cnt <= 'b0 ;
end
else begin
cnt <= cnt + 1'b1 ;
end
end
//在上升沿产生3分频
reg clkp_div3_r ;
always @(posedge clk or negedge rstn) begin
if (!rstn) begin
clkp_div3_r <= 1'b0 ;
end
else if (cnt == (DIV_CLK-1)/2 ) begin //计数1,2位低电平
clkp_div3_r <= 0 ;
end
else if (cnt == DIV_CLK-1) begin //计数0为高电平
clkp_div3_r <= 1 ;
end
end
//在下降沿产生3分频
reg clkn_div3_r ;
always @(negedge clk or negedge rstn) begin
if (!rstn) begin
clkn_div3_r <= 1'b0 ;
end
else if (cnt == (DIV_CLK-1)/2 ) begin
clkn_div3_r <= 0 ;
end
else if (cnt == DIV_CLK-1) begin
clkn_div3_r <= 1 ;
end
end
//或
assign clk_div3 = clkp_div3_r | clkn_div3_r ;
endmodule
module division (
input wire [15:0] A,
input wire [7:0] B,
output wire [15:0] result,
output wire [15:0] odd
);
reg [15:0] a_reg;
reg [7:0] b_reg;
reg [31:0] temp_a;
reg [31:0] temp_b;
integer i;
//
always @(*) begin
a_reg = A;
b_reg = B;
end
always @(*) begin
temp_a ={16'h0,a_reg};
temp_b ={b_reg,16'h0};
for(i =0;i < 16;i=i+1) begin
temp_a = temp_a <<1;
if(temp_a >= temp_b) begin
temp_a = temp_a-temp_b +1;
end
else begin
temp_a = temp_a;
end
end
end
assign odd = temp_a[31:16];
assign result = temp_a[15:0];
endmodule
AHB是AMBA总线系列中的其中一种,它是一种高性能的pipe系统总线。AHB总线细分,可以分为三组总线:写数据总线(HWDATA),读数据总线(HRDATA)和地址控制总线(HADDR)。这三组总线相互分离互不干扰。对于每一组总线来说,同时只能由一个master或者slave来独占,这时需要仲裁器来决定将总线的控制权交与哪个设备,并控制多路选择器来选择已经获得控制权的那个设备来传输数据和地址信息。译码器根据地址来选择让哪个slave的数据通过选择器。AHB总线的信号自己找资料看。
更多推荐
数字ic笔试2022小米提前批
发布评论