数字IC设计笔试常见大题整理(简答+手撕)

IC修真院为大家整理了一些数字IC设计的笔试常见题目,大家快来领取吧~

面试题目(文末可全领)
在这里插入图片描述

1. 简述latch与FF的区别,并用verilog分别实现1bit latch与DFF。

Latch对电平信号敏感,在输入脉冲的电平作用下改变状态。
DFF对时钟边沿敏感,检测到上升沿或下降沿触发瞬间时改变状态。

Latch代码
[图片]

DFF代码
[图片]

2. IC设计中reset的设计通常有同步reset和异步reset两种方式。

1) 简述两种reset方式的区别?
2) 异步reset的主要缺点是什么?
3) 设计中如何规避异步reset的缺点?

1)同步reset是指复位信号只在时钟上升沿到来时才有效,异步reset是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。

2)异步reset的主要缺点是复位信号的随机性会导致亚稳态,而且对电路内的毛刺敏感,容易造成复位错误。

3)可以采用异步复位同步释放的方法来解决这个问题,即复位与clk无关,复位信号在第二级触发器的clk边沿到来后释放,第二级输出是稳定且被同步的。多打一拍,消除亚稳态,从而触发器会在一个或两个时钟周期内返回稳态。

3. 阐述“时钟抖动”的基本概念,可能产生的原因?在数字逻辑设计中对setup time和hold time的影响是什么?

时钟抖动指的是信号周期的长度会有一定变化,从而导致下一个时钟沿到来的时间不确定,主要是时钟周期T变化。抖动是在时钟发生器内部产生的,产生的原因和晶格振动以及内部电路有关。时钟抖动的存在会影响电路中的时序收敛,导致setup time和hold time出现violation。

4. 阐述一下meta-stability的概念及在设计中如何防止?

亚稳态指的是触发器无法在某个规定的时间内达到一个可以确认的状态。触发器进入亚稳态后,无法预测其输出电平,也无法预测输出何时能稳定。

在设计中,为了抑制亚稳态现象,在跨时钟域传输时,对于单bit信号,可以使用双锁存器法同步、边沿检测同步器、脉冲检测同步器的方法来进行同步。对于多bit信号,可以采用握手协议以及异步FIFO来解决。

5. 给定一个时钟信号clk,设计一个占空比为50%的三分频时钟clk_div3,用Verilog写出这个设计。

[图片]

6. 设计一个顶层模块,顶层模块实现一个双口SRAM,一个口只读,一个口只写。试用Verilog写出这个顶层模块的实现。

[图片]

7. 根据自己的理解列出经典处理器CPU执行大致阶段,以及各阶段的大致行为。

取指(fetch):从主存中取指令到指令寄存器。
译码(decode):将指令按照指令结构,进行拆分解释,识别区分不同指令类别和各种获取操作数的方法。
执行(execute):实现指令的功能。
访存(memory):根据指令访问主存,读取操作数。
写回(write back):将运算结果写回到某存储器。

8. 芯片设计三个核心指标为PPA,请解释这三个字母分别代表什么,并阐述你对PPA的理解。

performance性能、power功耗、area面积 。
在流水线设计中,流水线越深:追求性能,更高的主频。流水线越浅:追求功耗,小面积低功耗。
面积换功耗:门控时钟(动态功耗),电源门控、多阈值电压、动态电压(静态功耗)。
面积换性能:大容量cache提高cpu的hit几率。
功耗换性能:关键路径采用低阈值电压cmos,但静态功耗很大。

9. What is The Difference Between Mailbox And Queue?

队列存放有序的同类元素,同时结合了链表的优点可以任意位置操作或访问。
mailbox是跨线程的通信,一个线程中写入数据,可以在另一个线程中将数据读出。

10. What Is The Use Of $cast?

$cast为了强制类型转换,可以把基类句柄赋值给扩展类句柄,前提是基类句柄指向了这个扩展类对象或者这个扩展类的扩展类对象,强制类型转换后,这个扩展类句柄就会指向这个扩展类的对象或者这个扩展类的扩展类的对象。

11. UVM中,如果想要某个成员使用UVM compare和print函数,需要如何操作该变量?

通过域的自动化,在注册UVM类的同时可以声明今后会参与到对象拷贝、克隆、打印等操作的成员变量。
[图片]

12. 如何启动sequence?

1)使用start来启动
[图片]

2)挂载在default sequence上来启动
[图片]

13. 请根据下面的设计描述,尽可能多的列出你所能想到的用于功能验证的测试点。

一个异步FIFO, rdata和wdata均为8位数据,FIFO深度为16,当rst_n输入为低时,FIFO被复位,当wclk的上升沿采样到wr为高时,数据被写入FIFO,当rclk的上升沿采样到rd为高时,FIFO输出数据。此外,当FIFO为空时,empty信号输出为高,当FIFO满时,full信号输出为高。

测试点
(1) 同时读写,读写数据正确检查。
(2) FIFO满标志位检查。
(3) FIFO空标志位检查。
(4) 写过程中发生写复位,写数据和FIFO满标志被清空。
(5) 读过程中发生读复位,读数据和FIFO读空标志位被清空。
(6) 读写时钟相位相同,异步FIFO能正常工作。
(7) 读写时钟相位不同,异步FIFO能正常工作。
(8) 写时钟等于读时钟,异步FIFO能正常工作。
(9) 写时钟快于读时钟,异步FIFO能正常工作。
(10) 写时钟慢于读时钟,异步FIFO能正常工作。
(11) 写过程中发生写复位后,异步FIFO能继续正常工作。
(12) 读过程中发生读复位后,异步FIFO能继续正常工作。
(13) FIFO满以后,继续往FIFO写数据,异步FIFO不会被卡死,数据被读走以后,FIFO能继续正常工作。

14. 简述流水线设计的方法和作用。

典型的流水线设计是将原本一个时钟周期完成的较大的组合逻辑,通过合理的切割后分由多个时钟周期来完成,这样一来该部分逻辑运行的时钟频率就会有明显的提升,尤其当它是一条关键路径时,采用流水线设计后整个系统的性能都会得到提升。
流水线设计从某种程度上可以提高系统频率,因此常用于高速信号处理领域,如果某个信号可以分为若干步骤处理,而且整个数据处理过程是单项的,即没有反馈运算和迭代运算,前一个步骤的输出就是下一个步骤的输入,可以考虑流水线设计来提高系统的频率。

15. 请简述数字后端P&R流程。

后端设计流程

1、可测性设计——DFT
Design ForTest,可测性设计。芯片内部往往都自带测试电路,DFT的目的就是在设计的时候就考虑将来的测试。DFT的常见方法就是,在设计中插入扫描链,将非扫描单元(如寄存器)变为扫描单元。关于DFT,有些书上有详细介绍,对照图片就好理解一点。DFT工具:Synopsys的DFT Compiler。

2、布局规划(FloorPlan)
布局规划就是放置芯片的宏单元模块,在总体上确定各种功能电路的摆放位置,如IP模块,RAM,I/O引脚等等。布局规划能直接影响芯片最终的面积。工具为Synopsys的Astro。

3、时钟树综合——CTS
Clock Tree Synthesis,时钟树综合,简单点说就是时钟的布线。
由于时钟信号在数字芯片的全局指挥作用,它的分布应该是对称式的连到各个寄存器单元,从而使时钟从同一个时钟源到达各个寄存器时,时钟延迟差异最小。这也是为什么时钟信号需要单独布线的原因。CTS工具,Synopsys Physical Compiler。

4、布线(Place & Route)
这里的布线就是普通信号布线了,包括各种标准单元(基本逻辑门电路)之间的走线。比如我们平常听到的0.13um工艺,或者说90nm工艺,实际上就是这里金属布线可以达到的最小宽度,从微观上看就是MOS管的沟道长度。工具Synopsys的Astro

5、寄生参数提取
由于导线本身存在的电阻,相邻导线之间的互感,耦合电容在芯片内部会产生信号噪声,串扰和反射。这些效应会产生信号完整性问题,导致信号电压波动和变化,如果严重就会导致信号失真错误。提取寄生参数进行再次的分析验证,分析信号完整性问题是非常重要的。工具Synopsys的Star-RCXT

6、版图物理验证
对完成布线的物理版图进行功能和时序上的验证,验证项目很多,如LVS(Layout Vs Schematic)验证,简单说,就是版图与逻辑综合后的门级电路图的对比验证;DRC(Design Rule Checking):设计规则检查,检查连线间距,连线宽度等是否满足工艺要求;ERC(Electrical Rule Checking):电气规则检查,检查短路和开路等电气规则违例;等等。工具为Synopsys的Hercules。

需要上述面试题目的同学可按需领取,点击下方链接可以直接分享给大家~

这里放个口:IC笔面试题目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/89819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑显示系统错误怎么办?

有时我们在开机时会发现电脑无法开机,并显示系统错误,那么这该怎么办呢?下面我们就一起来了解一下。 方法1. 替换SAM文件解决问题 1. 重启电脑并进入安全模式。 Win8/10系统:在启动电脑看到Windows标志时,长按电源键…

k8s中常用命令总结

文章目录 进入pod容器的命令pod中只有1个用户容器pod中只有2个(含)以上用户容器 yaml中的字段不清楚后面跟什么,通过explain来查看查看pod内指定容器的日志Pod内各个容器的服务端口不能相同资源对象的创建方式一方式二 查看pod的详细信息查看…

C++ 32盏灯,利用进制和 与 或 进行设计

一共32盏灯,设计一个灯光控制系统,其中 台球部8盏灯 桌游区8盏灯 酒吧区8盏灯 休息区8盏灯 满足以下功能 1、能够独立控制每一盏灯 2、能够一次性打开或关闭一个区域的全部灯光 3、能够获取各个区域的灯光打开关闭情况 4、能够一次性关闭打开的灯&#x…

C++中实现雪花算法来在秒级以及毫秒及时间内生成唯一id

1、雪花算法原理 雪花算法(Snowflake Algorithm)是一种用于生成唯一ID的算法,通常用于分布式系统中,以确保生成的ID在整个分布式系统中具有唯一性。它的名称来源于雪花的形状,因为生成的ID通常是64位的整数&#xff0…

Servlet开发-通过代码案例熟悉HttpServletRequest类

关于Servlet开发的流程推荐看servlet开发-通过Tomcat部署一个简单的webapp Servlet开发与idea集成的插件安装推荐看idea集成tomcat(Smart Tomcate插件安装) postman(第三方创建HTTP请求工具)的安装推荐看创建HTTP请求的几种方式…

vue 脚手架 入门 记录

vue 脚手架 入门 记录 以管理员身份运行PowerShell执行:get-ExecutionPolicy,回复Restricted,表示状态是禁止的 3.执行:set-ExecutionPolicy RemoteSigned 4.选择Y 注意:一定要以管理员的身份运行PowerShell&#xff…

【JVM】并发可达性分析-三色标记算法

欢迎访问👋zjyun.cc 可达性分析 为了验证堆中的对象是否为可回收对象(Garbage)标记上的对象,即是存活的对象,不会被垃圾回收器回收,没有标记的对象会被垃圾回收器回收,在标记的过程中需要stop…

JeecgBoot v3.5.5 版本发布,性能大升级版本—开源免费的低代码开发平台

项目介绍 JeecgBoot是一款企业级的低代码平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue3,Mybatis-plus,Shiro,JWT 支持微服务。强大的代码生成器让前后端代码一键生成! JeecgBoot引领…

LeetCode 四数相加II 哈希

原题链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题面&#xff1a; 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i,…

【Java 进阶篇】深入理解 SQL 分组查询

SQL 是结构化查询语言&#xff08;Structured Query Language&#xff09;的缩写&#xff0c;是用于管理关系型数据库的标准语言。在 SQL 中&#xff0c;查询是其中最重要的部分之一&#xff0c;通过查询&#xff0c;我们可以从数据库中检索所需的数据。分组查询是 SQL 查询中的…

生命在于研究——CVE-2021-22214记录

一、前言 我现在在某央企驻场&#xff0c;渗透测试工程师&#xff0c;也负责漏洞管理平台&#xff0c;也就是监测、渗透测试出现的漏洞&#xff0c;都会录入平台&#xff0c;走流程整改复测办结。 二、漏洞详情 1、漏洞简介 GitLab存在前台未授权SSRF漏洞&#xff0c;未授权…

认识电磁干扰?|深圳比创达EMC

认识电磁干扰&#xff1f;相信不少人是有疑问的&#xff0c;今天深圳市比创达电子科技有限公司就跟大家解答一下&#xff01; 1、电磁干扰(Electromagnetic Interference)&#xff1a;简称EMI&#xff0c;有传导干扰和辐射干扰两种&#xff1b; 2、传导干扰&#xff1a;主要是…

win10录屏的3种方法,让你的视频更加精彩

在现代工作和娱乐中&#xff0c;录制屏幕活动已经变得非常重要。无论您是教育工作者、内容创作者还是想分享您的技能或游戏成就&#xff0c;win10 提供了多种方法来满足这个需求。本文将介绍3种win 10录屏的方法。无论您是初学者还是有经验的用户&#xff0c;我们都会为您提供详…

联盟 | 彩漩 X HelpLook,AI技术赋能企业效率提升

近日&#xff0c;AI 驱动的 PPT 协作分享平台「 彩漩 」与 AI 知识库搭建工具「 HelpLook」&#xff0c;携手为用户工作流注入更多智能和创造力&#xff0c;全面拥抱 AIGC 时代带来的机遇&#xff0c;致力于提供前沿的智能解决方案。 彩 漩 彩漩是一个以 AI 技术为基础、贯彻 …

自制网页。

文章目录 注:代码中图片等素材均来自网络,侵删 20230920_213831 index.html <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-…

Java当中的BIO模型

我们知道Java中的IO模型分为BIO和NIO模型&#xff0c;BIO是BlCKING IO的简称而NIO当中的N有两层意思&#xff0c;一个是从java1.4开始出现的NEW IO&#xff0c;今天我们来聊一聊为什么传统的BIO会慢以及它并不适合大量的连接&#xff0c;我们先来看一段简单的代码&#xff0c;这…

pt28django教程

缓存 缓存是一类可以更快的读取数据的介质统称&#xff0c;读取硬盘、较复杂的计算、渲染都会产生较大的耗时。数据变化频率不会很高的场景适合使用缓存。使用缓存场景&#xff1a;博客列表页、电商商品详情页、缓存导航及页脚。 Django中设置缓存 Django中提供多种缓存方式…

什么是堆栈和队列?如何实现它们?

堆栈&#xff08;Stack&#xff09;和队列&#xff08;Queue&#xff09;是两种常见的线性数据结构&#xff0c;用于组织和管理数据。它们分别具有不同的特点和用途。本文将详细解释堆栈和队列的概念、特点以及如何实现它们。 堆栈&#xff08;Stack&#xff09; 什么是堆栈&…

C++图像金字塔下采样的函数

图像金字塔下采样的函数 cv::pyrDown 是 OpenCV 中用于图像金字塔下采样的函数。图像金字塔是一种多分辨率图像表示方法&#xff0c;它通过逐级下采样&#xff08;减小图像尺寸&#xff09;和上采样&#xff08;增加图像尺寸&#xff09;来生成一系列不同分辨率的图像。cv::py…

fdbus之消息接收流程

fdbus中的消息如何发送出去&#xff0c;前面的文章有的讲的很详细了&#xff0c;但是对于如何接收消息涉及的较少&#xff0c;本篇重点讲述fdbus是如何接收消息及消息在传递过程、传递方式&#xff08;零拷贝&#xff1f;&#xff09;。 还是从通过源码来讲述吧&#xff0c;更…