资源描述:
《数字集成电路第2章-数字集成电路设计流程和设计方法课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二章数字集成电路设计流程和设计方法2.1设计流程2.2设计描述2.3综合方法2.4设计验证2.5EDA工具数字集成电路设计总体上可分为1.电路设计(前端设计)电路设计是指根据对ASIC的要求或规范,从电路系统的行为描述开始,直到设计出相应的电路图,对于数字系统来说就是设计出它的逻辑图或逻辑网表2.版图设计(后端设计)版图设计就是根据逻辑网表进一步设计集成电路的物理版图,也就是制造工艺所需的掩膜版的版图。一、bottom-Up自底向上(Bottom-Up)设计是集成电路和PCB板的传统设计方法,该方法盛行于七、八十年设计从逻辑级
2、开始,采用逻辑单元和少数行为级模块构成层次式模型进行层次设计,从门级开始逐级向上组成RTL级模块,再由若于RTL模块构成电路系统对于集成度在一万门以内的IC设计是行之有效的,无法完成十万门以上的设计设计效率低、周期长,一次设计成功率低2.1设计流程二、Top-Down设计Top-Down流程在EDA工具支持下逐步成为IC主要的设计方法从确定电路系统的性能指标开始,自系统级、寄存器传输级、逻辑级直到物理级逐级细化并逐级验证其功能和性能2.1设计流程二、Top-Down设计从电路行为到逻辑结构的转换是由逻辑综合这一步骤自动进行的。逻
3、辑综合是采用编译的方法,自动生成与行为级描述等效的门级逻辑的过程,并且在综合的过程中可以根据具体情况对电路的速度、面积、功耗等指标进行优化。测试综合是为了电路的可测性而设置步骤,它同样是通过编译方法在逻辑综合产生的门级逻辑电路基础上,自动插入扫描链,确保了电路的可测性。在此阶段同样可进行门级模拟和测试生成等步骤。最后是版图综合,进行自动布局布线,并经过验证最终产生版图数据文件。2.1设计流程Top-Down设计的关键技术首先是需要开发系统级模型及建立模型库,这些行为模型与实现工艺无关,仅用于系统级和RTL级模拟。系统级功能验证技
4、术。验证系统功能时不必考虑电路的实现结构和实现方法,这是对付设计复杂性日益增加的重要技术。逻辑综合--是行为设计自动转换到逻辑结构设计的重要步骤2.1设计流程Top-Down设计与Bottom-Up设计相比,具有以下优点:设计从行为到结构再到物理级,每一步部进都进行验证,提高了一次设计的成功率。提高了设计效率,缩短了开发周期,降低了产品的开发成本设计成功的电路或其中的模块可以放入以后的设计中提高了设计的再使用率(Reuse)。2.1设计流程描述方面行为描述(是指数字系统的行为,表示了系统输出与输入之间的数学和物理关系)结构描述(
5、规定了集成电路系统的组成和电路结构)物理描述(是系统的实现结构,也就是集成电路在硅片上形成的物理结构。)设计抽象的层次(从电路高层的系统逐步细化,直到最底层的晶体管级电路)系统算法级寄存器传输级(RTL级)逻辑级和电路级最低层的晶体管级电路对于每一个层次都可以从以上三个方面进行描述2.2设计描述一、硬件描述语言HDL(HardwareDescriptionLanguage)硬件描述语言可以用来描述电路系统的行为和结构,它是集成电路设计人员和EDA工具的界面。设计者是用HDL来描述自己的设计方案,包括集成电路的行为,结构和几何特性
6、,并把描述以文件形式告诉EDA工具,并在EDA工具的帮助下进行修改和验证,直到设计成功。国际上通用的、标准的硬件描述语言主要有两种,即VHDL和VerilogHDL。2.2设计描述二、行为描述一个特定的设计行为描述表达了由它规定的电路输出与输入之间的关系,对于数字系统或电路而言,行为描述的形式可以是布尔表达式、输入输出式的列表,也可以是C、C++等高级语言或硬件描述语言编写的程序。以全加器为例来说明2.2设计描述modulecarry(co,a,b,c);outputco;inputa,b,c;wire#10co=(a&b)
7、(
8、a&c)
9、(b&c)endmoduleVerilog-HDL描述进位算法描述2.2设计描述三、结构描述结构描述规定了电路系统的结构,规定了元件之间的连接关系,并由此确定了系统的功能。结构描述的层次可以分成RTL级(功能块级)、门级、开关级、和电路级。2.2设计描述4位加法器的结构描述(RTL级)moduleadd4(s,c4,ci,a,b);input[3:0]a,b;inputci;output[3:0]s;outputc4;wire[2:0]co;adda0(co[0],s[0],a[0],b[0],ci);adda1(co
10、[1],s[1],a[1],b[1],co[0]);adda2(co[2],s[2],a[2],b[2],co[1]);adda3(c4,s[3],a[3],b[3],co[2]);endmodule2.2设计描述moduleadd(co,s,a,b,c);in