Verilog HDL 基本结构

Verilog HDL基本结构

  • Verilog HDL基本结构
        • Basic structure
        • Format one:
        • Format two:
          • *RTL(Register Transfer Level)分析结果:*
          • *RTL(Register Transfer Level)分析结果:*
          • *Simulation:*
      • *Summary*
        • Example

Verilog HDL基本结构

  • HDL(Hardware Description Language)硬件描述语言是对硬件电路进行行为描述、寄存器传输描述或结构化描述的一种语言。
  • FPGA作为可编程硬件,采用HDL语言作为编程语言。
  • 通过HDL语言可以对FPGA的功能进行描述,描述完成后的源代码,通过综合(将高层次的寄存器传输级别的HDL设计转化为优化的低层次的逻辑网表)和实现及目标文件后,下载到FPGA以实现对FPGA进行配置。(两种下载方法1、Jtag 调试模式 2、下载到FLASH)
  • 配置后的FPGA实现了HDL语言描述功能

Basic structure

module name (port1,port2);
...
...
...
endmodule
// Description:从模块的声明开始,最开始是关键字module,然后是这个模块的名字叫name,最后是endmodule。

Format one:

module AND4(a,b,out); 
output [3:0] out;
input [3:0]a,b;
assign out = a & b;
endmodule
// Description:4位输入a和b相与,out输出; 

Format two:

module AND4(input [3:0] a,input [3:0] b,output [3:0] out);
assign out = a&b ;
endmodule
RTL(Register Transfer Level)分析结果:

Verilog HDL 基本结构_第1张图片

Description: 2个输入端口,1个输出端口。输入端口a,b分别连接4个数据缓冲器,通过与门将数据传送输出端口的数据缓冲器,最后由输出端口out输出。

module FenPin(input clk_in,output clk_out);
reg c_out =0;
assign clk_out =c_out;
always @(posedge clk_in)
    begin
        c_out = ~ c_out;
    end
endmodule

RTL(Register Transfer Level)分析结果:

Verilog HDL 基本结构_第2张图片

Simulation:

Verilog HDL 基本结构_第3张图片

Summary

  1. Verilog HDL程序是模块构成的,每个模块嵌套在module 和endmodule声明语句中。
  2. 每个Verilog HDL源文件中*只有一个顶层模块,其他为子模块。可以每个模块写一个文件。*
  3. 每个模块要进行端口定义,并说明输入输出端口,然后对模块的功能进行行为逻辑描述。
  4. 模块中的时序逻辑部分在always块内部,在always块中只能对寄存器变量赋值。
  5. 模块中对端口或者其他wire型变量赋值必须在always块的外部使用assign语句,通常是将寄存器的值送出
  6. 程序书写自由,一行可以写几个语句,一个语句也可以分多行写。
  7. 除了endmodule语句、begin_end语句和fork_join语句外,每个语句和数据定义的最后必须有分号。
  8. 可以使用/* */和 //…对程序的任何部分作注释。加上必要的注释,可以增强程序的可读性和可维护性。

Example

Verilog HDL 基本结构_第4张图片

你可能感兴趣的:(#,Verilog,HDL)