每个Verilog程序包括四个主要部分:端口定义、I/O说明、内部信号声明、功能定义。Verilog HDL是一种用于数字逻辑电路设计的语言。用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型。
Verilog HDL既是一种行为描述的语言也是一种结构描述的语言。这也就是说,既可以用电路的功能描述也可以用元器件和它们之间的连接来建立所设计电路的Verilog HDL模型。Verilog模型可以是实际电路的不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种:
1、系统级(system):用高级语言结构实现设计模块的外部性能的模型。
2、算法级(algorithm):用高级语言结构实现设计算法的模型。
3、RTL级(Register Transfer Level):描述数据在寄存器之间流动和如何处理这些数据的模型。
4、门级(gate-level):描述逻辑门以及逻辑门之间的连接的模型。
5、开关级(switch-level):描述器件中三极管和储存节点以及它们之间连接的模型。
扩展资料
一个复杂电路系统的完整Verilog HDL模型是由若干个Verilog HDL模块构成的,每一个模块又可以由若干个子模块构成。其中有些模块需要综合成具体电路,而有些模块只是与用户所设计的模块交互的现存电路或激励信号源。
利用Verilog HDL语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构来描述极其复杂的大型设计,并对所作设计的逻辑电路进行严格的验证。Verilog HDL行为描述语言作为一种结构化和过程性的语言,其语法结构非常适合于算法级和RTL级的模型设计。
Verilog的设计初衷是成为一种基本语法与C语言相近的硬件描述语言。这是因为C语言在Verilog设计之初,已经在许多领域得到广泛应用,C语言的许多语言要素已经被许多人习惯。一种与C语言相似的硬件描述语言,可以让电路设计人员更容易学习和接受。
不过,Verilog与C语言还是存在许多差别。另外,作为一种与普通计算机编程语言不同的硬件描述语言,它还具有一些独特的语言要素,例如向量形式的线网和寄存器、过程中的非阻塞赋值等。总的来说,具备C语言的设计人员将能够很快掌握Verilog硬件描述语言。
参考资料来源:
百度百科——Verilog HDL
module 设计模块名称(端口声明,例如 a,b,c);
端口属性设置,例如 in a,b;out c;
变量声明,例如 reg a_reg,b_reg;
wire a_in,b_in;
赋值并行语句,例如 a_in = a;
进程语句,例如 always@(posedge a)
begin
a_reg = a_in;
end
endmodule
不一定每个模块都会有什么什么4个部分。
1.端口声明是必须的,也就是module(input xxx,output xx)
2.变量声明不一定要写,因为你不写也是默认wire,在一个模块中,全部用wire的也是可以的。这个可能涉及到下面说的
3.赋值语句 这个包括进程赋值和assign赋值,当然这也不是必须的。因为进程赋值的对象是reg,如果这个不是必须,那么reg的声明也不是必须了。所以前面说的变量声明不是必须可以成立。可以说是不用自己声明。
4.进程也当然不是必须的。
5.以上所说的不是必须的情况基本出现在顶层模块的设计中。顶层模块的设计一般推荐只使用模块的例化或者变量声明,一般assign赋值都不写到这里面。
6.如果是通用的设计。一般就包括推荐答案的回答了。
7.当然,endmodule是必须的........
模块声明、端口定义、信号类型声明和逻辑功能定义
时钟,使能,复位,输出么?