自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (2)
  • 收藏
  • 关注

原创 数字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 11337 1

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

数字IC笔试总结

2023-02-24 15:14:18 7072 23

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

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

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

原创 通用图形处理器设计GPGPU基础与架构(五)

现代处理器的存储系统大多采用层次化的结构,本文将从 CPU存储层次入手,通过对比介绍 GPGPU 存储层次的特点。虽然GPGPU 的每个 SM 中都配备了大量寄存器文件,但其仍需要借助高速缓存来进一步降低访存延时,减少对外部存储器的访问次数。GPGPU 架构的特点使得高速缓存的设计不同于传统CPU。在 GPGPU 中 ,缓存根据其所处的层次分为 SM 内局部的数据缓存,如L1 数据缓存和可编程多处理器外共享的数据缓存,如 L2 缓存。

2024-07-28 01:07:09 1016

原创 MESI协议

现在的CPU基本是多核的,当多个核同时操作多个线程对同一个数据进行更新时,如果core0在core1还未将更新的数据写回内存之前就读取了数据,并进行了操作,就会造成数据错误。为了解决这一问题,前人提出了缓存一致性协议。CPU操作缓存的单位是”缓存行“(cacheline),也就是说如果CPU要读一个变量x,那么其实是读变量x所在的整个缓存行。MESI 协议是缓存一致性协议,是为了解决多 cpu 、并发环境下,多个 cpu 缓存不一致问题而提出的协议。

2024-07-27 20:34:46 1033

原创 Cache 替换策略--PLRU算法详解

LRU(Least Recently Used)是 cache 的经典替换策略之一,但当 Cache 的路数比较大时(多路组相连结构),实现 LRU 的硬件开销就会变得很大。现代处理器一般会考虑使用 PLRU(pseudo-LRU)作为 Cache 的替换策略而不是 LRU。PLRU 是 LRU 的一种优化,本文要介绍的是PLRU中的 tree-PLRU(tree-based pseudo-LRU)。

2024-07-27 18:06:03 1086

原创 通用图形处理器设计GPGPU基础与架构(四)

在计算机中有很多资源,既可以是虚拟的计算资源,如线程、进程或数据流,也可以是硬件资源,如处理器、网络连接或ALU单元。调度的目的是所有,从而允许多个工作可以有效地同时共享资源,或达到指定的服务质量。当 SM 中有众多线程束且处于就绪态(或活跃)时,需要调度器从其中挑选出一个。这个被选中的线程束会在接下来的执行周期中根据它的PC发射出一条新的指令来执行。

2024-07-17 17:28:32 1111

原创 通用图形处理器设计GPGPU基础与架构(三)

本文介绍了 GPGPU 的经典架构和指令流水线,下一篇将针对影响 GPGPU 性能最大的分支情况介绍解决方案。

2024-07-15 15:22:13 1163

原创 通用图形处理器设计GPGPU基础与架构(二)

本文介绍了GPGPU编程的背景、CUDA编程实现步骤、软件到硬件的过度以及存储模型等内容,为后续介绍GPGPU架构提供理论基础。

2024-07-12 15:02:47 1284

原创 通用图形处理器设计GPGPU基础与架构(一)

GPGPU(GeneralPurpose GraphicsProcessingUnit,通用图形处理器)脱胎于GPU(Graphics ProcessingUnit,图形处理器)。GPGPU由于其强大的运算能力和高度灵活的可编程性,已经成为深度学习训练和推理任务最重要的计算平台。这主要得益于GPGPU的体系结构很好地适应了当今并行计算的需求

2024-07-10 11:40:33 1044

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

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

2023-09-25 05:26:14 1061

原创 数字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 890

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

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

2023-09-25 05:25:29 2656

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

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

2023-09-25 05:24:44 1876

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

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

2023-09-25 05:24:25 1081

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

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

2023-09-25 05:23:58 13876 1

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

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

2023-09-25 05:23:45 3997

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

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

2023-09-25 05:23:24 8447 8

原创 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 10728 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 450 1

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

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

2023-07-27 00:24:41 1147

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

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

2023-06-28 11:16:40 840

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

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

2023-06-28 10:36:20 3208

原创 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 18428 5

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

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

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

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

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

2023-04-10 10:44:53 2736

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

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

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

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

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

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

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

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

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

原创 斐波那契数列verilog实现

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

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

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

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

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

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

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

2023-03-30 01:23:02 1168 1

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

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

2023-03-29 16:46:28 1588

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

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

2023-03-25 19:23:43 2834

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

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

2023-03-25 16:00:57 1348 3

原创 任意深度异步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 2523

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

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

2023-03-20 15:41:22 928 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 6045 5

原创 低功耗设计 Clock Gating

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

2023-03-02 00:35:14 2763

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

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

2023-02-27 00:57:03 6627

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

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

2023-02-27

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

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

2022-10-04

空空如也

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

TA关注的人

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