1、简介
Verilog HDL是一种硬件描述语言,专门用于设计数字系统,比如网络交换机,微处理器,存储器,甚至简单的触发器。利用Verilog HDL,用户可以在任何层次(Level)上设计任何数字电路。一个简单的D触发器代码如下:
1 // D flip-flop Code
2 module d_ff ( d, clk, q, q_bar);
3 input d ,clk;
4 output q, q_bar;
5 wire d ,clk;
6 reg q, q_bar;
7
8 always @ (posedge clk)
9 begin
10 q <= d;
11 q_bar <= ! d;
12 end
13
14 endmodule
Verilog HDL是硬件设计工业里面最常用的设计语言之一,允许我们从行为级(Behavior Level)、寄存器传输级(Register Transfer Level (RTL))、门级(Gate level)或开关级(switch level)进行设计。通过Verilog HDL,我们使用行为构造来表达设计,而不需要关心具体实现细节。
2、开发样式
和其他语言一样,Verilog HDL允许用户采用自上而下或自下而上两者设计方法。
自下而上的设计方法是电子设计中的一种传统方法。该方法在门级进行设计,基于标准门单元。然而,随着设计的复杂度的提高,设计本身几乎变得无法维护,比如包含集成电路或微处理器的系统通常至少包含数千个晶体管。因而,传统的自下而上的设计方法必然被一种新的分层设计方法所代替。
目前,几乎所有设计师均采用自上而下的设计方法。 一个真正的自上而下的设计允许人们进行早期测试,轻松更改各种技术,结构化系统设计。 但是遵循纯自顶向下的设计非常困难。 因此,大多数设计会将两种方法混合起来,集成了两种设计风格的一些关键要素。
3、Verilog的抽象模型
Verilog支持三种抽象模型:行为级、寄存器传输级、门级。
行为级描述了一种并发算法(行为)系统。 每种算法本身都是顺序的,这意味着它由一组依次执行的指令组成。 功能,任务和始终块是主要元素,这些 与设计的结构实现无关。
寄存器传输级的设计是通过说明寄存器之间的操作和数据传输来指定电路的特性, 设计里面会使用显式时钟。 RTL设计包含确切的时序范围:操作安排在某些时间进行。 现代RTL代码定义为“任何可合成的代码都称为RTL代码”。
在逻辑级别内,系统的特征由逻辑链接及其时序属性描述。 所有信号均为离散信号。 它们只能具有确定的逻辑值(“ 0”,“ 1”,“ X”,“ Z”),对他们的操作必须是预定义的逻辑原语(AND,OR,NOT等门)。 对于任何级别的逻辑设计,使用门级建模都不是一个好主意。 门级代码由诸如综合工具之类的工具生成,该网表用于门级仿真和后端。
|