数字IC秋招---笔试记录

2022年7月更新!!!

1、组合逻辑电路的冒险现象是由于()引起的?

在这里插入图片描述

2、芯片制造中,工艺节点28nm,12nm,7nm的含义?

?

3、哈佛结构和冯诺依曼结构?

https://blog.csdn.net/mahoon411/article/details/119078925

在这里插入图片描述

4、华为2021数字IC笔试题:异或门最少使用几个2选1 mux?(链接可点)

在这里插入图片描述

5、有符号数乘加位宽计算?

答案:7、9?

在这里插入图片描述

6、fifo深度计算?

第一种情况:写600个数据需要600个输入cycle,在这期间一直在读数据,这段时间为1/A * 600。在这段时间内读出的数据个数,也即读cycle个数是,1/A * 600 * 0.6A = 360,因此最小深度是240。
第二种情况:考虑到可能刚好前1000个cycle的后600个cycle写数据,后1000个cycle的前600个cycle写数据,那么就是一次写1200个数据。同理可得,最小深度是1/A * 1200 - 1/A * 1200 * 0.6A = 480。

在这里插入图片描述

2022年4月更新!!!

1、如果在多个initial里面并行的在同一时刻对同一个变量进行赋值,当#数量相同时,就是下面的initial块起作用,否则就是#数量多的起作用。例如:左图在20时刻,b = 10;右图在20时刻,b = 20。在这里插入图片描述
2、写一个N倍频的仿真模型。

在这里插入图片描述

3、功能覆盖率和代码覆盖率

https://zhuanlan.zhihu.com/p/240126362

4、verilog中的二等号在数据中有不确定的值时会返回x,三等号则要完全相等才返回1,否则返回0。
5、task和function
  • task可以包含task和function,function只能包含function。
  • task和function都不能在过程语句中被定义,并且不能包含always和initial等引导的过程语句。
  • task有输入输出,function没有常规意义上的输出端口。两者都可以在过程语句中被调用,后者还可以在连续赋值语句中被调用,因为它有返回值。
  • function不能消耗仿真时间;task可以消耗仿真时间;比如function不能带有#100的时延语句、不能有@(posedge clk)、不能有wait(ready)的阻塞语句。
  • 要想可综合,task和function内部必须是组合逻辑。
6、一批IC样品在测试中发现有setup或者hold时序问题,现取A,B,C,D四种样品进行测试。A降温后停止工作,则可能是(setup(40nm以下工艺)/(hold(40nm以上工艺))问题。B升温后停止工作,则可能是(hold(40nm以下工艺)/(setup(40nm以上工艺))问题。C降压后停止工作,则可能是(setup)问题。D升压后停止工作,则可能是(hold)问题。

解析:温度和电压对应到管子行为上就是对于单个管子电流的影响。这里注意温度这个选项。升温会使载流子速率降低,但是相应的也会使Vth降低。这其实对于电流大小的影响是两个反方向的,要看谁占主导因素。对于40nm以上的工艺,而升温对于Vth的影响可以忽略,因此载流子速率对于电流的影响占主导因素,因此升温导致管子电流减少,充放电时延增加。而对于40nm以下的先进工艺,升温使Vth显著降低,因此Vth占主导,升温电流增大,时延减小。

对于电压,升压电流大时延小,降压电流小时延大。

setup问题是时序关键路径总时延过大,而hold问题则是总时延过小。

7、看波形写verilog代码

在这里插入图片描述

对in[1]进行上升沿检测,然后用检测结果替换in[1]之后赋值给pedge。

module pedge (
    input  clk,
    input  [7:0] in,
    output [7:0] pedge
    
);

wire in_1_pos;
reg in_1_r1,in_1_r2;
reg [7:0]pedge_r;
always @(posedge clk ) begin
    in_1_r1 <= in[1];
    in_1_r2 <= in_1_r1;
end

always @(posedge clk ) begin
    pedge_r <= {in[7 -: 6],in_1_pos,in[0]};
end


assign in_1_pos = in_1_r1 & !in_1_r2;

assign pedge = pedge_r;

endmodule //pedge

在这里插入图片描述

8、脉冲宽度调制器PWM

在这里插入图片描述
在这里插入图片描述

9、c语言判断大小端

在这里插入图片描述

在这里插入图片描述

10、c语言,不使用库函数,比较两个字符串是否相等
int strcmp(char *source, char *test)
{
	while (*source == *test)
	{
		if ( (*source == '\0') && (*test == '\0') )
		{
			return 0;
		}
		source++;
		test++;
	}
	return -1;
}
11、建立时间和保持时间

在这里插入图片描述

(1)关键路径指的是组合逻辑时间延迟最大的路径,所以图1中的关键路径是acefh。
(2)由于两个Mux的enable信号是相反的,所以只可能有两条路径,分别是acg和bdf,bdf的时间延迟更大,所以它是关键路径。
(3.1)在计算建立时间时,按照组合逻辑时延更大的那条路径,也即路径bdf算:(Tck->q) + Tsetup + 1 + 4 + 2 + 6 + 2 + 1 <= Tclk + Tskew。
(3.2)在计算保持时间时,按照组合逻辑时延更小的那条路径,也即路径acg算:Thold + Tskew <= (Tck->q) + 1 + 5 + 2 + 3 + 2 + 1。
通过以上的计算,就可以得出保持时间和建立时间都没有违例。

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耐心的小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值