数字IC设计入门(8)初识数字芯片设计前端

article/2025/10/13 15:02:35
  1. 前端做什么工作

数字前端设计也称逻辑设计,前端以设计架构为起点,以功能正确且满足目标时序的网表为终点,用逻辑电路实现预期的功能。主要包括:规则书制定、系统架构设计、部件详细设计、HDL编码、仿真验证、SDC编写、逻辑综合、STA检查、形式化验证等,系统架构设计最难掌握,需要有丰富的设计经验,对应用场景也需要有深入的理解。

前端设计师需要掌握的最基本技能就是实现编码,但编码不是数字前端设计的全部,它只是前端设计过程中的部分工作。下面编写一个MUX逻辑,MUX的行为可以描述为:只要信号a或b或sel发生变化,如果sel为0则选择a输出;否则选择b输出。
mux逻辑
学习前端设计首先要掌握数字电路基础知识并建立硬件意识,基本的数字电路像与或非门、D触发器、计数器、移位寄存器、状态机、多路选择器、译码器等一定要掌握,所有复杂的电路都可由这些基本电路构成,软件设计和逻辑设计的不同要明白,软件是顺序执行思维,而逻辑设计需要并发思维。数字电路是由很多的与非门及D触发器构成,上电之后所有部件都同时运行,不会因为A触发器的代码描述在 B触发器之前A触发器就先工作,事实上,RTL级代码书写的先后顺序在综合成网表文件后就消失了,取代的是基本逻辑电路之间的互联关系描述。数字电路功能中存在先后顺序的关系,但这种顺序不是靠代码的先后顺序来实现,它的先后顺序是基于时间轴(时钟)来实现,它的承载体是时序逻辑(触发器)。
因此逻辑设计需要的是一种并发的思维,设计师需要用并发的思维去考虑电路的设计。

  1. 前端设计流程

规格制定(一般多个部门共同参与)
规格制定是芯片设计中最重要的步骤之一,这个步骤就像是在设计建筑前, 先决定要几间房间、浴室,有什么建筑法规需要遵守,在确定好所有的功能之后再进行设计,这样才不用再花额外的时间进行后续修改。如果规格还制定好就开始设计,很难确保设计中不出任何差错。

规格制定前需要进行市场调研,收集客户需求,第一步是确定芯片的功能、功耗、性能,对大方向做设定;接着需要确定兼容那些规范,如无线网卡的芯片就需要符合 IEEE 802.11 等规范;最后则是确立这颗 IC 的制作方法,将不同功能分配成不同的单元,并确立不同单元间连结的方法,如此便完成规格的制定。
系统架构和部件详细设计(做设计方案)
这个步骤就像初步有了建筑的规划,将整体轮廓描绘了出来,方便后续制图。根据规则需求编写详细设计文档,明确具体架构,划分功能模块。对不确定的功能进行建模测试确保方案可顺利实现,这个阶段就是确定芯片设计的细节。
下图为基于ARM的自动驾驶芯片系统架构图。
车载芯片架构图
做好设计方案非常重要,这里说的方案绝不是只摆几个框图,设计的时候需要做总体设计方案、逻辑详细设计方案,这两种方案包括了很多东西,总体方案主要是一级功能模块的划分及接口时序的定义,而逻辑详细方案就是代码的文字及图形描述(模块内部所有关键信号的时序最好都设计好)。
HDL编码
很多人在做逻辑设计时喜欢一上来就狂写代码,写到一半后发现了功能问题,只好推倒重来,反复好几次才能做到仿真基本正确,最后通过修补凑时序达到对的功能。这个做法除了设计周期长外,代码的质量也难以保证,往往存在很多冗余的逻辑,甚至会有一些隐藏较深的bug。所以数字逻辑设计一定要方案先行,根据方案写代码,这样才能在写代码时做到胸有成竹,避免逻辑混乱的情况。其实在方案阶段把时序设计好后,模块内部各个信号之间的逻辑关系也就理得差不多了,之后就是将它翻译成代码的体力劳动了。
HDL编码这个阶段是要使用硬体描述语言(HDL)描述实现功能模块,也就是把电路描写出来。常使用的HDL有 Verilog、VHDL等,国内一般使用verilog编写RTL(寄存器传输级)代码。
功能验证
功能验证就是检验编码设计的正确性,不符合规格的要重新设计和编码。设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准。设计师一般只做基本通路验证,功能和代码的详细验证一般由验证工程师完成,验证和设计可同步进行。
常用仿真工具:Synopsys的VCS,Mentor ModelSim(Linux版本为Questasim),Cadence Xcelium(老版本叫incisive)。
编写SDC和代码检查
SDC是一种约束文件,这里的约束是针对综合和布局布线工具而言的。为什么会有约束这个东西出现呢?主要原因是EDA软件比较笨,难以理解设计师的心思,如果设计师不把更详细的信息告诉它的话它就干不好活,所以设计师需要用SDC来把设计意图(时序、面积和功耗等)传达给EDA工具。这里说的代码检查是指用EDA工具(spyglass最常用)来检查和诊断设计中可能存在的潜在问题,然后用其分析和追踪问题的根源,RTL级一般做lint、CDC(多时钟域检查)、Constraint(约束)三个方面的检查。
常用的检查工具:spyglass
逻辑综合(可能放后端做或者前后端交接设计师做)
逻辑综合就是把HDL代码翻译成门级网表(netlist),综合需RTL代码和SDC文件。逻辑综合需要基于特定的综合库,不同库中的门电路基本标准单元(standard cell)的面积,时序参数是不一样的,因此综合出来的电路在时序,面积上是有差异的。一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真)。
常用综合工具:Synopsys的dc,cadence的genus
静态时序分析(STA,可能放后端做)
Static Timing Analysis(STA),静态时序分析属于验证范畴,它主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。这个是数字电路基础知识,一个寄存器出现这两个时序违例时,是没有办法正确采样数据和输出数据的,所以以寄存器为基础的数字芯片功能肯定会出现问题。
STA工具:Synopsys的Prime Time。
形式验证(可能放后端做)
形式化验证属验证范畴,它是从功能上(STA是时序上)对综合后的网表进行验证。常用的就是等价性检查方法,以功能验证后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先HDL描述的电路功能。
形式验证工具:Synopsys的Formality,cadence Conformal

  1. 前端设计入门要学的知识

前端设计所需知识很广,最好的学习方法就是项目实践,光看书和视频教程是学不会的,真正入门得靠项目。重点在于掌握设计思想和分析问题的方法,形成良好书写习惯(遵循代码书写、命名规范),最好把常用的基本的电路标准化、固定化。高手水平高并不是体现在他能写出一些很奇特的电路,相反水平高体现在他们总能将复杂的电路用一些很朴素的基本电路去描述。

前端设计一般需要掌握的知识有Linux操作基础、数字电子基础、verilog语言、计算机体系结构、脚本语言、EDA仿真工具等。
以下书籍可以作为入门教材。
《数字电子技术基础(第五版)》阎石 主编
《Verilog数字系统设计教程》
《Verilog编程艺术》
《专用集成电路设计实用教程》
《SOC设计方法与实现》
《数字设计和计算机体系结构》
《综合与时序分析的设计约束》
《SystemVerilog测试验证平台(中文版)》
《计算机组成原理》

关于更多芯片介绍类文章和芯片设计资料请看以下链接。
https://blog.csdn.net/weixin_43745611/article/details/108305382

本文是通过收集网上资源整理,版权属于原作者。


http://chatgpt.dhexx.cn/article/adhK0aKi.shtml

相关文章

php37t芯片,模拟芯片和数字芯片的区别

模拟芯片和数字芯片的区别 1、模拟芯片用来产生、放大和处理各种模拟信号,而数字模拟芯片用来产生、放大和处理各种数字信号; 2、模拟芯片利用的是晶体管的放大作用,数字模拟芯片利用的是晶体的开关作用。 芯片 晶体管发明并大量生产之后&…

1.数字芯片后端设计小概述

大家好,第一篇文章想来简单介绍一下数字芯片后端的基本流程。对于没有接触过后端设计的新人可能会有用。 后端设计总体来说,是将前端写好的RTL代码通过综合(synthesize)转换成物理网表(netlist)&#xff0c…

数字IC设计入门(9)初识数字芯片验证

什么是验证及验证方法学? 芯片验证就是采用相应的验证语言,验证工具,验证方法,在芯片生产之前验证芯片设计是否符合芯片定义的需求规格,是否已经完全释放了风险,发现并更正了所有的缺陷,站在全流程的角度…

【数字IC基础知识1之数字芯片设计流程

一,数字芯片设计流程 数字芯片设计分为前端设计和后端设计,其中前端(又称逻辑设计)包括以下部分: 1,需求分析 2,功能架构设计 3,RTL代码设计 4,功能仿真验证&#xff0…

数字芯片设计流程之verilog设计

数字芯片设计流程: 功能验证之前与工艺库没多大联系,验证芯片设计的功能是否正确,针对抽象的代码进行功能验证理想值。 一致性验证确保生成的网表和代码设计功能一致;DFT之后是数字后端。 静态时序分析,从逻辑综合开…

数字芯片设计全流程

设计全流程 IDM:Flabless-Fab-OSTA Flabless:设计需求-RTL文件(寄存器传输级电路)-后端设计-GDS版图 EDA工具、半导体IP Fab:工艺制造-晶圆裸片 半导体设备、材料 OSTA:封装测试-芯片 数字ASIC设计流程 SOC设计流程 前端设计…

常见数字芯片功能描述总结

文章目录 1. 74HCT541芯片:【三态输出驱动器】1.1 学名1.2 功能描述1.3 引脚图(摘自手册)1.3.1 引脚描述1.3.2 功能真值表 1.4 参考电路 2. 74HCT574芯片:带锁存功能的【三态上升沿触发器】2.1 学名2.2 功能描述2.3 引脚图&#x…

java编程常用软件

有大神曾说“给我一个记事本,我还你一个项目”,作为小白的我,以前也对这句话深信不疑,但当我参加人生第一次编程考试的时候,我发现我用记事本码代码的速度实在是太慢了,一样的代码,别人用eclips…

软件:推荐八款电脑实用软件,你都用过吗?

今天给大家推荐八款电脑非常实用的软件,希望对大家能有所帮助! 1、Audio Hijack Pro 一款Mac 上的录音软件。它比较强大的功能是可以录制多个应用的声音,然后组合成一个结果,然后输出。2、快贴 一个跨平台剪切板同步软件。你只需要…

Java程序员常用软件

目录 1、IDE 2、应用服务器 3、分布式版本控制 4、项目管理 5、数据库管理工具 6、Web服务器 7、接口测试工具 8、SSH工具 9、抓包工具 10、其他一些软件 工欲善其事必先利其器,作为有多年开发经验的Java程序员,应该都会有一些常用的软件来辅助…

电脑软件:推荐5款实用的效率软件

目录 1、图片管理神器-Image Tuner 2、系统维护神器-Dism 3、桌面效率神器-蜂窝桌面整理 4、键鼠模拟软件-按键精灵 5、书签管理神器-Toby for Chrome 今天小编大家推荐5款实用的效率神器,希望对大家能有所帮助! 1、图片管理神器-Image Tuner 1000张图片…

五个计算机常用应用软件,这些电脑软件很常用 日常必备软件就是它了

5个超良心电脑软件,每一个功能都十分强大!请低调使用! 很多软件你听到很多人在说,但不一定好用;有的软件没有听过但却十分的好用!今天就为大家介绍五款小众但很好用的电脑软件! 一:Internet Download Manager(IDM) 这是一个非常好用的下载器&…

备份计算机软件,如何备份电脑里面的软件

最近,小编电脑系统重装了,发现需要使用的软件要一个一个重新安装非常麻烦。吃一堑长一智,小编觉得有必要对电脑里的常用软件进行一下备份,那么,如何备份电脑里面的软件?下面,给大家推荐一些软件备份工具,希望大家可以帮到大家! 软件备份工具推荐: 以下排名不分先后 一…

用计算机打开软件,电脑上如何打开软件?

电脑已经成为现代企业办公的重要组成部分,而电脑上各种软件的使用又是必不可少的。那么如何在电脑上打开一款软件呢?小编汇总了几种常用的方法,希望对你有所帮助哦! 方法1:双击桌面快捷方式 这是一种最常用也最快捷简单…

计算机科学的常用软件,常用的电脑必备软件清单,6款最顶尖实用的黑科技软件,你都装了没?...

原标题:常用的电脑必备软件清单,6款最顶尖实用的黑科技软件,你都装了没? 现如今,在工作、生活以及学习当中越来越离不开电脑和手机,其中电脑可以说在我们学习和工作中我们经常,这就导致在每个人…

计算机软件图标不正常,电脑桌面软件图标显示异常

电脑桌面某个图标显示不正常 电脑桌面所有的图标不正常是系统问题或者设置问题,某个图标的问题,是该图标所属的软件出现了问题,可以找到这软件,然后重新下载一个,覆盖安装后即可解决。 图标是具有明确指代含义的计算机图形。 其中桌面图标是软件标识,界面中的图标是功能标…

Windows常用必备软件整理,太全了,值得收藏

目录 1、Office系列 2、杀毒软件 3、视频播放和视频处理 4、音乐播放 5、压缩解压 6、输入法 7、PDF阅读软件 8、文件加密 9、网盘 10、社交聊天 11、日常办公软件 ‍12、图片/照片处理‍ 13、系统自带的工具 Windows常用必备软件整理,太全了,值得收藏&…

有哪些实用的电脑软件值得推荐?

本期给大家推荐10款实用软件,让你的电脑舒适度提升9999%; 同时,也为大家盘点了10款流氓/捆绑软件,建议彻底删除/卸载! 10款必装的实用软件: 1、火绒安全 这款软件已经有无数人推荐了,相比起那些喜欢捆绑的流氓软件,这款安全软件绝对算是一股清流了。 除了拥有简洁的界面…

个人电脑日常必备软件推荐,无广告、好用、持续更新

目录 引言1. 杀毒软件2. 浏览器3. 视频浏览器4. 解压缩软件5. 下载器6. 软件卸载器7. 桌面整理软件8. Moo0工具集9. OBS录屏及导播总结 引言 最近被实验室的电脑实在整的无语了,各种垃圾弹窗、各种捆绑安装、各种涉h推荐,严重影响工作效率。最后删除各种…

bim软件电脑配置测试,BIM软件对电脑配置要求

原标题:BIM软件对电脑配置要求 很多刚接触BIM的小伙换,对于其强大的功能感到惊叹的同时,纷纷表示出对于其浓厚的学习兴趣。因为BIM对于数据处理能力与CAD比超越太多了,导致BIM软件对电脑配置要求也是很高,这里笔者就以…