- 博客(34)
- 资源 (6)
- 收藏
- 关注
原创 数字IC实践项目(9)—SNN加速器的设计和实现(tiny_ODIN)
SNN硬件加速器是一种专为脉冲神经网络(Spiking Neural Networks)设计的硬件加速器。脉冲神经网络模拟了生物大脑中神经元之间的工作方式,通过离散的脉冲信号传递信息。SNN硬件加速器可以加速脉冲神经网络模型的训练和推理过程,提高神经网络的效率和能耗表现。通过在硬件级别优化脉冲神经网络的计算,SNN硬件加速器可以实现更快的推理速度和更低的能耗,适用于诸如智能感知、边缘计算和神经形态学计算等领域。本项目是对经典SNN的复现,是从开源的ODIN SNN处理器进行调整而来tinyODIN。
2024-03-16 23:30:22 2596 12
原创 数字IC实践项目(8)—CNN加速器(ASIC_Flow;付费项目补充)
之前的付费项目收获了不少同学的好评,也帮助很多同学在24年的秋招中斩获了心仪的工作。本着不进则退的原则,将该CNN项目进行了补充,之前的项目偏向于FPGA Flow以及样机演示,本项目是将CNN硬件实现进一步拓展,重点在于ASIC FLow以及数字IC常用软件的熟练掌握,帮助进一步提升工作竞争力。
2024-01-28 14:51:53 1788 3
原创 数字IC基础协议篇(1)——I2C协议
I2C(Inter-Integrated Circuit)是一种常用的串行通信协议,用于连接在数字系统中的多个集成电路。它是由飞利浦公司(Philips)于上世纪80年代开发的,并在现在被广泛应用于各种电子设备和嵌入式系统中。
2023-09-25 22:33:36 3459 6
原创 数字IC实践项目(7)—CNN加速器的设计和实现(付费项目)
卷积神经网络硬件加速器是一种专门设计用于提高神经网络计算性能的硬件设备。它通过在硬件级别上对神经网络模型的计算任务进行优化,以实现更快、更高效的计算,并显著减少能耗和计算成本。硬件加速器通常包括专用的处理单元、存储器和并行计算架构等组件,可以在较短的时间内处理大规模的神经网络计算任务。整个项目是基于先前相关的研究工作展开的,整体包含涵盖了算法设计、Verilog代码设计、仿真验证以及通过FPGA完成了最终验证。
2023-07-22 21:26:21 4115 122
原创 数字IC经典电路(4)——经典滤波器的实现(滤波器简介及Verilog实现)
数字滤波器是数字信号处理中最常用的一种工具,可用于滤波、降噪和频率分析等应用。与模拟滤波器相比,数字滤波器具有以下优点:精度高:数字滤波器可以使用更多位的定点数和浮点算法进行计算,从而提高精度。稳定性强:数字滤波器不会受到元器件的漂移和偏差的影响,因此具有较高的稳定性。可编程性强:数字滤波器通过改变系数或程序代码来实现不同的滤波器特性,因此具有更高的可编程性。易于集成:数字滤波器的硬件电路结构简单,易于实现集成和小型化。数字滤波器广泛应用于通讯、音频处理、图像处理、自动控制、生物医学工程
2023-04-23 14:44:14 7449 1
原创 数字IC实践项目(4)—浮点数乘累加模块设计FPMAC(开源项目)
浮点数乘累加器是一种硬件电路,用于执行浮点数乘累加(FMA)操作。FMA操作可以同时执行乘法和加法操作,通常用于高性能计算、图形处理、神经网络等领域。FMA操作可以极大地提高运算速度和功率效率,因此浮点数乘累加器是现代计算机体系结构中极为重要的组成部分。
2023-04-15 08:30:00 2750 3
原创 数字IC实践项目(3)——卷积神经网络加速器(开源项目)
该项目是一个简单的卷积神经网络硬件化实现, 没有构建对应的神经网络算法,也并没有完成下板综合测试;其中,卷积和池化模块的构建方法可以用来实现具体的神经网络架构。项目实践环境:FPGA开发环境:前仿: Modelsim SE-64 2019.2综合: Quartus (Quartus Prime 17.1) Standard Edition数字IC开发环境:前仿: VCS 2016综合:DC 2016
2023-04-12 08:30:00 5320 1
原创 数字IC实践项目(2)——高速SDRAM控制器的设计与综合(入门级工程项目)
这个实践项目来源于研究生电子设计竞赛,在涉及到视频图像处理时需要用到DRAM存储数据 ;整个项目过程中先后学习了小梅哥(AC620开发板资料)、开源骚客SDRAM控制器、正点原子FPGA教程、野火FPGA开发教程等网络资料。在此对上述提供学习资料的前辈表示真诚的感谢。
2023-04-05 14:00:34 4503 14
原创 数字IC经典电路(3)——经典除法器的实现(除法器简介及Verilog实现)
除法器是一种用于执行除法运算的电路或器件。在数字电路中,除法器经常被用作重要的计算单元,其主要功能是将一个数除以另一个数并给出商和余数。与加法器和减法器类似,除法器也属于算术逻辑单元(ALU)的一种。不同的是,加法器和减法器能够执行加法和减法运算,但不能执行除法运算。因此,在数字电路中,需要引入除法器来执行除法运算。除法器通常由两个输入,也就是被除数和除数,以及两个输出,也就是商和余数。当除法器接收到被除数和除数时,它会执行除法运算并给出商和余数。
2023-03-27 20:12:05 17423 5
原创 数字IC经典电路(2)——经典乘法器的实现(乘法器简介及Verilog实现)
数字电路中乘法器是一种常见的电子元件,其基本含义是将两个数字相乘,并输出其乘积。与加法器不同,乘法器可以实现更复杂的运算,因此在数字电路系统中有着广泛的应用。乘法器的主要用途是在数字信号处理、计算机科学以及其他数字电路应用中进行精确的数字乘法运算。例如,在数字信号处理中,乘法器通常用于数字滤波器中的系数乘法;在计算机科学中,它们被用于执行浮点运算;而在其他数字电路应用中,乘法器也可以实现时域和频域的变换等。在数字电路系统中,乘法器的重要性无法被忽视。
2023-03-22 12:50:34 20827 19
原创 数字IC经典电路(1)——经典加法器的实现(加法器简介及Verilog实现)
加法器是数字系统最基础的计算单元,用来产生两个数的和,加法器是以二进制作运算。负数可用二的补数来表示,减法器也是加法器,乘法器可以由加法器和移位器实现。加法器和乘法器由于会频繁使用,因此加法器的速度也影响着整个系统的计算速度。对加法器的设计也一直在更新迭代,反观数字IC初学者,往往只是了解个全加器和半加器,而对一些经典的加法器类型和实现方式却很少了解。
2023-03-20 21:37:43 4117
原创 数字IC实践项目(1)——简化的RISC_CPU设计(经典教材中的开山鼻祖)
这个实践项目来源于夏宇闻老师的经典教材——《Verilog 数字系统设计教程》,也是我本科期间的专业教材之一,每次看到这个蓝色的封面都感到很亲切。而对于书中提及到的简化CPU,也是从大学开始就非常感兴趣的一个章节,虽然本科老师只是简单的带过,但是一直对书里提到的CPU结构以及最后使用CPU完成斐波那契数列计算的整个流程充满了兴趣。
2022-11-17 17:09:42 8766 16
原创 数字IC笔面基础,辨别有无入门的利器——STA相关知识点(静态时序分析)
静态时序分析(Static Timing Analysis),缩写为STA。是对数字IC电路的检查验证,注意,这里不是检查电路的功能。而是检查所有时序路径是否满足,就是检查所有触发器是否满足建立时间和保持时间。静态指的是,没有输入激励,只是对所有时序路径进行检查,分析速度快。由于静态时序分析是对时序路径进行检查,在数字IC设计流程中,从综合开始,直到布局布线结束,每对实际的电路和器件进行修改,都需要重新跑一次静态时序分析,确保电路在时序上是正确的。
2022-11-14 18:34:17 2431
原创 数字IC笔面基础,面试100%涉及——跨时钟域处理(CDC相关知识点梳理和Verilog范例)
跨时钟域处理真的是个非常综合的话题,涉及到很多方式,多时钟域的处理对于设计工程师是个富有挑战的话题。CDC(Clock Domain Conversion)不仅涉及理论学习,还要求具备实践经验。只会书本上的知识点,而不去实践,很难彻底理解CDC方法,在面试中简单的几个问题就会露馅。例如:系统有几个时钟?每个时钟频率和相位是什么关系?哪些模块涉及到跨时钟处理?单bit还是多bit?关键路径在哪里?等等。
2022-11-14 14:46:10 2017
原创 数字IC笔面基础,动不动就手撕——奇偶分频器(分频器简介和Verilog实现)
分频器,是将输入信号的频率进行缩小。实际上,在数学IC笔面中常考的分频器设计,就是采用计数器,对输入时钟合理生成中间信号,最后通过逻辑操作输出。本质上,这里考的还是计数器相关的知识点,同时会涉及到时钟相关的基本概念。(1)在实际的项目中,除非是对时钟没有特殊要求,这时候才能使用分频的方法;(2)一般会优先使用PLL、MMCM等成熟IP,得到精确、质量高的时钟信号。(1)偶数分频,始终产生占空比50%。(2)奇数分频,分为占空比50%和非50%。(相较于偶数分频,奇数分频是常考的知识点)
2022-11-08 15:48:01 2866 1
原创 数字IC笔面基础,边沿检测器(延迟加逻辑判断,附Verilog示例)
边沿检测,就是检查某个信号的跳变沿,分为上升沿检测和下降沿检测。思路很简单,就是先对信号延迟一拍,再用组合逻辑对原信号和延迟信号判断。那为什么要做边沿检测呢?在数字电路中,不同模块之间常常需要通信和数据传输,这里会有标志信号,而标志信号的开始、长度和结束时间点是一个比较关键的问题,这里就要做边沿检测,通过边沿检测获取标志信号。有图可以得到:(1)上升沿检测,pos = Din && (~Din_d);(2)下降沿检测,neg = (~Din) && Din_d;
2022-11-04 16:40:15 670
原创 数字IC笔面基础——串并转换器(附Verilog实现)
串并转换是完成串行传输和并行传输这两种传输方式之间转换的技术。通过移位寄存器可以实现串并转换。串转并时,将数据移位保存到寄存器中,再将寄存器中的数值同时输出;并转串时,将数据先移位,再将寄存器中最高位或最低位的数值串行输出。(1)串并转换的关键是在于触发器链,通过依次移位,输出最终结果。(2)串并转换的思想是在设计中平衡面积和速度的要求,并行速度快,串行面积小。(3)串并转换常常在接口中出现,将高速并行转为串行数据输出,或将低速的串行数据转为并行数据后高速计算。
2022-11-04 15:53:10 2654 1
原创 数字IC笔面基础,师傅领进门,修行靠个人——人人心中都有一个状态机(状态机简介及Verilog模板)
(1)状态机(Finite State Machine, FSM),是用来控制在有限状态之间跳变和时序电路,包含组合逻辑和时序逻辑,用来控制数字IC的流程。(2)几乎所有的Verilog语法书中都会介绍状态机,而每本语法书中对状态机的描述都各有千秋,每个人对状态机的理解和代码风格也不同。真的算是师傅领进门,修行靠个人。(3)状态机的基本要素包含状态个数、状态转移条件、输出以及输入。(4)描述状态机有状态转移图(常考)、状态转移列表以及HDL语言描述(会基础的状态机写法)。
2022-11-03 15:56:38 866
原创 数字IC笔面基础,序列检测器——考得还是状态机(简介及verilog示例)
序列检测器也算是数字IC笔面中常考的一个知识点了,这里包含有移位寄存器解法和状态机解法,还有重复序列检测和不重复序列检测。但是,现在的好多笔试都要求采用状态机的解法来实现。为什么?你以为他考的是序列检测,结果考得还是状态机。为啥?因为状态机重要啊,不是所有设计都需要序列检测,但所有设计都肯定需要状态机。只要和状态机扯上关系,那能聊的就多了去了,状态机分米利和摩尔,也分一段、两段、三段式、阻塞和非阻塞区别等等。分分钟就能了解到你的基本功是不是扎实的,如果只是看序列检测,那你可太年轻了,还是得多看看状态机。
2022-11-02 21:24:02 582
原创 数字IC笔面基础,三大核心代码架构之计数器(计数器设计要素及Verilog示例)
计数器设计是数字IC设计的核心,也是最常用的代码片段,通过记录时钟周期个数,可以控制电路的时序。通过计数器可以实现测量、计数、状态控制以及分频等功能,计数器由触发器和逻辑门共同构成。在《手把手教你学FPGA设计——基于大道至简的至简设计法》书中,将模块划分为三大架构,分别是FIFO架构、状态机架构以及计数器架构。从我个人理解,计数器和状态机分别对应了数字电路中的时序以及计算流程,而FIFO架构则是对应两个计算模块之间的连接关系以及对应的数据流。
2022-11-02 16:09:08 1855
原创 数字IC笔面基础,项目常用IP——双口RAM(简介及Verilog实现)
RAM(Random Access Memory),随机存储器,是一种用来暂时存储中间数据的存储器,掉电易失。按照类型可分为单口 RAM(Single RAM)和双口 RAM(Dual RAM),其中双口RAM又有简单双口 RAM(Simple-Dual RAM)、真双口 RAM(True-Dual RAM)。在异步FIFO的内部就是一个双口RAM用来存取数据。RAM是最基础的IP,在FPGA和ASIC设计中,会经常调用成熟的RAM。
2022-11-02 10:23:29 6474
原创 数字IC笔面基础之触发器——DFF、TFF、JKFF(附Verilog实现)
触发器是数字IC最基础的知识点,区别于锁存器,触发器是只有在时钟信号触发时才能动作的存储单元,每个触发器可以存储1位二值信号。触发器有两个基本特点:(1)具有自行保持稳定状态,包含逻辑0和逻辑1。(2)可以根据输入信号置为1或0状态。触发器作为数字IC最基础的内容,常常会考手撕代码、门级电路组成、与锁存器的优缺点、代码风格避免生成latch等内容。在跨时钟域中也会用两级DFF避免亚稳态的产生,我在笔面中遇见最多的是DFF和TFF,会结合建立时间、保持时间、跨时钟域、代码风格等一起考。
2022-11-01 15:40:47 15285 2
原创 数字IC笔面常考,跨时钟域神器。——异步FIFO(简介及手撕代码)
掌握基本的数字模块是数字IC工程师的基本要求,最近几年在笔试和面试的时候会遇到要求手撕代码,一方面是考察面试者有没有良好的coding style, 重要的则是考察面试者对常用模块的了解程度。面对这种问题,没有比较好的解决方法,只能是多看、多写,时常复习复习。之所以要把异步FIFO放到分享的第一篇技术博客,是因为本人在学习过程中,从项目中简单了解异步FIFO的IP核、到学习空满信号判断再到照着资料手敲代码,最后到面试中针对异步FIFO有问必答,一路走过来,越发了解到异步FIFO的重要性。
2022-10-26 10:15:43 6142 2
原创 老生常谈-Coding Style为什么这么重要?(Verilog编码风格)
经常遇见两个人在Debug的时候,第一句话往往是“你的代码风格挺好的”或者“你这代码好乱啊,我都看不懂”之类的话。其实,Verilog编码风格一直是一个令人反感的话题,因为没有完美的编码风格,也不能说一个人的编码风格不好,这好像就在说他字写得丑、人长得不好看一样,伤害到他内心的自尊。其实每个人都有属于自己的代码风格,阅读与自己风格相似的代码总是更容易理解,心情也十分开心,而一旦遇见一个和自己风格迥异的代码段,往往都没有看下去的欲望,满脑的不舒服。
2022-10-22 17:05:43 1055
原创 2022年数字IC设计提前批笔试面试全流程分享(前期海投,后期顺利拿到Offer)
继2021年IC行业的热火之后,突如其来的行业寒潮席卷了IC行业的所有人,从菜鸟到大佬,每个人都能感受到这次重大变故。在今年这种情况下,能找到工作实属不易,hc缩招,提前批大佬云集,很多公司直接看简历挂人。也有很多临近专业的同学一起卷数字设计前端,竞争压力比去年大的不是一点点。PS:本人国家示范型微电子学院本科+硕士,本科专业微电子科学与工程,比较偏后端,硕士阶段专业是集成电路工程。
2022-10-19 10:02:45 3280 9
原创 小梅哥AC620学习记录—UART_EEPROM_part2
串口传输数据到EEPROM解决第二步中命令解析部分的仿真后,开始搭建系统整体并进行仿真。
2021-12-14 17:04:03 798
原创 python-练手
神经网络权重处理(记录)对已生成的权重处理(txt文件)原文件观察到虽然权重数量庞大,但是很多数据是重复的,大体处理过程如下:去除权重文件中重复的数据;查看新文件,手动去除备注(权重文件方便记忆网络结构);分析权重分布,并绘制分布图;权重处理参考代码片***********************权重处理部分代码(供参考)********file = open("test.txt","r")list = file.readlines()lists = []for fields
2021-03-26 20:51:40 172
原创 忆阻器名人录
1.Qiangfei Xia夏强飞博士是美国马萨诸塞州立大学麻省分校的电气与计算机工程教授,也是纳米器件和集成系统实验室的负责人。马萨诸塞大学个人详情页实验室主页nature research
2020-10-27 16:24:15 1084
经典乘法器的Verilog实现
2023-12-09
高速SDRAM控制器Verilog代码,经过仿真和综合验证
2023-04-06
开源骚客SDRAM第一季功能仿真代码
2022-03-01
RISC_8bitCPU.zip
2021-12-03
基于忆阻器的电路调研报告(第二版).pptx
2020-10-22
节拍速度渐变的彩灯控制器.zip
2020-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人