HDL 开发的流程和工具 IC设计流程 典型芯片开发步骤.docx

上传人:b****7 文档编号:23716628 上传时间:2023-05-20 格式:DOCX 页数:10 大小:21.27KB
下载 相关 举报
HDL 开发的流程和工具 IC设计流程 典型芯片开发步骤.docx_第1页
第1页 / 共10页
HDL 开发的流程和工具 IC设计流程 典型芯片开发步骤.docx_第2页
第2页 / 共10页
HDL 开发的流程和工具 IC设计流程 典型芯片开发步骤.docx_第3页
第3页 / 共10页
HDL 开发的流程和工具 IC设计流程 典型芯片开发步骤.docx_第4页
第4页 / 共10页
HDL 开发的流程和工具 IC设计流程 典型芯片开发步骤.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

HDL 开发的流程和工具 IC设计流程 典型芯片开发步骤.docx

《HDL 开发的流程和工具 IC设计流程 典型芯片开发步骤.docx》由会员分享,可在线阅读,更多相关《HDL 开发的流程和工具 IC设计流程 典型芯片开发步骤.docx(10页珍藏版)》请在冰豆网上搜索。

HDL 开发的流程和工具 IC设计流程 典型芯片开发步骤.docx

HDL开发的流程和工具IC设计流程典型芯片开发步骤

HDL开发的流程和工具IC设计流程典型芯片开发步骤

HDL开发的流程和工具+IC设计流程+典型芯片开发步骤

 

2006-11-2319:

17:

04|分类:

IC

|字号订阅HDL相关工具简介

HDL即HardwareDescriptionLanguage,硬件描述语言,主要用来描术电子电路的结构、行为、功能和接口。

采用HDL语言描述电路与传统的利用原理图设计电路有很大的不同,主要特点如下:

采用自顶向下的设计方式

采用语言描述硬件

多种输入方式

存档、交流方便

便于集体协作

便于早期规划

电脑辅助完成部分工作

电路验证更完善

HDL

语言有多种,现最流行的是VHDL和Verilog

HDL,并且各有其特点。

一般认为VHDL语法类似于Ada语言,语法繁锁,关键字较长,学习较困难,对电路的行为描述能力较强,但对开关级电路描述能力

不强;Verilog则类似于C语言,语法简洁,入门较易,对底层电路描述能力较强,但行为描述能力较VHDL弱。

但VHDL和Verilog的市场占有

率相当,且各EDA工具一般都支持两种语言,所以很难断言哪种语言将更有前途。

目前两种语言都在发展当中。

最近用C语言描述硬件电路也已加大了研究力度。

用HDL语言开发电路一般分为几个阶段:

HDL语言输入、逻辑综合、仿真、布线,适配

这是FPGA/CPLD开发中所用到的步骤,如果是集成电路开发,则不需适配,在布局、仿真完成后即可到制程厂生产。

输入

较常用的输入方式是文本输入方式。

一般的HDL仿真、综合软件或FPGA/CPLD厂家提供的集成开发环境都包含语

法敏感的输入工具,不需要另外寻找。

但也有例外,例如Synopsys的FPGA

Express就不带编辑器,给使用带来些许不变。

Modelsim所带的编辑器不是很好用,且字体对齐有些问题。

其余如Xilinx、Altera、

Synplicity提供的开发工具中的编辑器都不错。

如果你感到不满意,可寻找其它的编辑器,例如专业的Turbo

Writer,使用相当方便。

被众多程序员喜爱的UltraEdit在加上语法模板之后非常好用,打开文件快速,占用资源少,各项功能使用都相当方便。

一个较流行的方式是状态图输入方式。

它可以让设计者采用类似于画流程图的方式,设定好各种状态转换条件后,依靠专用软件自动生成HDL源程序,简化了输入

过程。

这类软件有VisualSoftwareSolutions,Inc的StateCAD、MentorGraphics的HDL

DesignerSeries等。

电路图式输入方式也经常用到,这多是在利用现成的元件构成电路时使用。

例如一个设计中主要是采用HDL语言作

设计,而某个模块有现成的电路,一种方法是采用HDL语言将电路按连线关系重新描述一遍,另一种是使用软件将该电路自动转换成HDL源文件,例如

Xilinx的ISE3.3中就是采用此方式。

综合

综合的作用是将用语言表示的HDL源程序转换成相应的电路。

综合软件的优劣直接决定了电路功能的实现方

法、电路所占资源的多少电路的各项性能是否符合要求等。

虽然这一切跟HDL程序设计的优劣息息相关,但同样的设计经过不同的软件综合后可能有不同的结果,

所以好的综合软件能带来事半功倍的效果。

目前各种综合软件琳琅满目,但被大多数设计工程师认可、占有一定份额的主要是由前几大EDA公司所开发

的,例如Cadence、Synopsys、Synplicity、Mentor、Avanti等。

Cadence公司的软件主要是应用于IC设计方面,

且大多工作在工作站上,所以一般业余条件下很难接触到。

Synopsys的综合软件比较多,如FPGAExpress、FPGA

Compiler、DesignCompiler等。

FPGA

Express由于原来为Xilinx和Altera做OEM版,开发过FPGA的工程师应该比较熟悉。

它使用较为简单,可根据面积或速度进行优化,对

FPGA/CPLD的芯片支持较多。

但给我的印象不是很好,主要有三点:

一是不自带编辑器。

在新建工程后只能先添加现有文件然后才能进行编辑,且编辑器很

差,不对语法敏感。

二是电路图查看效果很差。

如果电路较小,只有几十个门时还比较直观,但当门数增加后简直是***,不堪入目。

不管多大的电路,它都不分

页,让你一览无遗,结果是什么也看不懂,且电路载入的速度相当慢。

电路图由于对设计工程师来说较为直观,所以经常用到该功能。

特别是对于初学者,

刚接触HDL时没有清晰的概念,更要多查看综合后的原理图,以使自己对HDL语言本身有较直观的理解,也对综合器的各项特性有个大致认识。

第三是它对电路

的优化效果不好,较占FPGA资源。

(我是用FPGAExpress3.5和SynplifyPro6.24比较后得出的。

Synplicity

公司(现是Cadence子公司)的HDL综合软件有Synplfy(Pro)、Amplify、Certify和Synplify

Asic。

SynplifyPro的最新版是7.02,界面简洁、使用方便、功能强大,让人觉得无可挑剔。

FPGA

Express的三个缺点都是它的优点。

它所带的编辑器自动对HDL语法加亮显示;电路图查看功能非常好用,具有自动分页功能,每页所显示的电路图大概就

是A4或A3纸所能容下的。

并且能够将电路图以门级方式显示,还能显示关键路径,并能对HDL代码交叉定位。

即在原理图中双击某个器件,就会跳到产生该器

件的代码段;选中代码后也可使电路图中相应部分突出显示。

另外SynplifyPro也能够显示状态图。

Synplify

Pro的各项优化设置不是很多,主要有速度、时钟、延时等几方面,简单却功能强大。

Synplify

Pro也能调用相应FPGA公司的布线软件,例如Xilinx等。

我个人较喜欢。

Synplify是SynplifyPro的功能简化版。

如果你为了节省成本,可以使用它试试。

Amplify可对FPGA进行物理综合与优化,应该性能比SynplifyPro更好。

只是由于我使用的是XilinxISE3.3,它只支持SynplifyPro,所以懒得在别的软件中综合后再调入

ISE,一直让Amplify静静的躺在硬盘上的某个角落中,没有实际使用过。

Certify是比Amplify功能更强大的综合器,它能将一个大的设计分配至多颗FPGA中!

如果你碰到这么大的设计,那它是你最好的选择。

另外,在Certify中你可以加入自己的IP!

SynplifyAsic是针对IC设计的,由于它只附带一个例子库,所以我只运行了一下一睹芳

容,而没有进行更深入的研究。

上面四套Synplicity公司的软件其使用界面都极相似,为使用者带来了极大的方便。

Exemplar

公司(现是Mentor

Graphics子公司)的LeonardoSpectrum也是一款非常优秀的综合器。

同时它也是PC机上为数不多的支持ASIC开发的综合器之一。

支持众多的FPGA/CPLD器件,各项设置约束功能强大,具备RTL级和门级电路查看功能并以彩色显示,具备智能分页显示功能,支持多种输出网表格式,

同时它也能调用其它FPGA厂家的布线器。

LeonardoSpectrum的设置方式分两种:

快速设置和高级设置。

在快速设置时,你只要选好FPGA器

件型号、封装、速度等和设计的时钟速度,就可以进行综合了。

在高级设置方式时,则各相关选项名目烦多,你可以设置编码方式、时钟频率、时钟周期与延迟、综

合结果内容、网表输出格式等。

而且可以对整个设计的各部分分别设置。

总的来说该软件给人的感觉是非常不错,只有一个小缺点:

你的显示器最好能上到

1024X768以上。

除专业EDA软件公司外,一些FPGA公司也开发了自己的HDL综合器,例如Xilinx的ISE3.3中默认的综合器就

是它自己开发的XST。

由于它是后台运行,且不能查看生成后的电路图,所以不好作评价。

不过它对电路综合后所占用FPGA的资源好像比FPGA

Express要少!

另外Altera公司在它的Maxplus中也是用的自己的综合器。

另外有部分人使用的可能是WorkviewOffice或ispDesignExpert。

不过这两套软件我

都没有接触到。

被EDA界较熟悉的ORCAD中也能使用VHDL,不过它是内嵌了Exemplar。

仿真

HDL仿真分为前仿真、后仿真,或语法仿真、门级仿真、时序仿真。

前仿真指的是电路未经布线之前的仿真,后仿真则是

在经过布线之后的仿真。

语法仿真是根据HDL语法所做的仿真,此时的仿真完全基于HDL描述,部分HDL语句只能用于仿真时查错,而不能综合成电路,例如

文件的输入与输出;门级仿真指的是在综合之后的仿真;时序仿真则是指将连线、负载产生的延时也计算进来。

一般的仿真工具都支持上述各种仿真,但

Maxplus则不支持专门的仿真语句。

HDL仿真软件则数目上更多,例如VCS、VSS、NC-Verilog、NC-VHDL、

Verilog-XL、Modelsim、Vsimsa等。

其中许多软件我是只闻其名、不见其身。

对于开发FPGA来说,一般是使用FPGA厂家所提供的

集成开发环境,例如Xilinx公司的Foundation、ISE、Alliance、Webpack,Altera公司的Maxplus、

Quartus等。

其中部分软件使用的是它们自己所开发的仿真器,例如Maxplus,而另一些则是嵌入专业EDA软件公司的OEM版软件,例如

ISE3.3、Webpack使用的是ModelsimXE(Xilinx

Edition),Foundation使用的是Active-HDL。

不过我还是喜欢ModelSim。

一般认为ModelSim入门较难,那是因为在

Modelsim中没有波形输入工具,只能通过命令输入激励信号(其实在其菜单中也有)对初学者来说很不直观。

不过,在ISE3.3中可以使用HDL

Bencher输入波形,直接产生testbench,省去了很多

麻烦。

Modelsim的运行速度较快,而且其结果比较可靠,调错也相当方便。

本站所有的麻烦。

Modelsim的运行速度较快,而且其结果比较可靠,调错也相当方便。

本站所有的电路仿真都是在ModelSim中完成。

仿

真中必不可少的一步是给被测电路的输入信号给予激励。

一种方法是直接给波形,但很多波形编辑器都不是很好用,我觉得Maxplus是其中的佼佼者,只要点

一点鼠标就可以完成。

另一种是写测试台,即Testbench,但该方法也比较麻烦,特别是在加不规则波形时。

Xilinx

ISE附带了一套自动产生Testbench的程序HdlBencher,在该程序中它可以自动将设计中的输入、输出找出来,你可以以图形化的方式编辑好

输入波形和所预期的结果,然后调入仿真器中进行仿真。

对于初学者真的很好用!

另外还有一种方法,就是在仿真软件中用命令方式加输入波形,例如

Modelsim,不过初学者通常对其不感兴趣,这就是网上许多人说Modelsim不容易入门的原因。

除软件仿真外,要做的最后一步就是硬件仿

真。

通常有两种做法:

一种是先设计好电路板,在电路板上测试结果;另一种是利用通用的FPGA开发板。

前一种方式风险较大,且较费时,每有一个新的设计都

要重新花费精力设计电路板,且当设计结果在FPGA的容量之外时就更麻烦了。

所以一般是利用第二种方法,用FPGA板搭同一个简单的电路测试环境,等所有

的功能测试完毕后再做应用板。

采用何种FPGA开发板通常取决于你的需求:

一是成本考虑,二是从FPGA厂家教虑,三是从设计环境考虑。

第二点主要是要考虑你所最了解的FPGA的特点、开发过程等,第三点是要考虑是否有特殊要求,你如不允许有配置电路、需要较大的内部SRAM、是否需要内嵌CPU等。

一般在选择开发板的门数时要尽量选大的。

1.首先是使用HDL语言进行电路描述,写出可综合的代码。

然后用仿真工具作前仿

真,对理想状况下的功能进行验证。

这一步可以使用Vhdl或Verilog作为工作语言,EDA工具方面就我所知可以用Synopsys的

VSS(forVhdl)、VCS(forVerilog)

Cadence的工具也就是著名的Verilog-XL和NCVerilog

2.

前仿真通过以后,可以把代码拿去综合,把语言描述转化成电路网表,并进行逻辑和时序电路的优化。

在这一步通过综合器可以引入门延时,关键要看使用了什么工

艺的库这一步的输出文件可以有多种格式,常用的有EDIF格式。

综合工具Synopsys的DesignCompiler,Cadence的Ambit

3.

综合后的输出文件,可以拿去做layout,将电路fit到可编程的片子里或者布到硅片上,这要看你是做单元库的还是全定制的。

全定制的话,专门有版图工

程师帮你画版图,Cadence的工具是layouteditor。

单元库的话,下面一步就是自动布局布

线,autoplace&route,简称apr。

cadence的工具是SiliconEnsembler,Avanti的是

Apollo。

layout出来以后就要进行extract,只知道用Avanti的Star_rcxt,然后做后仿真。

如果后仿真不通过的话,只能iteration,就是回过头去改。

4.接下

来就是做DRC,ERC,LVS了,如果没有什么问题的话,就tapeoutGDSII格式的文件送制版厂做掩膜板,制作完毕上流水线流片,然后就看

是不是work了。

做DRC,ERC,LVS,Avanti的是Hercules,Venus,其它公司的你们补充好了btw:

后仿真之前的输出文件忘记

说了,应该是带有完整的延时信息的设计文件如:

*.VHO,*.sdf。

一个典型的芯片的开发步骤应该有:

1、idea的提出和细化

2、算法实现和验证

3、系统软硬件的划分和验证

4、系统原型和测试原型开发

5、rtl/circuit开发和验证

6、gateleveldesign和layoutleveldesign的开发和验证

7、物理版图设计和全芯片的版图组装(assemble)时序、功耗验证

8、寄生参数提取,全芯片仿真和功能验证,版图的物理验证

9、sign-off

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1