verilog移位寄存器,芯片设计全流程?
芯片设计分为前端设计和后端设计,前端设计(也称逻辑设计)和后端设计(也称物理设计)并没有统一严格的界限,涉及到与工艺有关的设计就是后端设计。

前端设计全流程:
1. 规格制定
芯片规格,也就像功能列表一样,是客户向芯片设计公司(称为Fabless,无晶圆设计公司)提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。
2. 详细设计
Fabless根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。
3. HDL编码
使用硬件描述语言(VHDL,Verilog HDL,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过HDL语言描述出来,形成RTL(寄存器传输级)代码。
4. 仿真验证
仿真验证就是检验编码设计的正确性,检验的标准就是第一步制定的规格。看设计是否精确地满足了规格中的所有要求。规格是设计正确与否的黄金标准,一切违反,不符合规格要求的,就需要重新修改设计和编码。 设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准。
仿真验证工具Synopsys的VCS,还有Cadence的NC-Verilog。
5. 逻辑综合――Design Compiler
仿真验证通过,进行逻辑综合。逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表netlist。综合需要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标准。逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元(STAndard cell)的面积,时序参数是不一样的。所以,选用的综合库不一样,综合出来的电路在时序,面积上是有差异的。一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真,之前的称为前仿真)。
逻辑综合工具Synopsys的Design Compiler。
6. STA
Static Timing Analysis(STA),静态时序分析,这也属于验证范畴,它主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。这个是数字电路基础知识,一个寄存器出现这两个时序违例时,是没有办法正确采样数据和输出数据的,所以以寄存器为基础的数字芯片功能肯定会出现问题。
STA工具有Synopsys的Prime Time。
7. 形式验证
这也是验证范畴,它是从功能上(STA是时序上)对综合后的网表进行验证。常用的就是等价性检查方法,以功能验证后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先HDL描述的电路功能。
形式验证工具有Synopsys的Formality
后端设计流程:
1. DFT
Design For Test,可测性设计。芯片内部往往都自带测试电路,DFT的目的就是在设计的时候就考虑将来的测试。DFT的常见方法就是,在设计中插入扫描链,将非扫描单元(如寄存器)变为扫描单元。关于DFT,有些书上有详细介绍,对照图片就好理解一点。
DFT工具Synopsys的DFT Compiler
2. 布局规划(FloorPlan)
布局规划就是放置芯片的宏单元模块,在总体上确定各种功能电路的摆放位置,如IP模块,RAM,I/O引脚等等。布局规划能直接影响芯片最终的面积。
工具为Synopsys的Astro
3. CTS
Clock Tree Synthesis,时钟树综合,简单点说就是时钟的布线。由于时钟信号在数字芯片的全局指挥作用,它的分布应该是对称式的连到各个寄存器单元,从而使时钟从同一个时钟源到达各个寄存器时,时钟延迟差异最小。这也是为什么时钟信号需要单独布线的原因。
CTS工具,Synopsys的Physical Compiler
4. 布线(Place & Route)
这里的布线就是普通信号布线了,包括各种标准单元(基本逻辑门电路)之间的走线。比如我们平常听到的0.13um工艺,或者说90nm工艺,实际上就是这里金属布线可以达到的最小宽度,从微观上看就是MOS管的沟道长度。
工具Synopsys的Astro
5. 寄生参数提取
由于导线本身存在的电阻,相邻导线之间的互感,耦合电容在芯片内部会产生信号噪声,串扰和反射。这些效应会产生信号完整性问题,导致信号电压波动和变化,如果严重就会导致信号失真错误。提取寄生参数进行再次的分析验证,分析信号完整性问题是非常重要的。
工具Synopsys的Star-RCXT
6. 版图物理验证
对完成布线的物理版图进行功能和时序上的验证,验证项目很多,如LVS(Layout Vs Schematic)验证,简单说,就是版图与逻辑综合后的门级电路图的对比验证;DRC(Design Rule Checking):设计规则检查,检查连线间距,连线宽度等是否满足工艺要求, ERC(Electrical Rule Checking):电气规则检查,检查短路和开路等电气 规则违例;等等。
工具为Synopsys的Hercules
实际的后端流程还包括电路功耗分析,以及随着制造工艺不断进步产生的DFM(可制造性设计)问题,在此不说了。
物理版图验证完成也就是整个芯片设计阶段完成,下面的就是芯片制造了。物理版图以GDS II的文件格式交给芯片代工厂(称为Foundry)在晶圆硅片上做出实际的电路,再进行封装和测试,就得到了我们实际看见的芯片
verilog序列检测器检测到1101或1110输出为TRUE?
直接用一个移位寄存器不可以么?然后判断这个寄存器是不是等于1101或者1110不就好了么?
干嘛非要用状态机;状态就的话就是: st0:如果是1的话就到st1,否则在st0;
st1:如果是1的话就到st2,否则就到st0;
st2:如果是0的话就到st3,如果是1的话就到st4;
st3:如果是1的话就产生true,否则回到st0;
st4:如果是0的话产生ture,否则保持在st4;
wire和reg型数据的区别?
"Wire" (线) 和 "Reg" (寄存器) 是 Verilog 和 SystemVerilog 中表示数据类型的关键字。
1.Wire:
2.Wire 是一种线型数据类型,用于连接组件之间的信号传递。它代表着连续赋值的数据流,类似于电路中的导线。Wire 可以用于传输数据信号,但不能直接存储数据。
3.Wire 类型的信号可以在数电和逻辑电路中连接不同的组件,例如逻辑门、模块或数据通路。Wire 类型的信号通常用于表示组件之间的互连,如数据传输、信号传递和连接信号。
4.Reg:
5.Reg 是一种寄存器型数据类型,用于存储和表示数据。它可以存储和更新数据值,并通过赋值语句来操作。
6.Reg 类型的信号可以在组件内部用于存储变量的状态或过程中间的结果。它类似于编程语言中的变量,在时钟的边沿或某些条件触发时可以更新和读取其值。Reg 类型的信号通常用于存储、计算和控制信号。
总结:
Wire 和 Reg 是 Verilog 和 SystemVerilog 中用于表示数据类型的关键字。Wire 主要用于信号传递和互连,代表连续赋值的数据流;而 Reg 用于存储和表示数据值,代表可存储和更新的数据。选择使用 Wire 还是 Reg 取决于所需的功能和应用场景,在连续数据流或组件互连时使用 Wire,而在需要存储和操作数据时使用 Reg。
集成电路设计与集成系统专业?
这个问题可能每个人都会有不同的看法吧!其实不管干哪个行业也都是有难的,也有好点的地方,个人是认为集成电路设计与集成系统专业相比其他电子信息类专业难度是要大一些。
不过也正因为有难度,所以在未来很长的时间内集成电路都会是科技发展的核心,很多学校的多数 学电子人都认为现在是中国集电的青春期也是蓬勃发展期,加上美国的封锁,这对我们来说既是机遇也是挑战,所以就业环境应该是非常不错的。
集成电路设计与集成系统专业、开设课程:
电路原理、模拟电子技术、数字电子技术、信号与系统、数字信号处理、计算机软硬件基础、EDA技术基础、DSP原理及应用、嵌入式实时操作系统、固体物理、半导体物理、微电子器件、模拟集成电路原理与设计、数字集成电路原理与设计、集成电路工艺原理、集成电路测试与封装、片上可编程系统(SOPC)技术等。
就业前景:
可在与集成电路产业相关的高新技术企业、科研设计单位、国防军工企业、大专院校、政府部门等单位和研究院所从事集成电路的设计、制造、测试和集成电路应用等工作。约15%优秀毕业生学生可推荐免试攻读硕士研究生。
根据学校的数据,微电子集成电路设计人才缺口每年是四十多万,但我们每年只有一两万多人符合要求。而且微电子行业壁垒非常高,不像是程序员自学一年编程就可以入行的,而且电路设计工程师和医生很像需要时间去积累经验。所以说就业形势比较好。但有一个巨大的缺陷,就是一定要读研究生,因为其技术的复杂性,简单的本科基础只是不足以构架设计世界领先级别的复杂的集成电路,而且很少有公司会要集成电路设计的本科生。
verilog语言中reg?
verilog中reg[3:0]out;定义寄存器型变量定义信号out的数据类型为4位reg型


还没有评论,来说两句吧...