数字IC设计
文章平均质量分 86
基于Verilog完成数字IC设计,讲解笔试面试常考知识点。
IC_Brother
90后IC工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数字IC经典电路(6)—Ring Oscillator(环形振荡器)与工艺角监控
摘要 环形振荡器是一种由奇数个反相器首尾相连构成的简单电路,其振荡频率受电源电压、温度和工艺制程影响显著。该电路广泛应用于片上时钟生成、温度/电源噪声传感器,以及关键的工艺角监控。通过测量振荡频率可快速判断芯片制造工艺角(如TT、FF、SS等9种组合),为性能分级和良率分析提供依据。测试结构通过增加反相器级数提高测量精度,晶圆级频率分布图可直观反映制造均匀性。工艺角监控利用频率对晶体管延迟的敏感性,将微观工艺参数转化为可测电学特性,是提升芯片质量稳定性的重要手段。原创 2025-11-22 21:28:07 · 378 阅读 · 0 评论 -
数字IC经典电路(5)——glitch_free_clock_switch的实现(无毛刺时钟切换电路简介及Verilog实现)
Figure 2是一种传统风格的glitch_free_clock_switch, 门控信号的产生过程如下,由外部切换信号和内部控制信号共同产生时钟切换控制信号,并经过两级电平信号同步器,再以时钟下降沿采样后,gating 时钟,得到无毛刺的输出时钟,并经过逻辑门输出,由于SEL信号同时钟信号CLK_A/CLK_B为异步关系,因此,在无毛刺 clock mux中最好使用双同步器而不是单DFF。即便在同一款芯片的不同部分,工艺上的微小差异也可能导致不同的信号响应速度,从而影响毛刺的持续时间。原创 2024-12-15 09:30:00 · 2808 阅读 · 0 评论 -
数字IC经典电路(4)——经典滤波器的实现(滤波器简介及Verilog实现)
数字滤波器是数字信号处理中最常用的一种工具,可用于滤波、降噪和频率分析等应用。与模拟滤波器相比,数字滤波器具有以下优点:精度高:数字滤波器可以使用更多位的定点数和浮点算法进行计算,从而提高精度。稳定性强:数字滤波器不会受到元器件的漂移和偏差的影响,因此具有较高的稳定性。可编程性强:数字滤波器通过改变系数或程序代码来实现不同的滤波器特性,因此具有更高的可编程性。易于集成:数字滤波器的硬件电路结构简单,易于实现集成和小型化。数字滤波器广泛应用于通讯、音频处理、图像处理、自动控制、生物医学工程原创 2023-04-23 14:44:14 · 9945 阅读 · 1 评论 -
数字IC经典电路(3)——经典除法器的实现(除法器简介及Verilog实现)
除法器是一种用于执行除法运算的电路或器件。在数字电路中,除法器经常被用作重要的计算单元,其主要功能是将一个数除以另一个数并给出商和余数。与加法器和减法器类似,除法器也属于算术逻辑单元(ALU)的一种。不同的是,加法器和减法器能够执行加法和减法运算,但不能执行除法运算。因此,在数字电路中,需要引入除法器来执行除法运算。除法器通常由两个输入,也就是被除数和除数,以及两个输出,也就是商和余数。当除法器接收到被除数和除数时,它会执行除法运算并给出商和余数。原创 2023-03-27 20:12:05 · 23574 阅读 · 6 评论 -
数字IC经典电路(2)——经典乘法器的实现(乘法器简介及Verilog实现)
数字电路中乘法器是一种常见的电子元件,其基本含义是将两个数字相乘,并输出其乘积。与加法器不同,乘法器可以实现更复杂的运算,因此在数字电路系统中有着广泛的应用。乘法器的主要用途是在数字信号处理、计算机科学以及其他数字电路应用中进行精确的数字乘法运算。例如,在数字信号处理中,乘法器通常用于数字滤波器中的系数乘法;在计算机科学中,它们被用于执行浮点运算;而在其他数字电路应用中,乘法器也可以实现时域和频域的变换等。在数字电路系统中,乘法器的重要性无法被忽视。原创 2023-03-22 12:50:34 · 29569 阅读 · 24 评论 -
数字IC经典电路(1)——经典加法器的实现(加法器简介及Verilog实现)
加法器是数字系统最基础的计算单元,用来产生两个数的和,加法器是以二进制作运算。负数可用二的补数来表示,减法器也是加法器,乘法器可以由加法器和移位器实现。加法器和乘法器由于会频繁使用,因此加法器的速度也影响着整个系统的计算速度。对加法器的设计也一直在更新迭代,反观数字IC初学者,往往只是了解个全加器和半加器,而对一些经典的加法器类型和实现方式却很少了解。原创 2023-03-20 21:37:43 · 5032 阅读 · 0 评论 -
数字IC笔面基础,辨别有无入门的利器——STA相关知识点(静态时序分析)
静态时序分析(Static Timing Analysis),缩写为STA。是对数字IC电路的检查验证,注意,这里不是检查电路的功能。而是检查所有时序路径是否满足,就是检查所有触发器是否满足建立时间和保持时间。静态指的是,没有输入激励,只是对所有时序路径进行检查,分析速度快。由于静态时序分析是对时序路径进行检查,在数字IC设计流程中,从综合开始,直到布局布线结束,每对实际的电路和器件进行修改,都需要重新跑一次静态时序分析,确保电路在时序上是正确的。原创 2022-11-14 18:34:17 · 2884 阅读 · 0 评论 -
数字IC笔面基础,面试100%涉及——跨时钟域处理(CDC相关知识点梳理和Verilog范例)
跨时钟域处理真的是个非常综合的话题,涉及到很多方式,多时钟域的处理对于设计工程师是个富有挑战的话题。CDC(Clock Domain Conversion)不仅涉及理论学习,还要求具备实践经验。只会书本上的知识点,而不去实践,很难彻底理解CDC方法,在面试中简单的几个问题就会露馅。例如:系统有几个时钟?每个时钟频率和相位是什么关系?哪些模块涉及到跨时钟处理?单bit还是多bit?关键路径在哪里?等等。原创 2022-11-14 14:46:10 · 2841 阅读 · 0 评论 -
数字IC笔面基础,动不动就手撕——奇偶分频器(分频器简介和Verilog实现)
分频器,是将输入信号的频率进行缩小。实际上,在数学IC笔面中常考的分频器设计,就是采用计数器,对输入时钟合理生成中间信号,最后通过逻辑操作输出。本质上,这里考的还是计数器相关的知识点,同时会涉及到时钟相关的基本概念。(1)在实际的项目中,除非是对时钟没有特殊要求,这时候才能使用分频的方法;(2)一般会优先使用PLL、MMCM等成熟IP,得到精确、质量高的时钟信号。(1)偶数分频,始终产生占空比50%。(2)奇数分频,分为占空比50%和非50%。(相较于偶数分频,奇数分频是常考的知识点)原创 2022-11-08 15:48:01 · 3768 阅读 · 1 评论 -
数字IC笔面基础,边沿检测器(延迟加逻辑判断,附Verilog示例)
边沿检测,就是检查某个信号的跳变沿,分为上升沿检测和下降沿检测。思路很简单,就是先对信号延迟一拍,再用组合逻辑对原信号和延迟信号判断。那为什么要做边沿检测呢?在数字电路中,不同模块之间常常需要通信和数据传输,这里会有标志信号,而标志信号的开始、长度和结束时间点是一个比较关键的问题,这里就要做边沿检测,通过边沿检测获取标志信号。有图可以得到:(1)上升沿检测,pos = Din && (~Din_d);(2)下降沿检测,neg = (~Din) && Din_d;原创 2022-11-04 16:40:15 · 904 阅读 · 0 评论 -
数字IC笔面基础——串并转换器(附Verilog实现)
串并转换是完成串行传输和并行传输这两种传输方式之间转换的技术。通过移位寄存器可以实现串并转换。串转并时,将数据移位保存到寄存器中,再将寄存器中的数值同时输出;并转串时,将数据先移位,再将寄存器中最高位或最低位的数值串行输出。(1)串并转换的关键是在于触发器链,通过依次移位,输出最终结果。(2)串并转换的思想是在设计中平衡面积和速度的要求,并行速度快,串行面积小。(3)串并转换常常在接口中出现,将高速并行转为串行数据输出,或将低速的串行数据转为并行数据后高速计算。原创 2022-11-04 15:53:10 · 3424 阅读 · 1 评论 -
数字IC笔面基础,师傅领进门,修行靠个人——人人心中都有一个状态机(状态机简介及Verilog模板)
(1)状态机(Finite State Machine, FSM),是用来控制在有限状态之间跳变和时序电路,包含组合逻辑和时序逻辑,用来控制数字IC的流程。(2)几乎所有的Verilog语法书中都会介绍状态机,而每本语法书中对状态机的描述都各有千秋,每个人对状态机的理解和代码风格也不同。真的算是师傅领进门,修行靠个人。(3)状态机的基本要素包含状态个数、状态转移条件、输出以及输入。(4)描述状态机有状态转移图(常考)、状态转移列表以及HDL语言描述(会基础的状态机写法)。原创 2022-11-03 15:56:38 · 1154 阅读 · 0 评论 -
数字IC笔面基础,序列检测器——考得还是状态机(简介及verilog示例)
序列检测器也算是数字IC笔面中常考的一个知识点了,这里包含有移位寄存器解法和状态机解法,还有重复序列检测和不重复序列检测。但是,现在的好多笔试都要求采用状态机的解法来实现。为什么?你以为他考的是序列检测,结果考得还是状态机。为啥?因为状态机重要啊,不是所有设计都需要序列检测,但所有设计都肯定需要状态机。只要和状态机扯上关系,那能聊的就多了去了,状态机分米利和摩尔,也分一段、两段、三段式、阻塞和非阻塞区别等等。分分钟就能了解到你的基本功是不是扎实的,如果只是看序列检测,那你可太年轻了,还是得多看看状态机。原创 2022-11-02 21:24:02 · 750 阅读 · 0 评论 -
数字IC笔面基础,三大核心代码架构之计数器(计数器设计要素及Verilog示例)
计数器设计是数字IC设计的核心,也是最常用的代码片段,通过记录时钟周期个数,可以控制电路的时序。通过计数器可以实现测量、计数、状态控制以及分频等功能,计数器由触发器和逻辑门共同构成。在《手把手教你学FPGA设计——基于大道至简的至简设计法》书中,将模块划分为三大架构,分别是FIFO架构、状态机架构以及计数器架构。从我个人理解,计数器和状态机分别对应了数字电路中的时序以及计算流程,而FIFO架构则是对应两个计算模块之间的连接关系以及对应的数据流。原创 2022-11-02 16:09:08 · 2477 阅读 · 0 评论 -
数字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 · 7708 阅读 · 0 评论 -
数字IC笔面基础之触发器——DFF、TFF、JKFF(附Verilog实现)
触发器是数字IC最基础的知识点,区别于锁存器,触发器是只有在时钟信号触发时才能动作的存储单元,每个触发器可以存储1位二值信号。触发器有两个基本特点:(1)具有自行保持稳定状态,包含逻辑0和逻辑1。(2)可以根据输入信号置为1或0状态。触发器作为数字IC最基础的内容,常常会考手撕代码、门级电路组成、与锁存器的优缺点、代码风格避免生成latch等内容。在跨时钟域中也会用两级DFF避免亚稳态的产生,我在笔面中遇见最多的是DFF和TFF,会结合建立时间、保持时间、跨时钟域、代码风格等一起考。原创 2022-11-01 15:40:47 · 21999 阅读 · 2 评论 -
数字IC笔面常考,跨时钟域神器。——异步FIFO(简介及手撕代码)
掌握基本的数字模块是数字IC工程师的基本要求,最近几年在笔试和面试的时候会遇到要求手撕代码,一方面是考察面试者有没有良好的coding style, 重要的则是考察面试者对常用模块的了解程度。面对这种问题,没有比较好的解决方法,只能是多看、多写,时常复习复习。之所以要把异步FIFO放到分享的第一篇技术博客,是因为本人在学习过程中,从项目中简单了解异步FIFO的IP核、到学习空满信号判断再到照着资料手敲代码,最后到面试中针对异步FIFO有问必答,一路走过来,越发了解到异步FIFO的重要性。原创 2022-10-26 10:15:43 · 8516 阅读 · 2 评论 -
老生常谈-Coding Style为什么这么重要?(Verilog编码风格)
经常遇见两个人在Debug的时候,第一句话往往是“你的代码风格挺好的”或者“你这代码好乱啊,我都看不懂”之类的话。其实,Verilog编码风格一直是一个令人反感的话题,因为没有完美的编码风格,也不能说一个人的编码风格不好,这好像就在说他字写得丑、人长得不好看一样,伤害到他内心的自尊。其实每个人都有属于自己的代码风格,阅读与自己风格相似的代码总是更容易理解,心情也十分开心,而一旦遇见一个和自己风格迥异的代码段,往往都没有看下去的欲望,满脑的不舒服。原创 2022-10-22 17:05:43 · 1465 阅读 · 0 评论 -
组织管理-养成良好的工程文件管理习惯(附Windows和Linux生成脚本)
我们需要养成良好的工程文件管理的习惯原创 2022-10-21 10:46:29 · 687 阅读 · 0 评论 -
万事开头易-数字IC专业术语
对于初学者来讲,掌握一些常用的专业术语非常必要原创 2022-10-19 20:26:50 · 1267 阅读 · 0 评论 -
小梅哥AC620学习记录—UART_EEPROM_part2
串口传输数据到EEPROM解决第二步中命令解析部分的仿真后,开始搭建系统整体并进行仿真。原创 2021-12-14 17:04:03 · 1030 阅读 · 0 评论 -
小梅哥AC620学习记录-UART_EEPROM
BUG记录原创 2021-12-14 13:58:12 · 786 阅读 · 0 评论
分享