《软件开发设计流程》教学课件_第1页
《软件开发设计流程》教学课件_第2页
《软件开发设计流程》教学课件_第3页
《软件开发设计流程》教学课件_第4页
《软件开发设计流程》教学课件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四讲软件开发设计流程信息与通信学院:谢跃雷第1页,共48页。8/3/20221 一、EDA工具软件1、ALTERA: MAX+PLUS II、QUARTUS II2、LATTICE: isp EXPERT SYSTEM、 isp Synario ispDesignExpert SYSTEM ispCOMPILER、PAC-DESIGNER3、XILINX: FOUNDATION、ISE4、FPGA Compiler、FPGA Express、Synplify、 Leonardo Spectrum . EDA公司 : CADENCE、EXEMPLAR、MENTOR GRAPHICS、OrCAD

2、、SYNOPSYS、SYNPLICITY、VIEWLOGIC、.第2页,共48页。8/3/20222自然语言描述或者相互通信的进程进程及通信数据处理系统级电路的功能描述基本单元时序单位抽象层次二、数字系统设计层次及HDL描述 系统设计是数字系统设计的最高层次。一个系统可以包括若干芯片。如果是“System on Chip”设计,则在一个系统芯片上,也会有若干类似于处理器、存储器等这样的部件。 系统设计主要任务是将设计要求转换为明确的、可实现的功能和技术指标,确定可行的技术方案,且在系统一级(顶层)进行功能和技术指标的描述。这类描述一般通过文字来表示就可以,不会用HDL来描述。1. 数字系统设计

3、层次第3页,共48页。8/3/20223设计层次(1)系统级数据采集信号转换预处理火候控制意外处理LCD显示控制调料控制机械控制中心主控数据存储键盘控制实例:智能电烤箱机第4页,共48页。8/3/20224行为有限状态机、数据流图、控制流图运算的控制运算步算法级自然语言描述或者相互通信的进程进程及通信数据处理系统级电路的功能描述基本单元时序单位抽象层次 算法级是对整个系统的数学模型进行建模,一般通过对输入/输出之间的关系描述,来模拟器件的行为,检验其功能是否正确,而不考虑具体实现。数字系统设计层次第5页,共48页。8/3/20225设计层次(2)算法级(温度控制)熄火升温等待降温错误处理温度到

4、达门限温度到达门限阶段切换熟了焦了新任务第6页,共48页。8/3/20226抽象层次时序单位基本单元电路的功能描述系统级数据处理进程及通信自然语言描述或者相互通信的进程算法级运算步运算的控制行为有限状态机、数据流图、控制流图寄存器变换级时钟周期寄存器、运算、变换布尔方程、二元决策图、有限状态机数字系统设计层次RTL: Register Transfer level第7页,共48页。8/3/20227设计层次(3)寄存器级(数字信号处理)寄存器MUX选择时钟时钟alu寄存器寄存器时钟第8页,共48页。8/3/20228抽象层次时序单位基本单元电路的功能描述系统级数据处理进程及通信自然语言描述或者

5、相互通信的进程算法级运算步运算的控制行为有限状态机、数据流图、控制流图寄存器变换级时钟周期寄存器、运算、变换布尔方程、二元决策图、有限状态机逻辑门级延时逻辑门、器件(晶体管)原理图数字系统设计层次第9页,共48页。8/3/20229设计层次(4)逻辑门级(RS触发器)SRQQ第10页,共48页。8/3/202210抽象层次时序单位基本单元电路的功能描述系统级数据处理进程及通信自然语言描述或者相互通信的进程算法级运算步运算的控制行为有限状态机、数据流图、控制流图寄存器变换级时钟周期寄存器、运算、变换布尔方程、二元决策图、有限状态机逻辑门级延时逻辑门、器件(晶体管)原理图电路级物理时间晶体管、R,

6、L,C等电压、电流的微分方程数字系统设计层次第11页,共48页。8/3/202211设计层次(5)电路级(CMOS反向器)第12页,共48页。8/3/202212抽象层次时序单位基本单元电路的功能描述系统级数据处理进程及通信自然语言描述或者相互通信的进程算法级运算步运算的控制行为有限状态机、数据流图、控制流图寄存器变换级时钟周期寄存器、运算、变换布尔方程、二元决策图、有限状态机逻辑门级延时逻辑门、器件(晶体管)原理图电路级物理时间晶体管、R,L,C等电压、电流的微分方程物理(版图)级几何图形数字系统设计层次第13页,共48页。8/3/202213数字系统设计层次抽象层次时序单位基本单元电路的功

7、能描述系统级数据处理进程及通信自然语言描述或者相互通信的进程算法级运算步运算的控制行为有限状态机、数据流图、控制流图寄存器变换级(RTL)时钟周期寄存器、运算、变换布尔方程、二元决策图、有限状态机逻辑门级延时逻辑门、器件(晶体管)原理图电路级物理时间晶体管、R,L,C等电压、电流的微分方程物理(版图)级几何图形前端后端第14页,共48页。8/3/202214系统说明/行为级-设计文档/算术描述RTL/功能级-Verilog门级/结构级-Verilog版图/物理级-几何图形行为综合综合前仿真逻辑综合综合后仿真版图借助于EDA软件,将设计从一层次自动转换到另一个层次称之为综合(Synthesis)

8、第15页,共48页。8/3/202215设计在抽象级上需要进行折衷系统说明/行为级-设计文档/算术描述RTL/功能级-Verilog门级/结构级-Verilog版图/物理级-几何图形详细程度 低 高输入/仿真速度 高 低一个设计可以用任何层次来表示,当设计从上而下进行时,该设计就逐步接近物理实现,在表示上就更少了一些抽象。但一个设计所需的细节会随着它在层次中的下降而增加。细节不充分会造成不精确的结果,过多的细节则会使该层次的设计复杂。第16页,共48页。8/3/202216 HDL语言有四种不同的描述方式:行为描述方式(behavior)、数据流描述方式(dataflow)或寄存器RTL描述方

9、式、结构化描述方式(structural)以及混合描述方式。VHDL或Verilog通过这四种不同的描述方式从不同的侧面描述结构体的功能。前三种是最基本的描述方式,他们组合起来就成为混合描述方式。 下面结合一个全加器来说明这四种描述风格,全加器的端口示意图如图所示,其输入输出关系如表所示。 2. HDL描述风格第17页,共48页。8/3/202217全加器的输入输出关系 输入 输出c_in x y c_out sum 0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1 全加器框图第18页,共48页。8

10、/3/202218a、行为描述方式行为描述输入与输出间转换的行为,不需包含任何结构信息,它对设计实体按算法的路径来描述。行为描述在EDA工程中通常被称为高层次描述,设计工程师只需要注意正确的实体行为、准确的函数模型和精确的输出结果就可以了,无需关注实体的电路组织和门级实现。第19页,共48页。8/3/202219Verilog行为描述module full_adder(sum,c_out,a, b, c_in);/端口声明 output sum; output c_out; input a, b; input c_in;assign c_out,sum=a+b+c_in;endmodule第2

11、0页,共48页。8/3/202220b、数据流描述方式 数据流描述方式表示行为,也隐含表示结构,它描述了数据流的运动路线、运动方向和运动结果。 第21页,共48页。8/3/202221对于全加器,用布尔方程描述其逻辑功能如下: S1 =A XOR B S = s1 XOR Cin Co = (A AND B) OR( S1 AND Cin) 下面是基于上述布尔方程的数据流风格的描述: 第22页,共48页。8/3/202222Verilog 数据流描述module full_adder(sum,c_out,a, b, c_in);/端口声明 output sum; output c_out; i

12、nput a, b; input c_in;assign assign sum=(ab)cin;assign cout= (a&b) | (cin & (ab);endmodule第23页,共48页。8/3/202223c、结构描述方式 结构化描述方式就是在多层次的设计中,高层次的设计可以调用低层次的设计模块,或直接用门电路设计单元来构成一个复杂逻辑电路的方法。利用结构化描述方法将已有的设计成果方便地用于新的设计中,能大大提高设计效率。在结构化描述中,建模的焦点是端口及其互连关系。 结构化描述的建模步骤如下:(1)元件说明:用于描述局部接口;(2)元件例化:是相对于其他元件来放置该元件;(3)

13、元件配置:用于指定元件所用的设计实体。 第24页,共48页。8/3/202224对于上图给出的全加器端口结构,可以认为它是由两个半加器和一个或门组成的 。基于上图所示的结构,可以写出全加器的结构化描述设计程序如下。 全加器f-adder电路图第25页,共48页。8/3/202225s1c1c2module fulladd(sum,c_out, a, b, c_in);/端口声明 output sum,c_out; input a, b, c_in; /内部网线声明wire s1,c1,c2;/门级实例引用xor (s1,a,b);and (c1,a,b);and (c2,s1,c_in);xo

14、r (sum,s1,c_in);or (c_out,c1,c2); endmodule1位全加器程序如下:Verilog结构化描述方式1:第26页,共48页。8/3/202226module full_adder(sum,c_out,x,y,c_in);output sum,c_out;input x,y,c_in;wire a,b,c;h_adder h1(b,a,x,y);h_adder h2(sum,c,c_in,b);or(c_out,c,a);endmodulemodule h_adder(sum,c_out, a, b);/端口声明 output sum,c_out; input

15、a, b;assign c_out,sum=a + b; endmodule1位全加器程序如下:Verilog结构化描述方式2:第27页,共48页。8/3/202227HDL可以在3个抽象级上建模n+n+SGD+版图级电路级逻辑门级RTL级系统级和算法级行为描述(Behavior)数据流描述(Data Flow)结构描述(Structure)混合描述|+行为级 用功能块之间的数据流对系统进行描述 在需要时在函数块之间进行调度赋值。RTL级/功能级用功能块内部或功能块之间的数据流和控制信号描述系统基于一个已定义的时钟的周期来定义系统模型结构级/门级用基本单元(primitive)或低层元件(co

16、mponent)的连接来描述系统以得到更高的精确性,特别是时序方面。在综合时用特定工艺和低层元件将RTL描述映射到门级网表第28页,共48页。8/3/202228抽象级(Levels of Abstraction)描述选取设计工程师在不同的设计阶段采用不同的抽象级首先在行为级描述各功能块,以降低描述难度,提高仿真速度。在综合前将各功能模块进行RTL级描述。用于综合的库中的大多数单元采用结构级描述。在本教程中的结构级描述部分将对结构级(门级)描述进行更详细的说明。第29页,共48页。8/3/202229三、典型FPGA应用设计流程系统设计算法设计RTL设计系统验证算法验证RTL验证逻辑综合布局布

17、线后仿真数据流下载硬件验证为什么需要后仿真和硬件验证?第30页,共48页。8/3/202230典型FPGA应用设计流程系统设计算法设计RTL设计系统验证算法验证RTL验证逻辑综合布局布线后仿真数据流下载硬件验证EDA工具辅助完成第31页,共48页。8/3/202231典型FPGA应用设计流程系统设计算法设计RTL设计系统验证算法验证RTL验证逻辑综合布局布线后仿真数据流下载硬件验证重点掌握第32页,共48页。8/3/202232 一个系统由总设计师先进行系统描述,将系统划分为若干模块,编写模块模型(一般为行为级),仿真验证后,再把这些模块分配给下一层的设计师,由他们完成模块的具体设计,而总设计

18、师负责各模块的接口定义顶层模块子模块1子模块2子模块3基本单元基本单元基本单元基本单元基本单元基本单元结构化层次设计方法四、 结构化设计方法第33页,共48页。8/3/202233(1).相对独立、功能单一的模块结构结构化设计的基本思想是将系统设计成由多个相对独立、功能单一的模块组成的结构。由于模块之间相对独立,每一模块就可以单独地被理解、编写、测试、排错和修改,从而可以有效防止错误在模块之间的扩散,提高系统的质量。 (2).“块内联系大,块间联系小”的模块性能标准模块内部联系要大,模块之间联系要小,这是结构化设计中衡量模块相对独立性能的标准。事实上,块内联系和块间联系是同一个事物的两个方面。

19、若把联系密切的成分组织在同一模块中,块内系统高了,块间联系自然就少了。 (3).采用模块结构图的描述方式结构化设计方法使用的描述方式是模块结构图,即以图形的方式来表达。结构化层次设计方法特点:第34页,共48页。8/3/202234(1)分割后最底层的逻辑块应适合用逻辑语言进行表达。如果利用逻辑图作最底层模块输入方法,需要分解到门,触发器和宏模块一级;用HDL行为描述语言则可以分解到算法一级。 (2)考虑共享模块。在设计中,往往会出现一些功能相似的逻辑模块,相似的功能应该设计成共享的基本模块,象子程序一样由高层逻辑块调用。这样可以减少需要设计的模块数目、改善设计的结构化特性。 (3)接口信号线

20、最少。复杂的接口信号容易引起设计错误,并且给布线带来困难。以交互信号的最少的地方为边界划分模块,用最少的信号线进行信号和数据的交换为最佳的方法。 模块划分原则:第35页,共48页。8/3/202235(4)结构均称。同层次的模块之间,在资源和IO分配上,不出现悬殊的差异,没有明显的结构和性能上的瓶颈。 (5)通用性好,易于移植。模块的划分和设计应满足通用性要求,模块设计应考虑移植的问题。一个好的设计模型块应该可以在其它设计中使用,并且容易升级和移植;另外,在设计中应尽可能避免使用与器件有关的特性,即设计具有可移植性。 第36页,共48页。8/3/202236 自顶向下设计法设计过程是通过功能分

21、割手段,将系统由上而下分层次、分模块进行设计和仿真。先进行高层次设计,主要进行功能和接口描述,定义模块的功能和接口。这种方法可以用于系统的前期设计,在没有选定器件、做出电路系统之前,可用软件的仿真手段验证方案的可行性。然后再进行底层设计,此时,才涉及具体逻辑门和寄存器等实现方式的描述。在每一个层次上,大体都有描述、划分、综合和验证等4种类型的工作,EDA系统正是要做这些工作。 五、自顶向下的设计过程第37页,共48页。8/3/202237系统级算法级寄存器级逻辑门级电路级,版图级传统:自底向上现代:自顶向下第38页,共48页。8/3/202238开始系统功能要求HDL性能描述HDL结构模型性能

22、/行为模拟系统分解满足要求?叶子模块的数据流描述数据流描述的综合结束NY 自顶向下的设计方法并不是一个一次就可以完成的设计过程,而是一个需要反复改进、反复实践的过程。这个过程可以分为:系统性能描述与行为模拟、系统结构分解、产生系统结构模型、描述叶子模块、逻辑综合与设计实现。 自顶向下设计法设计过程第39页,共48页。8/3/202239(1)系统性能描述与行为模拟 设计从系统的功能和性能要求开始。首先要将系统的功能要求转换为用HDL对系统进行的性能描述,建立设计的行为模型。建立设计的行为模型之后,可以在设计的早期阶段对设计的行为模型进行模拟,通过对模拟结果进行分析,进而调整、修改设计。经过具体

23、的描述和模拟,可以验证对于系统功能要求的理解是否正确,是否完整。另外,通过这样的描述和模拟,还可能发现原来对系统功能的要求的不完善或者不准确的地方。所以,这个过程有可能要反复进行。第40页,共48页。8/3/202240(2)系统结构分解 系统结构分解,则是将系统分解为若干子系统,子系统又可以再分解为若干功能模块。这样的分解可以一层一层地进行下去,直到树形结构的末端,即叶子功能模块。系统分解也不一定是一次就可以完成的,在系统的实现过程中,很可能发现某个层次的分解不一定合适,这时,就可以进行重新分解。 系统分解完成后,系统的层次结构就很清晰了。这时,可以用HDL的结构描述能力,完成系统和子系统的结构描述。 第41页,共48页。8/3/202241(3)对叶子功能模块进行数据流描述 叶子模块是构成系统的最基本的模块。对于这样的模块,即RTL模型(寄存器级层次),应该用数据流进行描述。因为数据流的描述更加接近模块的物理实现,更加能体现设计者的设计能力和运用设计者的设计经验。用数据流描述的模块,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论