FPGA/CPLD与ASIC设计流程——《Verilog与数字ASIC设计基础》读书笔记(三)
1,系统功能级设计
系统功能级设计是最高一级的设计,主要是根据系统的设计要求(包括系统的功能,性能,尺寸,功耗等),确定系统的输入,输出信号,确定实现功能的算法,最后要给出系统的整体结构框图,主要模块的输入,输出信号及他们之间的关系,并确定每个模块做什么,但不必管模块内部如何实现指定的功能。划分功能块的原则是:既要使功能块之间的连线尽可能的少,接口清晰;又要求功能块规模合理,便于各个功能块各自独立设计。
接着是根据电路功能的动能,性能指标,接口标准等进行功能级描述(也称行为描述),即对整个系统进行建模和仿真,并不考虑其实际的操作和算法用什么方法实现。功能级描述可以用HDL或C/C++等语言书写。在功能级描述的系统结构程序,其抽象程度很高,很难直接映射成具体的门电路。
2,寄存器传输级设计
在系统功能级设计完成之后,系统已经被划分为较小的功能模块,接下来要进行模块级的设计,包括模块的详细功能,算法,实现,接口时序,性能要求和子模块设计等内容。
在模块的设计规范完成之后,接着进入RTL(Register Transfer Level)设计阶段,包括模块代码的编写,仿真验证等。所谓RTL设计就是把比较抽象的系统级功能描述转换成能直接映射到具体逻辑单元(如移位寄存器,计数器,存储模块等)的硬件电路描述。
在RTL级,设计者可以使用HDL或原理图进行模块设计的描述。原理图适合于描述模块之间的连接关系和接口关系,而HDL则适合于描述逻辑功能,所以顶层(仅含模块之间的连接关系)采用原理图,其他情况采用HDL设计。在完成RTL级的模块描述后,要使用逻辑仿真器进行模拟(仿真)与验证,检查各模块的逻辑功能是否正确。然后,将通过仿真的各模块集成在一起,对整个系统进行功能仿真。这一阶段的仿真没有包括任硬件电路的任何时间信息,因此,只能从逻辑功能方面对设计进行验证。
注意:以上设计过程与具体的实现工艺无关。
3,逻辑综合
完成RTL级功能验证之后,进入逻辑综合阶段。逻辑综合就是将HDL描述转化为硬件电路(门级电路)的过程。从逻辑综合开始,设计过程与工艺相关联,不同的实现方式应选用不同的综合工具。对于ASIC芯片实现设计的用户,应选用IC综合工具;对于选用FPGA/CPLD设计用户,由于这类器件结构的特殊性,应选用FPGA/CPLD设计用户,由于这类器件结构的特殊性,应选用FPGA/CPLD厂家提供的专用综合工具。
在一定的设计约束条件(即总体要求中提出的电路性能指标)下,并与适当的单元库相结合,RTL描述可以通过逻辑综合软件自动地转化成门级逻辑网表(即元器件以其连接关系)。然后,通过相应的逻辑仿真软件验证逻辑功能的正确性。与前面寄存器传输级仿真不同的是:完成逻辑综合后的门级仿真包括了门级电路单元的延时信息,但没有包括单元电路之间的连线延时信息,因此,该仿真仍然属于功能验证的范畴,通常称为“前仿真”。
说明:在ASIC设计中,将以上设计过程成为“前端仿真”。
4,设计实现
对于不同的硬件实现方式,其设计实现过程不同。
对于用FPGA/CPLD实现设计的用户,在逻辑综合完成后,必须利用FPGA/CPLD适配器将综合得到的网表文件针对某一具体器件进行逻辑映射操纵,包括底层器件配置,逻辑划分,逻辑优化,布局布线,适配完成后会产生三个文件:
1,时序仿真模型,即一个带有连线延时和门级延时信息的网表文件;
2,供器件编程用的数据文件;
3,适配报告文件,包括芯片内部资源利用情况,设计的布尔方程描述等。
后面的东西都是以工艺有关的,看的不是很懂,通常将IC的版图设计称为“后端设计”。