华为错误报告存放路径_2019年华为数字前端实习生在线笔试

于2019年4月10日晚19:00-20:10参加了华为数字前端实习生在线笔试,我在这里记录一下吧,毕竟以后还会经历笔试,也希望帮助到大家!呀,看了本文的小伙伴要点赞哦!毕竟是百忙之中整理出来的~~
平头哥实习生的在线笔试,对比华为的题,明显平头哥的题难得多得多!!(平头哥的笔试内容见另一篇文章)
华为笔试共60分钟,40道单选,5道多选。
嗯,全部题目我记不得了,只记录我当时有些疑问的知识点吧!

1)考察verilog操作符

问的是以下哪个操作符的操作数一定要是多bit的

2)对乒乓buffer的定性了解

ping-pong buffer 也叫双缓存 double buffer, (必须是两个)就是一个缓存在写入的时候, 另一个缓存同时在处理的结构. 用来提高计算机运行速度, 在显示数据处理中常常用到。
最常见的例子是显示缓存可以用 ping-pong buffer 结构, 用两个相同的帧存储器 frame buffers, 当一个在扫描输出的时候, 另一个在改写数据. 到下一个周期改写好数据的一帧作扫描输出, 而另一个帧缓存改写数据. 总之是一个在接收数据一个在处理,处理完后两个再交换。从最后的输出来看, 好象每一帧都刷新了数据, 但实际上是分两步作的. 这是用加倍的资源换取速度的方法.两个存储器之间是并行处理的,所以速度才会提升一倍。
使用pingpang的主要作用就是使用多个低速的数据预处理模块处理高速的输入数据流。这样做可以提高系统的数据吞吐量(如果不使用乒乓的话数据预处理模块会成为设计中限制系统数据吞吐量的瓶颈),同时增加了数据缓冲延迟

3)DC 基本概念(我做错了,o(╥﹏╥)o):

set_output_delay 设置的是从哪里到哪里的延迟?(寄存器到输出引脚)

false path:

1.为什么我们要设置虚假路径?

我们想告诉工具不关心这些特殊路径,工具不需要检查这些路径的时序

2.我们应该将哪条路径设为虚假路径?

穿越异步边界的任何路径 或者 逻辑上不存在的路径

multicycle:多时钟周期的时序约束

library:

目标库(targe_library):一般就是std cell db;放的是标准单元工艺库; 是你的综合目的库,存放的是你索要映射的逻辑单元。一般为standard cell library & io cell library 的type;是DC在mapping时将设计映射到特定工艺所使用的库,就是使用目标库中的元件综合成设计的门级网表。

连接库(link_library):指定压焊块工艺库名称和所有其他的宏单元(RAM、ROM等);除了std cell,还有IO ,MACRO ,MEMORY db;一般为宏单元等其他库;一般可以放算法库和设计库等,比如DW;是提供门级网表实例化的基本单元,也就是门级网表实例化的元件或单元都来自该库。连接库定义为标准单元的db格式的库文件加上pad db格式的库文件,加上ROM,RAM等宏单元库文件。

符号库(symblo_library):包含工艺库中的单元图形表示的库名称。使用DV时,用于表示门电路原理图。如果忽略这一设置,DV会使用一个名为“generic.sdb”的通用符号库来生成原理图。如果你设置了symbol_library,但是假如你的单元的工艺库和符号库不匹配,DV会拒绝你的符号库,而调用通用库中的单元符号。

简单地讲,所有用到的库都要放到link_library,因为DC自动到那里去找。只有作综合用的库放在target_library,象ROM,PAD等不用synthesis的就不要放进去了。

link_library列表中应包含目标库名,这在DC中读取门级网表是很重要的。如果连接库列表中不包含目标库名,DC就不能连接网表中已经映射的单元,在这种情况下,DC会生成表示其不能解析网表中单元的警告。

link_library可以包含旧的工艺库名称,而target_library可以包含新的工艺库名称。

简单来说link library就是解决实例化引用的,如果实例化的就是一个与非门,DC就从target library中找到,如果例化的是一个fifo,DC就从fifo的库中找到,如果例化的是一个模块,DC就从内存中找到,因为这个模块的代码在编译过程中已经读进内存中去了。

pt和fm工具只有link_library,DC使用变量link_library,而PT使用link_path,除了名称和格式不一样之外,这两个变量的应用时相同的。PT是一个门级静态时序分析器,它只是用于结构化门级网表,因而,PT不使用变量target_library。

4)考察wire 和reg 赋值

wire 连续赋值,用assign

reg 过程赋值,用always、initial、begin……end

input、output、inout 预设是wire,如需是reg,要另加说明

5)降低峰值功耗,用以下哪个方法,考察低功耗手段(这是个很大的知识点,有兴趣的可以自行百度)

推荐一个写的比较清楚的低功耗系列笔记:https://www.cnblogs.com/IClearner/p/6893645.html

a)多电压设计技术::各电压区域有固定的电压 ;各电压区域具有固定的多个电压,由软件决定选择哪一个电;自适应的方式,各电压域具有可变的,由软件决定选择哪一个电压

b)多电压综合库及电压模式控制单元 lvt hvt

c)DVFS技术:dynamic voltage dynamic frequency scaling,动态电压频率技术,是一种通过将不同电路模块的工作电压及工作频率降低到恰好满足系统最低要求,来实时降低系统中不同电路模块功耗的方法。

门控时钟:“一个时钟信号与另外一个非时钟信号作逻辑输出的时钟。例如,用一个控制信号“与”一个clk,可以控制clk的起作用时间。可以通过关闭芯片上暂时用不到的功能和它的时钟,从而实现节省电流消耗的目的。门控时钟是低功耗设计中的一种最有效的方法。

6)考察位宽匹配:少bit赋值给多bit,高位补0;多bit赋值给少bit,取低位(vivado、vcs仿真结果都这样)

7)形式验证定性了解,唉,题目不记得了

8)异步时钟,也不记得了……

9)sta缺点:
动态时序分析就是通常我们所说的仿真,该仿真可以验证功能,也可以验证时序,首先确定测试向量,输入硬件模型,进行仿真。由于为了完整地测试每条路径的功能或者时序是否都满足,测试向量需要很大,也不能保证100%的覆盖率。如果到了门级的仿真将非常消耗时间。

静态时序分析的优缺点:静态时序分析可以大大提高仿真时间,并能100%覆盖所有的路径。它通过预先计算所有的延时来提高速度。包括内部门延时以及外部的线延时。静态时序分析并不是简单的把各个延时相加,而是引入真值表,分析各种输入情况下所有可能经过的路径,而且能识别flase path。但是由于在深亚微米的工艺条件下,静态时序分析不能完整的把所有影响延时的因素给包含进去,因此在关键路径方面,便可以用STA工具导出关键路径的spice网表,用门级或者管级仿真工具进行电路仿真,以确定时序的正确性。静态时序分析只能对同步电路进行分析,而不能对异步电路进行时序分析

10)parameter 与define 推荐博客:https://blog.csdn.net/pine222/article/details/47080117,写的比我表述清楚多了

11)signed运算:强制转换符 signed,只有两个操作数都是有符号数,结果才是有符号数

12)function 与task:

1dc7f1958011d237221928a62d36245f.png

13)大规模数字逻辑电路设计原则(我不懂,网上也没怎么找到相关介绍):

面向rtl?先电路再代码?这里如果大家有补充,欢迎交流啊!

其他的,做的还算顺手,就没记下来了,希望自己找个好工作,(^o^)/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值