自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sz_woshishazi的博客

IC知识干货分享,全网ID—【IC墨鱼仔】,欢迎关注,点赞

  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

原创 Verilog开源项目——百兆以太网交换机(四)令牌桶管理单元设计

千兆以太网交换机开源项目-Atom支持了多种形式的QoS特性,其中发送端口的限速是Tx Path上尤为重要的功能,Atom将使用令牌桶的管理方式,对所有流出的报文,进行限速管理,并将该令牌桶管理单元命名为TKM(Token Manager)。TKM将实现单速单桶、双速双桶可配置形式,并能统计普通流量、突发流量、瞬时峰值流量,提供给上层更多的管理指导。

2023-12-07 13:30:12 1238

原创 Verilog开源项目——百兆以太网交换机(三)Hash模块设计

本文介绍了在百兆以太网交换机项目中Hash模块的设计与实现方案。在Atom中,在SM2加解密和LUT模块中都需要用到Hash模块,且为了更好地解决LUT中Hash冲突的问题,将实现SM3、SHA-256两种Hash算法,以满足循环Hash或双Hash方案。

2023-11-22 17:20:48 330

原创 Verilog开源项目——百兆以太网交换机(二)AES加解密模块设计

Verilog开源项目-百兆以太网交换机Atom中,AES加解密实现方案。

2023-09-24 17:16:12 477

原创 Verilog开源项目——百兆以太网交换机(一)架构设计与Feature定义

经过第一代的交换机项目后,博主也算对交换机有了更深的认识,但是第一代的Feature过于单一,架构简单,和市场化的交换机功能完全脱节。而在学习Switch Core的过程中,也没有找到什么完善的中文学习资料,所以博主准备进一步完善以太网交换机的项目,希望凭微薄之力,为想学习的同学们多整理一些资料。  第二代交换机有更丰富的feature,更贴近真正使用的功能,除rtl代码,详细设计文档外,还会包括验证环境、验证代码,最后项目完成后,会全部开源供大家学习,顺利的话,希望还能上FPGA进行原型验证。

2023-08-29 21:09:58 842 2

原创 从零开始 verilog 以太网交换机(七)总结与展望

本专题从开始至今已半年,博主也是第一次更新完整的专题,对网络方面也还是懵懂无知阶段,有很多地方做的不足,还请各位多多担待。开展本专题的初衷是希望给广大学子们多一些练手的项目,在面试时有更广泛的技术背景,但是在过程中发现很多同行也挺敢兴趣。为此,将在此专题的基础之上,进一步推出v2版本,目前已初步完成的架构设想。v2版本会增加更多feature,更贴合市场的功能实现,也将更有难度,会在接下来的半年~一年的时间完成。

2023-07-26 21:23:26 622 1

原创 从零开始 verilog 以太网交换机(六)帧处理单元设计与实现

从零开始 verilog 以太网交换机(六)帧处理单元设计与实现本章将继续进行帧处理单元设计与实现,交换机完整的架构可以参考:从零开始 verilog 以太网交换机(一)架构分析。

2023-07-12 21:34:45 789

原创 从零开始 verilog 以太网交换机(五)帧合路单元的设计与实现

本章将开始进行帧合路单元的设计,其负责将多个mac controller的帧合并为一路进行后续处理。交换机完整的架构可以参考:从零开始 verilog 以太网交换机(一)架构分析。

2023-06-24 22:32:20 865 2

原创 从零开始 verilog 以太网交换机(四)以太网转发表的设计与实现

以太网转发表负责维护MAC地址和端口间的转发关系,需要经可能快速的帮助交换机确认数据帧应该从哪个端口发送出去。本章将开始进行以太网转发表的设计与实现,其负责判断数据帧对应的去向。

2023-04-10 21:29:48 2206 2

原创 从零开始 verilog 以太网交换机(三)MAC发送控制器的设计与实现

MAC发送控制器的功能和接收控制器对称,负责以太网的MAC -> PHY的数据交换,将数据帧转换为MII接口形式的数据流,并根据长度进行补零,计算CRC校验等。

2023-02-19 15:22:55 3209 5

原创 从零开始 verilog 以太网交换机(二)MAC接收控制器的设计与实现

本章进行MAC控制器的设计与实现,共分为两个部分:接收控制器和发送控制器。整体架构可以参考:从零开始 verilog 以太网交换机(一)架构分析,本文将首先分析MAC接收控制器的设计。关注本专题的朋友们可以收获一个经典交换机设计的全流程,包括设计与验证(FPGA);以太网MAC的基础知识。新手朋友们还将获得一个具有竞争力的项目经历。

2023-01-18 14:13:34 3818 9

原创 卷积神经网络硬件加速——INT8数据精度加速

上一专题已介绍了一种通用的卷积神经网络硬件加速方法——Supertile,本文将介绍一种特殊的硬件加速方案,一种INT8数据精度下的双倍算力提升方案。  目前大部分卷积神经网络模型的数据类型都是32-bits单精度浮点型,或者16-bits,但对于实际应用而言,99%和99.5%的网络准确率是没有区别的。所以,对于某些场景下,网络的数据精度使用INT8的数据类型就能较好的胜任工作。

2022-12-30 16:14:18 1641 3

原创 从零学习 InfiniBand-network架构(十一) —— 管理器的介绍

本章将介绍IB协议中的管理器的概念,包括子网管理器,子网管理代理,通用服务管理器,通用服务管理代理。通用服务接口,子网管理包SMP,通用服务管理包GMPS,概念都较为抽象,可以简单了解一下。

2022-12-29 20:39:25 3378

原创 从零学习 InfiniBand-network架构(十) —— IB协议中全局ID

专题内的上一文章谈到的是子网内ID的意义和作用,而本文要介绍的全局ID将用在两个不同子网下的Packet传输。本章介绍IBA中全局ID的作用,IPv6地址及单播、多播规则;并描述如何为子网中的每个端口分配相同的子网ID以及一个或多个GUID。

2022-12-24 20:09:45 2063

原创 FPGA在卷积神经网络中的双倍算力应用——supertile技术分析

近年来随着智慧安防、生物医疗、汽车电子等强实时性应用开始快速兴起,各类AI模型层出不穷,神经网络结构日益复杂,所需算力也越来越大,这使得神经网络的硬件加速成为近几年的热点研究,不论是工业界还是学术届,AI的硬件加速方案层出不穷,但主要分为FPGA和ASIC两类。  FPGA不像ASIC,可以通过堆叠大量的计算单元来提升板卡算力,所以在FPGA上进行算力提升更受局限,本文将介绍一种基于Xilinx FPGA平台中DSP单元的supertile技术,该技术可以将DSP的计算效率提升两倍。

2022-12-14 22:37:09 1182

原创 从零学习 InfiniBand-network架构(九) —— IB协议中子网本地地址

本章介绍了IBA子网中报文从源端口路由到目的端口时使用的地址,解释了在CA、交换机和路由器上的端口如何编号。解释了Local ID (LID)地址空间、LID地址的用途以及SM为每个端口分配的唯一LID;最后介绍了SM路径数据库的概念。

2022-12-08 14:19:11 2638 1

原创 从零学习 InfiniBand-network架构(八) —— IB协议中的原子操作

本章将介绍IB协议中传输请求中的原子操作,并解释原子操作存在的意义以及IB协议中原子操作的具体类型与流程。

2022-11-24 10:32:50 1693

原创 从零学习 InfiniBand-network架构(七) ——IB协议中数据如何传输

本章将介绍IB协议中五种类型的消息传输请求,并对其中的RDMA read操作进行详细描述,还介绍了可以由QP的RQ逻辑发布和执行的单一类型的消息传输请求。

2022-11-11 17:26:39 3526 2

原创 从零学习 InfiniBand-network架构(六)—IB协议链路层QoS如何实现

本章将介绍什么是QoS,为什么需要QoS,以及在IB协议中如何在链路层实现QoS

2022-11-04 10:22:21 2338

原创 从零学习 InfiniBand-network架构(五) —— 物理层究竟干些什么?

本章将更详细的介绍网络模型中的物理层的功能和组成,介绍了PHY中的PCS、PMA、PMD子层,并描述了数据如何从MAC层出发经过PHY到达对端的过程。

2022-10-27 17:42:21 1875

原创 数字IC秋招手撕代码(十)计算最小公倍数与最大公约数

数字IC校招手撕代码,硬件利用辗转相除法计算最大公约数与最小公倍数

2022-10-21 11:01:53 897

原创 从零学习 InfiniBand-network架构(四) —— IB六层网络模型

本章将介绍IBA的六层网络模型,其模型与经典网络模型OSI七层模型类似,并简单介绍了每层的责任与功能,并解释了IBA设备实现层次的原因,IBA六层网络模型中更详细的物理层和QoS内容将在后续两章介绍。

2022-10-18 17:50:02 2942 2

原创 从零学习 InfiniBand-network架构(三) —— IB核心传输引擎Queue Pair

本章将介绍IBA技术中最核心的信息传输引擎,队列的概念(QP,Queue Pair)、请求报文、响应报文、报文序列号(PSN),简单介绍QP服务类型和verb layer API,最后将描述一个详细的信息传输示例。

2022-10-13 17:11:49 3705 3

原创 从零学习 InfiniBand-network架构(二) —— 属性与管理器

本章将介绍设备属性、管理器、管理代理MA和管理数据报MADS的概念。

2022-09-29 21:31:43 2331

原创 从零学习 InfiniBand-network架构(一) —— IB协议中常用术语及定义

当前IC产业中火热的DPU赛道,其本质就是IB协议的硬件卸载,使芯片支持RDMA等功能;恰巧博主也在进行文,该报文带有destination port ID,通过交换机和路由器的帮助,CA最终抵达目标CA。交换机规则:负责在同一子网内报文的路由,根据DLID查找交换机内部的转发表(由软件在启动阶段配置),确定报文需要从交换机的哪个端口输出。原子比较和交换操作:收到请求后,目标CA从其本地的指定内存中读取数据,将读取的数据与Compare值比较,若相等,将值写入指定位置,返回的响应操作与上述加法原子操作一致。

2022-09-28 10:31:42 8627 4

原创 数字IC秋招手撕代码(九)可参数化的多端口寄存器堆设计

用verilog设计一个可参数化的寄存器堆,同一时刻输入的写地址互不相同,但读地址可以相同,所有端口都能连续响应读写请求。

2022-09-22 22:07:42 852 1

原创 数字IC秋招手撕代码(八)找序列中的第一个1—升级篇

用verilog实现,不断寻找序列中的第一个1,并输出其index,当寻找完毕后输出介绍信号。(LSB为例)

2022-09-21 14:32:21 2539 2

原创 Verilog阻塞/非阻塞赋值电路角度解读

对于具有一定软件基础的同学来说,赋值无非是将等号右边的数字赋给等号左边的变量。那么什么是阻塞/非阻塞赋值呢?在Verilog中,阻塞赋值和非阻塞赋值应用于截然不同的代码逻辑中。

2022-08-21 19:40:16 1166

原创 从零开始 verilog 以太网交换机(一)架构分析

从零开始 verilog 以太网交换机(一)架构分析前言马上要去新公司入职,也将步入我再三思考的网络IC行业在入职前,准备完成一个简单的以太网交换机的项目以下所有内容均参考于乔庐峰教授的《Verilog HDL数字系统设计与验证——以太网交换机案例分析》一、ethernet switch作用在开始工程前,先讨论以下为什么要有以太网交换机。简单来说,当越来越多的设备接入网络后,点对点的通信需要某一设备来集中处理数据的转发以太网交换机就是为了完成这一任务,当然随着时代发展,其内部对网络包的处

2022-03-15 14:47:33 5435 5

原创 数字IC秋招手撕代码(七)找序列中的第一个1

阿里面试原题:用verilog实现找到序列中的第一个1,并输出其index。(MSB为例)

2021-08-15 19:48:13 6067 2

原创 数字IC秋招手撕代码(六)异步FIFO详解

数字IC秋招手撕代码(六)异步FIFO常用情况FIFO的空满标志FIFO指针格雷码格雷码下的空满信号重点最小深度FIFO的计算代码最近两天晚上在看异步FIFO,之前也使用过异步FIFO,但是一直没有仔细搞懂原理。这次准备写篇博客记录一下。常用情况以下两种情况,经常会使用到异步FIFO1.跨时钟域问题2.位宽不一致(例如 输入8bit 输出16bit)这时候fifo中的内存结构应该和常见的不同,具体还不清楚FIFO的空满标志一个深度为(2^n)的FIFO,其地址位宽需要n+1位MSB

2021-08-14 22:23:44 468

原创 数字IC秋招面试专题(五)逻辑式如何转换为晶体管电路

在面试中经常会要求画出某一个逻辑表达式的管级电路,本文将详细分析逻辑表达式到管级电路的推导过程

2021-07-06 10:43:26 1274 4

原创 数字IC秋招面试专题(四)低功耗设计方法及HVT、UPF介绍

随着芯片工艺越来越先进,功耗也被越来越关注,低功耗设计转变为芯片设计的常态。本文简单介绍一下主流的低功耗设计方法,博主也只是简单了解,并不深入。

2021-07-03 12:39:37 6242 4

原创 数字IC秋招面试专题(一)setup time 和 hold time

数字IC秋招面试专题(一)setup time推导hold time推导想必在数字IC笔试和面试中总是会考到setup time和hold time的知识,博主之前理解的不是很深刻,虽然回答的上,但是老是会忘,希望通过这次总结,彻底理解。先字面理解一下setup time和hold timesetup time:建立时间hold time: 保持时间在DFF中,数据需要保证在建立时间前到达,在保持时间后才能更新,否则DFF会发生亚稳态(这里证明亚稳态并非只在异步电路中出现)先看一下基本分.

2021-06-30 17:27:42 1916 1

原创 VCS激励”零延时“的解决方法

VCS激励”零延时“的解决方法由于不同的编译器对tb产生的激励的模拟行为不同,例如vivado,激励都默认是带有“零延时的”(可以理解此时激励带有rising time and falling time,不是理想的瞬时信号)但在VCS中,激励就成为了理想信号,触发器会在当拍就检测到变化,这导致我们无法进行理想的行为测试。如下图:我的解决办法是手动在tb中引入“零延时”,即**#0**.在所有的信号变化后都加上**#0**,即可保证信号理想化,改后信号如下图:...

2021-05-21 17:19:42 2003 6

原创 synopsys-SDC第六章——生成时钟

synopsys-SDC第六章——生成时钟时钟派生方式create_generated_clockedge divide multiplyedge_shift多同源时钟使能组合路径其他注意事项之前准备了一段时间的秋招,好久没有学SDC,现在准备SDC和秋招同时准备,更新。一个复杂的设计都需要多个时钟信号来共同完成功能,设计中异步时钟不能共享确定相位关系的时钟信号,也不必过于关心其时钟源,但是同步信号往往产生于同一个时钟源(如时钟分频器、时钟乘法器、时钟门控)不同模块运行在不同时钟下,如果不考虑

2021-04-06 17:23:03 7039

原创 数字IC秋招手撕代码(五)脉冲检测

用Verilog实现快时钟域到慢时钟域的脉冲检测电路

2021-03-01 15:24:23 1534 2

原创 数字IC秋招手撕代码(四)同步FIFO实现

数字IC秋招备战(四)同步FIFO实现题目分析代码题目用verilog实现一个同步FIFO,深度16,数据位宽8bit分析由于同步FIFO的读写两端时钟是同步的,所以不需要异步考虑。同步FIFO中需要设计的部分是读指针,写指针,空满状态,读数据和写数据和ram的数据流通。代码modual Syn_fifo#( parameter DATA_WIDTH = 8, parameter ADDR_WIDTH = 4, parameter RAM_DEPTH = (

2021-02-23 16:43:19 753 2

原创 数字IC秋招手撕代码(三)无毛刺时钟切换

数字IC前端笔试(三)无毛刺时钟切换题目分析代码题目用verilog实现无毛刺时钟切换电路。输入sel,clka,clkb,sel为1时输出clka,sel为0时输出clkb分析如果单纯地在sel高是选择clka输出,sel为低时选择clkb输出,那么很有可能在时钟切换的时刻出现毛刺,这甚至会导致电路故障。所以要进行专门的时钟切换电路的设计,保证电路切换中不会有毛刺的出现,这一根本原理在时钟切换过程中,要在原时钟和待切换时钟的低电平进行切换。这里分为两种情况:时钟源为倍数关系时钟源是异步时钟

2021-02-22 21:09:55 1256

原创 数字IC秋招手撕代码(二)50%占空比的三分频

数字IC前端笔试(二)50%占空比的三倍频题目设计思路代码题目用verilog实现三分频电路,要求输出50%占空比设计思路如果不限制占空比50%的话,那么用counter做3进制计数,每次counter=1拉高,counter=2拉低即可,但是这样的占空比是1/3。如果要做50占空比的三倍频,则需要一个上升沿的六倍频和一个下降沿的六倍频异或得到。类似的奇分频都可以这样实现。代码module Dive_three( input clk, input rstn, output div

2021-02-21 15:14:18 4096 2

原创 数字IC秋招手撕代码(一)异步双端口ram

数字IC前端笔试(一)异步双端口ram题目设计思路代码题目用verilog实现一个异步双端口ram,深度16,位宽8bit。A口读出,B口写入。支持片选,读写请求,要求代码可综合设计思路因为要设计双端ram,所以是读写分离,时钟分离,控制信号分离。先确定端口:端口名备注rstn低电平复位cs片选clkaA端时钟addraA端地址doutram输出rd_en读端使能clkbB端时钟addrbB端地址dinram写

2021-02-21 12:09:10 1358

CRC校验Verilog代码生成器

CRC校验Verilog代码生成器 可以根据选定的CRC多项式自动生成Verilog代码,减轻项目的开发量。 本人已经验证使用过,很方便!! 有需要的朋友可以自行下载

2023-01-10

OpenVSwitch硬件加速浅谈

需要学习OVS,学习OpenVswitch的硬件加速技术的朋友必看文档!!!

2022-09-28

formality.pptx

ptpx flow的全套流程,跟着完成就可以完全跑通ptpx,实现功耗评估。全亲手制作,如有不足还请多担待。

2020-09-29

verilog细节与陷阱

外文资料,verilog常犯的错误,以及如何避免一些陷阱。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2020-09-24

空空如也

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

TA关注的人

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