Verilog HDL和VHDL都是由于逻辑设计的硬件语言,并且都已成为IEEE标准,严格来讲,VHDL要比verilog先一步成为IEEE标准的。在上一节的基础讲了Verilog HDL基本结构的基础上,这一节来讲讲VHDL的基本结构。
VHDL的基本设计单元结构包括程序包说明、实体说明和结构体说明三部分。
同样的二分频的例子用VHDL描述成:
LIBRARY IEEE;
-- 库、程序包的说明调用
USE IEEE.Std_Logic_1164.ALL;
ENTITY FreDevider IS -- 实体声明
PORT
(Clock,rst: IN Std_logic;
Clkout: OUT Std_logic
);
END;
ARCHITECTURE Behavior OF FreDevider IS -- 结构体定义
SIGNAL Clk:Std_Logic;
BEGIN
PROCESS(Clock, rst)
BEGIN
IF rising_edge(rst) THEN
Clk<=’0’;
ELS IF rising_edge(Clock) THEN
Clk<=NOT Clk;
END IF;
END PROCESS;
Clkout<=Clk;
END;
看完之后,你有木有发现也有很多成双成对的关键字呢?这正好呼应了讲verilog基本结构时提到的同时输入配对关键字的习惯。接下来,根据上面的例子来说明VHDL语言的结构的各个部分。
格式为:
LIBRARY 库名;
USE 库名.程序包名.项目名;
描述所设计的系统的外部接口信号,定义电路设计中所有的输入和输出端口,主要包括实体名,类属说明,端口定义三部分。
实体名由设计者自由命名,用来表示被设计电路芯片的名称,但是必须与VHDL程序的文件名称相同。
类属为设计实体与外界通信的静态信息提供通道,用来规定端口的大小、实体中子元件的数目和实体的定时特性等。
端口定义的格式:端口名:端口方向 端口类型。
端口方向分为IN,OUT,INOUT,BUFFER四种,若实体内部需要反馈输出信号,则输出端口必须被设置为“BUFFER”,而不能为“OUT”
整个实体的格式如下:
ENTITY 实体名 IS
[ GENERIC(常数名:数据类型:设定值)] /// 类属说明
PORT
(
端口名1:端口方向 端口类型;
端口名2:端口方向 端口类型;……
端口名n:端口方向 端口类型
);
END [实体名];
例子中
ENTITY FreDevider IS -- 实体声明
PORT
(
Clock,rst: IN Std_logic;
Clkout: OUT Std_logic
);
END;
这段程序为实体(Entity)部分,包括实体的名称FreDevider,端口的定义Clock,rst为输入口,Clkout为输出口。
结构体定义了设计单元具体的功能,描述了该基本设计单元的行为、元件和内部的连接关系。一个实体可对应多个结构体,每个结构体代表该实体功能的不同实现方案或不同实现方式。同一时刻只有一个结构体起作用,通过CONFIGURATION决定用哪个结构体进行仿真或综合。
结构体的格式:
ARCHITECTURE 结构体名 OF 实体名 IS
[声明语句]
BEGIN
功能描述语句
END [结构体名];
前面我们讲了verilog HDL和VHDL的基本结构,那么就会有人问verilog HDL和VHDL学习哪个好呢?要知道,每个编程语言都有各自的优缺点,不能单一说哪个更好,能说的是它适用的场合,这也跟本身语言的发展有关。
这两种语言都是用于数字电子系统设计的硬件描述语言,而且都已经是 IEEE 的标准。两者有很多共同的特点,最实际的一句话讲就是都能描述硬件电路,更多的我们关心的是两者有什么区别。
VHDL 要比 Verilog历史要长,这是因为 VHDL 是美国军方组织开发的,而 Verilog 是一个民用公司的私有财产转化而来的。Verilog 能从民用公司私有财产转化能成为 IEEE 标准说明所以说 Verilog 有一定的优越性,拥有广泛的设计群体,资源也比 VHDL 丰富。
Verilog另外一个优势是它非常容易掌握,和 C 语言比较相似,只要有C 语言的编程基础,通过比较短的时间,经过一些实际的操作,可以在 2 ~ 3 个月内掌握这种设计技术。而 VHDL 设计相对要难一点,由于他的军用性,不像Verilog那么直观,同时需要有 Ada 编程基础,一般认为至少要半年以上的专业培训才能掌握, 是一种比较严谨的语言。
目前版本的 Verilog HDL 和 VHDL 在行为级抽象建模的覆盖面范围方面有所不同。一般认为 Verilog 在系统级抽象方面要比 VHDL 略差一些,而在门级开关电路描述方面要强的多。
通过以上verilog HDL和VHDL比较说明,对于我们大部分在民用开发领域打拼的同志们来讲,verilog还是大多数工程师的首选,我们**了,呵呵!
在上一节,我们对verilog HDL和VHDL进行了比较,在民用开发领域,verilog HDL占有优势。Verilog行为描述的用于综合的历史不长,而用于算法级描述的VerilogHDL模块,只有部分综合器能把它转换成标准的逻辑网表;用系统级描述的模块,目前尚未有综合器能把它转化为标准的逻辑网表,往往只能用于系统仿真,即编写测试信号对已经设计的电路部分进行全面的测试和验证,故verilog HDL在建模能力方面相对VHDL会有一定的不足。
针对这些不足,Accellera的SystemVerilog工作组开始寻求在Verilog基础之上创建一种新的设计语言,并通过增加一系列丰富的验证性能对其进行扩展。目前,IEEE已经批准了SystemVerilog标准,有时我们称为第三代的verilog,它具有以下特点:
以前都是独立地对它们进行描述,并且有时候采用专门的语言。尽管采用Verilog时也使用了这些能力,但通常需要采用独立的工具,这些工具必须通过编程语言接口(PLI)和应用编程接口(API)与仿真器一起使用。结果并不合乎要求,而且不能获得足够的性能。
设计人员没必要为了利用SystemVerilog所给定的许多特性而一次性地将整个语言都消化吸收。实际上,用户只需要简单地将SystemVerilog的构件添加到他们现有的RTL环境中即可。
如今很多厂家的开发工具都已经支持SystemVerilog了,有了它在系统级层次建模的优势,verilog的前途更是一片银光洒满天下啊,敞亮!呵呵!
用户961355 2013-4-27 11:25
用户427466 2012-10-27 12:43
用户603678 2012-10-27 09:51
用户427466 2012-10-24 23:23
用户1607905 2012-10-24 22:16
用户1531838 2012-10-18 22:36