IC设计常见面试题目:前端和后端的设计流程

继IC设计笔面试题目总结(一)HDL编码:将实际的硬件电路功能通过HDL语言描述出来,形成RTL代码。其结果就是把设计实现的HDL代码翻译成门级网表netlist。4.单片机最小系统包括哪几个部分5.给出一个组合逻辑电路,要求分析逻辑功能。

常见IC设计面试问题:

1.IC设计流程

IC设计分为前端和后端。 前端设计也叫逻辑设计,主要由HDL语言->网表组成; 后端设计也称为物理设计,即网表->芯片布局。 两者之间没有严格的界限。 一般来说,与流程相关的设计就是后端设计。 前端主要包括需求分析和架构设计、RTL设计、仿真验证、逻辑综合、STA、形式验证。 后端主要包括DFT、布局规划、布线和布局物理验证。

① 规格制定(系统总体规划):芯片规格就像一个功能列表。 是客户向芯片设计公司提出的设计要求,包括芯片需要实现的具体功能和性能要求。

②详细设计:芯片设计公司(Fabless)根据客户要求的规格,提出设计方案和具体实现架构,划分模块功能。 目前架构的验证一般都是基于systemC语言,可以使用systemC的仿真工具来进行后考虑模型的仿真。例如:CoCentric和Visual Elite等。

③ HDL编码:通过HDL语言描述实际的硬件电路功能,形成RTL代码。设计输入工具:Ultra、Visual VHDL等。

④仿真验证:验证编码设计的正确性。 验证标准是第一步建立的规范。 工具:模型模拟

⑤ 逻辑综合:仿真验证通过后,进行逻辑综合。 结果是将设计和实现的 HDL 代码转换为门级网表。 综合需要设置约束,即综合电路在面积和时序等目标参数方面期望满足的标准。 逻辑综合需要基于特定的综合库。 不同的库中,门电路基本标准单元的面积和时序参数是不同的。 因此,根据所选择的综合库,合成的电路在时序和面积上有所不同。 一般来说,综合完成后,需要再次进行仿真验证(称为后仿真)。 工具:综合

⑥ STA(State Timing Analysis,静态时序分析):这个也属于验证的范畴。 主要对电路进行时序验证,检查电路的建立时间和保持时间是否存在违规情况。 工具:synopsys 的 Prime Time

⑦ 形式验证:对综合网表进行功能验证(STA是时序)。 工具:Synopsys 的 Formality。

这里仅展示前端设计流程。 具体参考链接如下:

参考链接1,参考链接2

2. IC设计中同步复位和异步复位有什么区别?

同步复位是在时钟边沿发生变化时完成复位动作。 异步复位与时钟无关,只要复位信号满足条件,复位动作就完成。 异步复位对复位信号要求比较高,不能有毛刺。 如果它与时钟的关系不确定,也可能出现亚稳态。

3. IC设计中如何克服和利用寄生效应?

寄生效应是指那些潜入 PCB 并对电路造成严重破坏、导致令人头痛和未知原因的故障。 它们就是隐藏在高速电路中的寄生电容和寄生电感。 其中包括因封装引线和走线长度过大而引起的寄生电感; 从焊盘到地、焊盘到电源层以及焊盘到走线的寄生电容; 过孔之间的相互作用,以及许多其他可能的寄生效应。

理想情况下,电线没有电阻、电容或电感。 实际上,导线使用金属铜,具有一定的电阻率。 如果电线足够长,积累的电阻是相当大的。 两条平行线,如果它们之间存在电压差,就相当于形成一个平行板电容器(想想看)。 通电导线周围会形成磁场(特别是当电流变化时)。 磁场会产生感应电场,从而影响电子的运动。 可以说,每根实际的电线,包括元件的引脚,都会产生感应电动势。 这就是寄生电感。

在直流或低频情况下,这种寄生效应并不明显。 在通信条件下,尤其是高频通信下,影响是巨大的。 根据复阻抗公式,电容和电感在交流条件下会极大地阻碍电流的运动,可以转化为阻抗。 这种寄生效应难以克服且难以检测。 只能通过优化电路和使用短引脚的SMT元件来减少其影响。 想要完全消除它是不可能的。

4、最小单片机系统包括哪些部分?

对于51系列单片机来说,最小系统一般应包括:电源部分、晶振部分、复位部分。 它还应该包括CPU。

参考链接

5.给定一个组合逻辑电路,需要分析其逻辑功能。

所谓组合逻辑电路的分析,就是找出给定逻辑电路的输出与输入之间的关系,指出该电路的逻辑功能。

分析过程一般遵循以下步骤:

① 根据给定的逻辑电路,从输入端开始,逐步推导出输出端的逻辑函数表达式。

②根据输出函数表达式列出真值表;

③ 用文字概括电路的逻辑功能;

6.SRAM和DRAM的区别

7.如何将JK触发器转换为D触发器

扩展问题:将D触发器转换为JK触发器

8.你知道那些常用的逻辑电平吗? TTL和COMS电平可以直接互连吗?

9.MOS管基本概念及图纸

MOS中文意思是金属氧化物半导体场效应晶体管,由栅极(G)、漏极(D)和源极(S)组成。 分为PMOS和NMOS两种。 不同的是,当G电平为高电平时,N型管导通,P型管截止。 两者常成对出现,即CMOS。 只要一个在传导,另一个就不会传导。 现代微控制器主要采用 CMOS 技术制造。

绘图一般需要根据简单的逻辑表达式绘制CMOS电路图结构。 需要掌握常用逻辑门的实现。

总体而言,它很容易记住。 与非门和或非门的上下都有两个MOS管,上面是PMOS,下面是NMOS。 区别在于N和Fei是“上下弦”,或者N是“上下弦和弦”。

我在IC设计面试题中看到了很多关于CMOS的题,但由于我还没有使用过,本科时学过的大部分都忘记了,所以不再深入探讨暂时了解一下。

10、FIR滤波器和IIR滤波器函数表达式、特点及结构:

FIR(有限脉冲响应)滤波器:非递归,具有线性相位。 IIR(无限脉冲响应)滤波器:递归结构,非线性相位。 对于相同阶数的FIR和IIR滤波器,IIR滤波器具有更好的滤波效果,但会产生相位失真。

11.什么是环形振荡器?

环形计数器是由循环移位寄存器组成的计数器。 最后一个移位寄存器的输出被馈送到第一个寄存器的输入。 例如,在4寄存器计数器中,初始寄存器值为1100,重复模式为:1100,0110,0011,1001,1100等;

12. 信号采样过程之前的抗混叠滤波的作用是什么? 使用什么样的过滤器? 它的截止频率是如何确定的?

根据“奈奎斯特采样定律”:对模拟信号进行离散化时,采样频率f2应至少是被分析信号最高频率f1的2倍,即:f2≥2 f1; 否则可能会出现采样频率不足的情况。 高,模拟信号中的高频信号被折叠到低频段,出现虚假频率成分。

但工程测量中的采样频率不可能无限高,也不需要无限高,因为我们一般只关心某个频率范围内的信号分量。

为了解决频率混叠问题,在离散采集模拟信号之前,使用低通滤波器滤除高于采样频率1/2的频率成分。 在实际仪器设计中,该低通滤波器的截止频率(fc)为:截止频率(fc)=采样频率(fz)/2.56

13.N位二进制数可以表示的数据范围。 两个N位数字相加和相乘后需要多少位?

14. 堆栈溢出原因

在程序中,分配给堆栈的内存是有一定限制的。 由于C语言系列没有内置的检查机制来确保复制到缓冲区的数据一定不能大于缓冲区大小,因此当数据足够大时,就会溢出缓冲区范围。 堆栈溢出是指无论堆栈中分配的本地数据块大小如何,都会向该数据块写入过多的数据,导致数据越界并覆盖其他数据。 当堆栈溢出时,可能会出现意想不到的结果,甚至可能导致程序崩溃。

原因:

15.C语言动态申请指令释放内存

申请:malloc,释放:free

参考链接

16、如何用C语言编写多个返回值的子函数

常见的方式有两种:一是使用全局变量。 子函数可以通过在执行过程中修改多个全局变量来达到与多个返回值相同的效果。 第二种是使用数组指针作为函数参数,并通过地址传输来改变多个实际参数本身。

17.使用预处理指令#define声明一个常量来表示一年有多少秒(忽略闰年问题)

#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL

18.用C编写无限循环

19. 使用变量 a 给出以下定义

a) 一个整数

b) 指向整数的指针

c) 指向指针的指针,它所指向的指针是一个整数(Apointertoapointertointeger)

d) 10 个整数的数组

e) 一个由 10 个整数指针组成的数组

f) 指向 10 个整数的数组的指针

g) 指向以整数作为参数并返回整数的函数的指针

h) 一个由十个指针组成的数组,这些指针指向采用整数参数并返回整数的函数

答案是:

a)整数a; // 一个整数

b)整数*a; // 指向整数的指针

c) int **a; // 指向整数的指针

d) int a[10]; // 10 个整数的数组

e) int *a[10]; // 10 个整数指针的数组

f) int (*a)[10]; // 指向 10 个整数的数组的指针

g) int (*a)(int); // 指向函数 a 的指针,该函数接受整数参数并返回整数

h) int (*a[10])(int); // 一个由 10 个指针组成的数组,这些指针指向采用整数参数并返回整数的函数

20.关键字static的作用是什么?

在C语言中,关键字static有三个明显的作用:

① 在函数体中,声明为 static 的变量在函数调用期间保持其值。

② 在模块内部(但在函数体外部),声明为 static 的变量可以被模块内部的函数访问,但不能被模块外部的其他函数访问。 它是一个局部全局变量。

③ 在模块内,声明为static的函数只能被本模块内的其他函数调用。 也就是说,该函数仅限于声明它的模块的本地范围。

21.关键字const是什么意思?

const 表示“只读”;

常量 int a;

int 常量 a;

常量 int *a;

int * 常量 a;

int const * 一个常量;

前两者作用相同,a是常整数。

第三个表示a是指向常整数的指针(即整数不能修改,但指针可以)。

第四个含义a是指向整数的常量指针(即指针指向的整数可以修改,但指针不能修改)。

最后一个表示a是一个指向常整数的常指针(即指针所指向的整数是不可修改的,指针也是不可修改的)。

21.什么是中断? 为什么要打断?

参考:

结束了,关于状态机、分频电路、计数器的问题也很多,其中数字、电气知识占了大多数。

单片机

用MicroPython语言支持PythonMicro,这几个优点你知道吗?

2024-5-3 19:16:34

单片机

基于51单片机的电子琴程序设计实现功能设计一个带显示按键

2024-5-3 20:06:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索