自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

原创 数字IC面经汇总(32篇)

为准备校招(自用),博主整理了往年数字IC前端(设计&&验证) && FPGA的面经,信息来自但不限于数字IC打工人、FPGA探索者、摸鱼范式、CSDN、牛客网、博客园等公众号和网站,以及博主个人的面试经验。内容来源较多,并未一一申请授权,末尾附面经来源,侵权即删,仅做学习交流~内容更新中...(6.28)目录前言1.平头哥2.zeku3.汇顶科技4.联发科5.诺瓦科技6.集创北方7.华为8.大疆9.全志科技10.OPPO。

2023-06-28 18:13:04 7275 1

原创 数字IC笔试题---千题解,量大管饱,图文并茂

数字IC笔试总结

2023-02-24 15:14:18 5842 22

原创 数字IC手撕代码---百题斩

本篇专栏记录数字IC秋招过程中的一些基础手撕代码,以及笔面试遇到的手撕代码真题。

2022-09-27 16:30:19 7967 2

原创 数字IC笔试千题解--编程&&脚本篇(八)

答案:定义一个二叉树的结点结构体TreeNode,然后用递归的方式去访问二叉树的所有叶子节点,退出条件为not root,即root = None,即不存在的节点,此时not root 为真,退出该次递归函数。

2023-09-25 05:26:14 579

原创 数字IC笔试千题解--逻辑推理篇(七)

4个一堆的,先取直接取3个,这样小明最少取1个,必胜5个一堆的,无论取几个必输。取1个,小明取3个;取2个,小明取2个;取3个,小明取1个。必输6个一堆的,需要总结规律。关键点就在4个球,无论前面怎么取,都要使得在对方取完球之后剩下的球的个数在[2-4]之间,则能必胜。所以6个一堆的,只要取1个,那么小明无论怎么取都会在[2-4]之间,轮到我们取,取到只剩1个球即可。三局两胜,赢了。

2023-09-25 05:25:51 545

原创 数字IC笔试千题解--简答题篇(六)

input delay:时钟触发后信号信号到达输入端口前经过的延迟。output delay:输出端口输出信号后到下一个触发器采样前信号的传输延迟。

2023-09-25 05:25:29 1335

原创 数字IC笔试千题解--判断题篇(五)

答案:错误。Verilog程序模块中输入、输出信号类型默认自动定义为wire型。

2023-09-25 05:24:44 881

原创 数字IC笔试千题解--填空题篇(四)

中间150周期读15*8=120个,所以写入80个数据,读出6+120=126个,FIFO深度为160-126=34。容易误判32深度。

2023-09-25 05:24:25 699

原创 数字IC笔试千题解--多选题篇(三)

所有题目结果和解释由笔者给出,答案主观性较强,若有错误欢迎评论区指出,资料整理来自于“数字IC打工人”等数字IC相关公众号,牛客网等网站真题、网络笔试真题及面经抄录。

2023-09-25 05:23:58 11116

原创 数字IC笔试千题解--单选题篇(二)

所有题目结果和解释由笔者给出,答案主观性较强,若有错误欢迎评论区指出,资料整理来自于“数字IC打工人”等数字IC相关公众号,牛客网等网站真题、网络笔试真题及面经抄录。

2023-09-25 05:23:45 2766

原创 数字IC笔试千题解--单选题篇(一)

所有题目结果和解释由笔者给出,答案主观性较强,若有错误欢迎评论区指出,资料整理来自于“数字IC打工人”等数字IC相关公众号,牛客网等网站真题、网络笔试真题及面经抄录。

2023-09-25 05:23:24 4579

原创 RISC-V 指令集介绍

rs1 (Source Register 1)是第一个源操作数寄存器,占了5bit,在指令的15-19bit;rs1 (Source Register 1)是第一个源操作数寄存器,占了5bit,在指令的15-19bit;rs2 (Source Register 2)是第二个源操作数寄存器,占了5bit,在指令的25-31bit。rs2 (Source Register 2)是第二个源操作数寄存器,占了5bit,在指令的25-31bit。

2023-07-31 22:53:31 7940 1

原创 快速计算one-hot码中“1”所对应的下标

到此就完成了8bit one hot码下标的计算,这种计算方式有个好处就是找最高位或最低位1的one_hot码是一个按位运算,计算one_hot码下标时,index的每个bit也是并行的位运算,时序上会比用for循环遍历变量找1的index的方式更好。如表所示,只要one_hot的第1,3,5,7bit为1时,则index的第0bit位为1,从真值表中可以看到index的第0bit位为1时,其实就是等效为one_hot的第1,3,5,7bit的或。为什么index的计算可以直接通过位操作实现呢?

2023-07-27 10:46:11 363 1

原创 超标量处理器-寄存器Rename详解

在CPU中,一段程序会被编译成一连串的汇编指令,指令与指令之间可能会具有相关性(dependency)。所谓相关性,即一条指令的执行会依赖于另一条指令的结果,相关性可以分为:① 数据相关性;② 存储器数据相关性;③ 控制相关性;④ 结构相关性。本文主要介绍数据相关性。

2023-07-27 00:24:41 835

转载 这一刻,我感觉一定要给.....(补充)

太好玩儿了,根据空白大佬的图,并在此基础上做了一些补充,hhhhh~

2023-06-28 11:16:40 585

原创 linux操作系统 - tmux 命令图文教程

tmux是一个终端复用器,它允许你在一个终端窗口中同时运行多个终端会话。tmux的名字是"终端多路复用器"(Terminal Multiplexer)的缩写。它的主要作用是帮助用户管理和组织终端会话,以提高工作效率和便捷性。

2023-06-28 10:36:20 2284

原创 AMBA协议-AXI协议详解(读写时序、Outstanding、乱序传输、原子操作)

目录1. AXI 写通道信号1.1. 写地址通道信号1.2. 写数据通道信号1.3. 写response通道信号1.5. 握手规则1.4. AXI 写通道之间关系 2. AXI 读通道信号2.1. 读地址通道信号2.2. 读数据通道信号2.3. AXI 读通道之间关系 3. AXI传输3.1. AXI突发读传输3.2. Overlapping 突发读传输3.3. AXI突发写传输3.4. 非对齐传输4. AXI outstanding5. AXI 乱序传输(Out of order)6. 原子操作(Atom

2023-05-03 11:06:34 12334 5

原创 Cache存储系统详解(全相联映射、直接映射、组相联映射、替换策略和性能计算)

为了解决之间的矛盾,把各种不同存储容量,不同存取速度,不同价格的存储器,按照一定的体系结构组织起来,使所存放的程序和数据按层次分布在各存储器中,形成---常见的就是三级存储系统,即:Cache、主存、辅存。如果希望长久的保存程序或者数据,那么可以将其放在辅存中,譬如磁盘。如果要执行这个程序或者处理这个数据,就需要把它调进主存中。

2023-04-23 15:16:06 8358 2

原创 barret reduction原理详解及硬件优化

约减算法,通常应用在硬件领域,因为模运算mod是一个除法运算,在硬件中实现速度会比乘法慢的多,并且还会占用大量资源,因此需要想办法用乘法及其它简单运算来替代模运算。模约减算法可以利用乘法、加法和移位等操作实现大数的取模,规避了模运算中的除法,常见方法有蒙哥马利模约减,barret模约减等,本篇文章介绍barret 模约减算法原理。

2023-04-10 10:44:53 2043

原创 计算序列1的计数(verilog)

用分治思想,计算序列1的计数(verilog),对于8bit的序列,仅需要7个full adder

2023-04-08 22:15:10 2471 1

原创 用移位寄存器实现同步FIFO,带空满判断

如图所示,同步FIFO带有push信号和pop信号,push代表往队列里面压入一个数据,pop代表往队列外面排出一个数据。

2023-04-06 12:39:42 2441 2

原创 找到序列最高位的1和最高位的0并输出位置

前言:该题为睿思芯科笔试题,笔试时长20分钟。

2023-04-05 20:30:03 2121 4

原创 斐波那契数列verilog实现

前言:该题为rsxk笔试题,笔试时长20分钟。

2023-04-05 17:24:41 2208 1

原创 扰码器原理详解及verilog实现

扰码就是对原始的用户数据进行扰乱,得到随机化的用户数据。连续扰码两次就能得到原始数据,通常是发送电路在发送数据时先对数据进行随机扰乱,接收电路使用相同的扰乱算法就可以重新恢复出原始的数据。

2023-03-31 11:27:34 3743 2

原创 任意时钟频率的单bit跨时钟域设计(海思巴龙)

两个时钟域传单bit数据,输入A持续一个cycle,要求输出B一个cycle。两个时钟域的时钟是任意的。

2023-03-30 01:23:02 859

原创 不用循环和分治,仅用“按位”操作,找到序列第一个1和最后一个1

找到序列第一个1,找到序列最后一个1。波形

2023-03-29 16:46:28 1270

原创 round robin arbiter 轮询仲裁器设计

前言仲裁器Arbiter是数字设计中非常常见的模块,应用也非常广泛。定义就是当有两个或两个以上的模块需要占用同一个资源的时候,我们需要由仲裁器arbiter来决定哪一个模块来占有这个资源。一般来说,提出占有资源的模块要产生一个请求(request),所有的请求送给仲裁器之后,仲裁器要返回一个许可(grant)。

2023-03-25 19:23:43 2385

原创 固定优先级仲裁器设计

前言仲裁器Arbiter是数字设计中非常常见的模块,应用也非常广泛。定义就是当有两个或两个以上的模块需要占用同一个资源的时候,我们需要由仲裁器arbiter来决定哪一个模块来占有这个资源。一般来说,提出占有资源的模块要产生一个请求(request),所有的请求送给仲裁器之后,仲裁器要返回一个许可(grant)。固定优先级仲裁器(fixed priority)固定优先级,每个模块的优先级是固定的,是提前分配好的,如果有两个模块同时产生request,那么优先级高的模块可以获得grant。

2023-03-25 16:00:57 1117 1

原创 任意深度异步FIFO设计

事实上格雷码可以取2N个进行环回,例如取格雷码个数为12,在2^4=16的基础上,掐头去尾,取中间的12个格雷码,这样从0011到最大值1011中间任意两个相邻数之间只有1bit位的跳变。通常情况下,设计的异步FIFO的深度是2的N次方,但事实上,选择这个2^N的原因也是因为格雷码这么取的时候,最大值+1回到最小值时,跳变还是只有1bit。可以看到,任意两个相邻的数字仅有1bit发生跳变,取格雷码回环就按照:在2^4=16的基础上,掐头去尾,取中间的8个格雷码。

2023-03-25 11:40:56 1949

原创 数字IC手撕代码--芯源(三分频)

设计两个三分频时钟clk1和clk2,占空比分别为1/3和2/3,一个下降沿触发,一个上升沿触发,两个时钟相与得到占空比50%的三分频。用Verilog设计一个3分频器,要求50%占空比。波形结果是一个占空比50%的三分频。更多手撕代码题可以前往。

2023-03-20 15:41:22 697 2

原创 数字IC手撕代码--联发科(总线访问仲裁)

在tb里,先分别让A、B各请求总线一次,然后让他们出现请求冲突8次,最后再让A、B分别请求总线两次,从图中可以看到,在A、B请求冲突的时候,A_grant、B_grant拿到总线的比例是3:1,我们在module定义开头给了两个parameter,定义了A_grant、B_grant拿到总线的比例A_ratio和B_ratio,如果要修改模块代码,修改module传入的parameter的值即可。只有在冲突时,AB冲突响应比为3:1。计数器=0,1,2时响应A,计数器=3时响应B,于此同时将计数器置0。

2023-03-03 16:43:21 5769 5

原创 低功耗设计 Clock Gating

芯片功耗组成中,有高达 40%甚至更多是由时钟树消耗掉的。这个结果的原因也很直观,因为这些时钟树在系统中具有最高的切换频率,而且有很多时钟 buffer,而且为了最小化时钟延时,它们通常具有很高的驱动强度。那么减少时钟网络的功耗消耗,最直接的办法就是如果不需要时钟的时候,就把时钟关掉。这种方法就是大家熟悉的门控时钟:clock gating。如果让我们设计一个门控时钟的电路,我们会怎么设计呢?最直接的方法,不需要时钟的时。

2023-03-02 00:35:14 2387

原创 数字IC手撕代码--小米科技(除法器设计)

..持续更新更多手撕代码题可以前往。

2023-02-27 00:57:03 6237

原创 数字IC手撕代码--乐鑫科技(次小值与次小值出现的次数)

..持续更新更多手撕代码题可以前往。

2023-02-25 20:49:11 3652 1

原创 Verilog 逻辑与(&&)、按位与(&)、逻辑或(||)、按位或(|)、等于(==)、全等(===)的区别

一个4bit的数和一个4bit的数按位与的结果还是一个4bit数,例如A[3:0] & B[3:0] = { A[3] && B[3] , A[2] && B[2], A[1] && B[1], A[0] && B[0] }一个4bit的数和一个4bit的数按位或的结果还是一个4bit数,例如A[3:0] & B[3:0] = { A[3] || B[3] , A[2] || B[2], A[1] || B[1], A[0] || B[0] }因为4bit数A和B中间都有1,所以A、B按位或结果都为1。

2023-02-25 19:03:56 20344 2

原创 APB总线详解及手撕代码

APB总线端口如下:大体可以分为以下三组:系统信号:PCLK(系统时钟)、PRESETn(系统复位,低有效)master信号:PADDR(地址信号,确定读写的地址)、PSELx(片选信号,拉出来接给搭载APB总线的slave,选中slave时,PSELx信号拉高)、PNEABLE(使能信号,在PSELx拉高一个周期后,必定拉高)、PWRITE(写使能信号,PWRITE为高时写有效为低时读有效)、PWDATA(写数据)slave信号。

2023-02-21 11:32:10 6132 1

原创 数字IC手撕代码-同步FIFO

在设计系统时,会包含工作在不同时钟频率下的元件,例如处理器和外设。数据在这些元件之间传输时先进先出(FIFO first in first out)阵列起到了重要作用。FIFO是用于对在通信总线上传输的数据进行排列的简单存储结构。 因此,FIFO常用来传输跨不同时钟域的数据。 本节介绍简单的同步FIFO架构,读写使用同样的时钟,为我们后续写异步FIFO(读写时钟非同源)做铺垫。

2022-12-05 18:29:07 1539 3

原创 减少乘法次数的优化算法(Gauss、Strassen、Winograd)

在硬件设计中,乘法无论是在逻辑资源的使用上还是组合逻辑的延时上都要比加法高很多。从硬件方面考虑,我们都更倾向于将乘法转换成移位和加法,譬如乘以8,可以转换为左移3位。A*15可以转换为(A

2022-11-23 01:07:21 1755 1

原创 数字IC手撕代码-XX公司笔试真题(串并转换控制)

将数据进行串转并处理,输入 3780 个串行比特,每个数据占一个时钟周期,输入共占 3780 个时钟,要求并行输出 63 个 bit,共 60 个时钟输出完.其时序示意图如下: 第 1 个时钟并行输出 0,60,…,3720,做为 bus 整体输出 第 2 个时钟并行输出 1,61,…3721 第 60 个时钟并行输出 59,119,…3779 注意每次并行输出仅占一个时钟周期,60 个时钟周期便输出完. 输出与输入的相对时延关系任意即可。

2022-11-17 14:51:57 1008 8

原创 数字IC手撕代码-XX公司笔试真题(数据流pipeline加和)

输入为 i0,i1,i2,…,i253,i254,….占 1 个时钟周期, 输出 sum0 为 i0 +i2+….+i254 的加和值(隔点相加), sum1 为 i1+i3+….+i255,sum2 为 i2+i4+….+i256,如此下去,每个输出占一个时钟周期 Sum0 和 i0 的相对延时关系任意即可。假设输入 i0,i1,i254,…为 8 比特值, 输出 sum 请选择认为不会损失精度且合适的位宽,并用你认为的最省资源的方式用 verilog 语言实现上述要求。

2022-11-13 22:03:17 1349 5

数据结构上课课件(自用),pdf打开密码dsdb11

数据结构上课课件(自用),pdf打开密码dsdb11

2023-02-27

manic time软件,全安装步骤图文教程

全安装步骤图文教程:https://blog.csdn.net/qq_57502075/article/details/127163250 这是一款软件,可以在后台无时无刻记录你操作电脑的动作,通过精致的视图向你展示当天使用最久的程序,投入最深的工作,以及那些浪费时间的"罪魁祸首"。通过简单的点击、添加标签等,就能很迅速地为任意时段生成时间统计表,让你更好地去分析过去的时间、规划未来的时间。

2022-10-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除