单选题 (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.因此,可以产生进位。当a为负,即a[15] = 1时,由于负数用补码表示,直接放弃d意味着round up, 即进入高位。然而,当0>d>-0.5时,不需要进位,但对于补码表示的负数,add_bit=也就是说,它不会产生。另外,0>d>-0.5即a[3] & (|a因为 - 0.5的补码是1000, d>-0.5即a[2:0]不全为0。考虑到四舍五入可能位的可能性,需要扩展1bit的符号位。 综上0xA7为正数,且a[3]=0, 说明小数部分d<0.五舍五入后不产生进位,结果为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总线的信号自己找资料看。