HDL 开发的流程和工具IC 设计流程典型芯片开发步骤HDL 开发的流程和工具+IC 设计流程+典型芯片开发步2006-11-23 19:17:04| 分类:IC|字号订阅HDL 相关工具简介HDL 即Hardware Description Language ,硬件描述语言,主要用来描术电子电路的结构、行为、功能和接口。
采用HDL语言描述电路与传统的利用原理图设计电路有很大的不同,主要特点如下:采用自顶向下的设计方式采用语言描述硬件多种输入方式存档、交流方便便于集体协作便于早期规划电脑辅助完成部分工作电路验证更完善HDL语言有多种,现最流行的是VHDL 和VerilogHDL ,并且各有其特点。
一般认为VHDL 语法类似于Ada语言,语法繁锁,关键字较长,学习较困难,对电路的行为描述能力较强,但对开关级电路描述能力不强;Verilog 则类似于C 语言,语法简洁,入门较易,对底层电路描述能力较强,但行为描述能力较VHDL 弱。
但VHDL和Verilog 的市场占有率相当,且各EDA 工具一般都支持两种语言,所以很难断言哪种语言将更有前途。
目前两种语言都在发展当中。
最近用C 语言描述硬件电路也已加大了研究力度。
用HDL 语言开发电路一般分为几个阶段:HDL 语言输入、逻辑综合、仿真、布线,适配这是FPGA/CPLD 开发中所用到的步骤,如果是集成电路开发,则不需适配,在布局、仿真完成后即可到制程厂生产。
输入较常用的输入方式是文本输入方式。
一般的HDL 仿真、综合软件或FPGA/CPLD 厂家提供的集成开发环境都包含语法敏感的输入工具,不需要另外寻找。
但也有例外,例如Synopsys 的FPGAExpress 就不带编辑器,给使用带来些许不变。
Modelsim 所带的编辑器不是很好用,且字体对齐有些问题。
其余如Xilinx 、Altera 、Synplicity 提供的开发工具中的编辑器都不错。
如果你感到不满意,可寻找其它的编辑器,例如专业的TurboWriter ,使用相当方便。
被众多程序员喜爱的UltraEdit 在加上语法模板之后非常好用,打开文件快速,占用资源少,各项功能使用都相当方便。
个较流行的方式是状态图输入方式。
它可以让设计者采用类似于画流程图的方式,设定好各种状态转换条件后,依靠专用软件自动生成HDL 源程序,简化了输入过程。
这类软件有Visual Software Solutions, Inc 的StateCAD 、Mentor Graphics 的HDLDesigner Series 等。
电路图式输入方式也经常用到,这多是在利用现成的元件构成电路时使用。
例如一个设计中主要是采用HDL 语言作设计,而某个模块有现成的电路,一种方法是采用HDL 语言将电路按连线关系重新描述一遍,另一种是使用软件将该电路自动转换成HDL 源文件,例如Xilinx 的ISE 3.3 中就是采用此方式。
综合综合的作用是将用语言表示的HDL 源程序转换成相应的电路。
综合软件的优劣直接决定了电路功能的实现方法、电路所占资源的多少电路的各项性能是否符合要求等。
虽然这一切跟HDL 程序设计的优劣息息相关,但同样的设计经过不同的软件综合后可能有不同的结果,所以好的综合软件能带来事半功倍的效果。
目前各种综合软件琳琅满目,但被大多数设计工程师认可、占有一定份额的主要是由前几大EDA 公司所开发的,例如Cadence、Synopsys、Synplicity 、Mentor 、Avanti等。
Cadence公司的软件主要是应用于IC设计方面,且大多工作在工作站上,所以一般业余条件下很难接触到。
Syno psys的综合软件比较多,如FPGA Ex press、FPGA Compiler 、Design Compiler 等。
FPGAExpress由于原来为Xilinx和Altera做OEM版,开发过FPGA的工程师应该比较熟悉。
它使用较为简单,可根据面积或速度进行优化,对FPGA/CPLD 的芯片支持较多。
但给我的印象不是很好,主要有三点:一是不自带编辑器。
在新建工程后只能先添加现有文件然后才能进行编辑,且编辑器很差,不对语法敏感。
二是电路图查看效果很差。
如果电路较小,只有几十个门时还比较直观,但当门数增加后简直是,不堪入目。
不管多大的电路,它都不分页,让你一览无遗,结果是什么也看不懂,且电路载入的速度相当慢。
电路图由于对设计工程师来说较为直观,所以经常用到该功能。
特别是对于初学者,刚接触HDL 时没有清晰的概念,更要多查看综合后的原理图,以使自己对HDL 语言本身有较直观的理解,也对综合器的各项特性有个大致认识。
第三是它对电路的优化效果不好,较占FPGA 资源。
(我是用FPGA Express 3.5和Synplify Pro 6.24 比较后得出的。
)Synplicity公司(现是Cadence子公司)的HDL综合软件有Synplfy(Pro)、Amplify 、Certify 和SynplifyAsic。
Synplify Pro 的最新版是7.02,界面简洁、使用方便、功能强大,让人觉得无可挑剔。
FPGAExpress的三个缺点都是它的优点。
它所带的编辑器自动对HDL 语法加亮显示;电路图查看功能非常好用,具有自动分页功能,每页所显示的电路图大概就是A4 或A3 纸所能容下的。
并且能够将电路图以门级方式显示,还能显示关键路径,并能对HDL 代码交叉定位。
即在原理图中双击某个器件,就会跳到产生该器件的代码段;选中代码后也可使电路图中相应部分突出显示。
另外Synplify Pro 也能够显示状态图。
SynplifyPro 的各项优化设置不是很多,主要有速度、时钟、延时等 几方面,简单却功能强大。
SynplifyPro 也能调用相应 FPGA 公司的布线软件,例如 Xilinx 等。
我个人较喜欢。
Synplify 是 Synplify Pro 的功能简化版。
如果你为了节省成本, 可以使用它试试。
Amplify 可对 FPGA 进行物理综合与优化,应该性能比Synplify Pro 更好。
只是由于我使用的是 Xilinx ISE 3.3 ,它只 支持 Synplify Pro ,所以懒得在别的软件中综合后再调入 ISE ,一直让 Amplify 静静的躺在硬盘上的某个角落中, 实际使用过。
Certify 是比 Amplify 功能更强大的综合器,它能将一个大的 中!如果你碰到这么大的设计,那它 是你最好的选择。
另外,在 Certify 中你可以加入自己的 IP !Synplify Asic 是针对 IC 设计的 ,由于它只附带一个例子库, 所以我只运行了一下一睹芳 容,而没有进行更深入的研究。
面四套 Synplicity 公司的软件其使用界面都极相似,为使 用者带来了极大的方便。
Exemplar公司(现是 MentorGraphics 子公司)的 LeonardoSpectrum 也是一款非常优秀的没有 设计分配至多颗 FPGA综合器。
同时它也是 PC 机上为数不多的支持 ASIC 开发的 综合器之一。
它 支持众多的 FPGA/CPLD 器件,各项设置约束功能强大,具 备 RTL 级和门级电路查看功能并以彩色显示, 具备智能分页 显示功能,支持多种输出网表格式, 同时它也能调用其它 FPGA 厂家的布线器。
LeonardoSpectrum 的设置方式分两种: 快速设置和高级设置。
在快速设置时,你只要选好 FPGA 器 件型号、封装、速度等和设计的时钟速度,就可以进行综合 了。
在高级设置方式时,则各相关选项名目烦多,你可以设 置编码方式、时钟频率、时钟周期与延迟、综 合结果内容、网表输出格式等。
而且可以对整个设计的各部 分分别设置。
总的来说该软件给人的感觉是非常不错,只有个小缺点:你的显示器最好能上到1024X768 以上。
除专业 EDA 软件公司外,一些 FPGA 公司也开发了自己的HDL 综合器,例如 Xilinx 的 ISE3.3 中默认的综合器就 是它自己开发的 XST 。
由于它是后台运行,且不能查看生成 后的电路图,所以不好作评价。
不过它对电路综合后所占用FPGA 的资源好像比 FPGAExpress 要少! 另外 Altera 公司在它的 Maxplus 中也是用的自己的综合器。
t=r. 号、另外有部分人使用的可能是Workview Office 或ispDesign Expert。
不过这两套软件我都没有接触到。
被EDA 界较熟悉的ORCAD 中也能使用VHDL ,不过它是内嵌了Exemplar 。
仿真HDL 仿真分为前仿真、后仿真,或语法仿真、门级仿真、时序仿真。
前仿真指的是电路未经布线之前的仿真,后仿真则在经过布线之后的仿真。
语法仿真是根据HDL 语法所做的仿真,此时的仿真完全基于HDL 描述,部分HDL 语句只能用于仿真时查错,而不能综合成电路,例如文件的输入与输出;门级仿真指的是在综合之后的仿真;时序仿真则是指将连线、负载产生的延时也计算进来。
一般的仿真工具都支持上述各种仿真,但Maxplus 则不支持专门的仿真语句。
HDL 仿真软件则数目上更多,例如VCS 、VSS、NC-Verilog 、NC-VHDL 、Verilog-XL 、Modelsim 、Vsimsa 等。
其中许多软件我是只闻厂家所提供的集成开发环境,例如Xilinx 公司的Foundation 、ISE、Alliance 、其名、不见其身。
对于开发FPGA 来说,般是使用FPGAWebpack,Altera 公司的Maxplus 、Quartus 等。
其中部分软件使用的是它们自己所开发的仿真器,例如Maxplus ,而另一些则是嵌入专业EDA 软件公司的OEM 版软件,例如ISE3.3、Webpack 使用的是Modelsim XE(XilinxEdition) ,Foundation 使用的是Active-HDL 。
不过我还是喜欢ModelSim 。
一般认为ModelSim 入门较难,那是因为在Modelsim 中没有波形输入工具,只能通过命令输入激励信号其实在其菜单中也有)对初学者来说很不直观。
不过,在ISE3.3 中可以使用HDLBencher输入波形,直接产生testbench,省去了很多麻烦。
Modelsim 的运行速度较快,而且其结果比较可靠,调错也相当方便。
本站所有的麻烦。
Modelsim 的运行速度较快,而且其结果比较可靠,调错也相当方便。
本站所有的电路仿真都是在ModelSim 中完成。
真中必不可少的一步是给被测电路的输入信号给予激励。
种方法是直接给波形,但很多波形编辑器都不是很好用,我觉得Maxplus 是其中的佼佼者,只要点点鼠标就可以完成。