前言
Verilog HDL(简称 Verilog )是一种硬件描述语言,用于数字电路的系统设计。可对算法级、门级、开关级等多种抽象设计层次进行建模。Verilog 继承了 C 语言的多种操作符和结构,与另一种硬件描述语言 VHDL 相比,语法不是很严格,代码更加简洁,更容易上手。Verilog 不仅定义了语法,还对语法结构都定义了清晰的仿真语义。因此,Verilog 编写的数字模型就能够使用 Verilog 仿真器进行验证。
注:本教程使用软件版本为Quartus II 13.1.0 仿真使用 modelsim进行。
基础知识:数字电路基础,微电子与集成电路设计导论,C程序设计(快速上手)。
正文
一、EDA技术及其实现目的
20世纪之后,电子技术飞速发展,出现大量专用集成电路ASIC。EDA技术作为现代电子设计技术的核心,其在于利用硬件描述语言HDL和EDA软件完成对系统硬件的实现,即其最终目的是为了实现专用集成电路ASIC。实现该目的有三种途来完成。
1.可编程逻辑器件
FPGA和CPLD是主流器件,可直接面向用户,使用方便,开发效率高,成本低,也常被称为可编程专用IC,或可编程ASIC。
2.半定制或全定制ASIC
统称为掩膜ASIC,或直接称为ASIC,较可编程逻辑器件不同的是后者更灵活多样。常分为门阵列ASIC(指定的互连路径),标准单元ASIC(指定的逻辑单元),全定制ASIC(兼并前二者)
图1 FPGA 组成(Xilinx FPGA)
3.混合ASIC
既有面向用户的FPGA可编程功能,也含有方便调用的硬件标准单元模块。
二、硬件描述语言
目前常用HDL有VHDL,Verilog HDL,System Verilog和System C,其主流为VHDL与Verilog HDL,这里只介绍这两种。VHDL是由美国国防部(DOD)于1938年发起;Verilog HDL最初由Gateway Design Automation公司(GDA)发起,1989年由Cadence公司收购并于1990年成立OVI组织进行完善。
传统电子设计手工设计占较大比例,过程繁杂,设计文档繁多,复杂电路无法调试和设计,错误不易查找和修改,可移植性差。对EDA技术而言,EDA技术可以进行模拟验证,从而降低成本,HDL语言本身为文档型语言,可简化文档管理,充分利用计算机自动设计能力进行仿真调试,大大缩短设计周期。硬件描述语言是EDA技术的重要部分,EDA技术服务于现代电子设计,由于EDA技术的特点,使现代电子设计形成了自顶向下的设计方法,而在这个过程中最重要的就是HDL综合。
1.VHDL与Verilog HDL对比
Verilog HDL部分语法参照C语言语法设计(与C语言有本质区别),具有很多C语言的优点,有C语言知识可以快速上手,具有很强的电路描述和建模能力。VHDL语法严谨,易排除设计中的疏忽,有很好的行为描述能力,相比于Verilog HDL其代码较长,数据类型匹配要求严格。
2.自顶向下设计技术
设计阶段分为:提出设计、建立HDL行为模型、HDL行为仿真、HDL-RTL级建模、前端功能仿真、逻辑综合、测试向量生成、功能仿真、结构综合、门级时序仿真、硬件测试。
3.HDL综合
将行为和功能表达电子系统转化为低层次便于实现的模块组合装配过程,现代电子设计过程就是从高层到底层的综合,即自顶向下的设计:自然语言到Verilog HDL语言的自然语言综合、算法表述到寄存器传输表达的行为综合、RTL表达到逻辑门表述的逻辑综合、逻辑门表述到版图级表述的版图综合或称为结构综合。
三、EDA设计流程
1.设计输入
将电路以一定的表达方式输入到计算机中,常可分为:
图形输入(原理图、状态图、波形图):通过对应的图形进行设计,设计方法未标准化,文件兼容性、易读性差,无法真实意义上实现自顶向下的设计,常用于教学演示。
HDL输入:通过硬件描述语言对电子系统的描述,使得它能够被计算机程序读取、理解和转换为实际的硬件电路。
2.综合
前面已对综合的概念做了介绍。
3.适配
适配器也叫结构综合器,它的功能是将由综合其产生的网表文件配置与制定的目标器件中使之产生最终的下载文件。
4.时序仿真与功能仿真
在编程下载前,必须利用EDA工具对适配生成的结果进行模拟测试。一般分为时序仿真和功能仿真。
时序仿真就是接近真实器件进行特性的仿真,仿真文件中包含了器件硬件参数特性,因此仿真精度高,一般其产生的仿真网表文件中包含了精确的硬件延时信息。
功能仿真是直接对HDL原理图描述或者其他描述形式的逻辑功能进行测试模拟。以了解其实现的功能是否满足源设计的要求,仿真过程,不涉及任何具体器件的特性,本教程的仿真使用ModelSim专业仿真器。
5.编程下载
将适配后的生成的下载或配置文件通过编程器或编程电缆向FPGA或CPLD下载,以便进行硬件测试和验证。
6.硬件测试
将含有载入了设计文件的FPGA或CPLD的硬件系统进行统一测试,以便最终验证设计项目在目标系统上的实际工作情况,以排除错误改进设计。
四、Quartus II及IP核
1.Quartus II
Quartus II是Altera公司提供的开发设计平台,内部包括模块化的编译器,包括分析/综合器,适配器装配器,时序分析器,设计辅助模块,EDA网表文件生成器,编辑数据接口,支持各类硬件描述语言。
2.IP核
知识产权核或知识产权模块,在EDA技术开发中,IP核具有十分重要的地位。 IP定义为用于ASIC或FPGA中的预先设计好的电路功能模块。分为软IP固IP 硬 IP。软IP是用硬件描述语言描述的功能块。固IP是完成了综合的功能块。硬IP提供设计的最终阶段产品掩模。