亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Verilog

Verilog - 简而言之

所有的行为代码都写在module里面 和 endmodule .因此,无论您打算创建什么数字设计,它都会进入 module 堵塞。它可能有也可能没有定义端口 - 允许信号以 input 的形式进入模块 或将块转义为 output .

模块

下例中的空模块称为 testbench .你可以随意命名,但它应该是字母数字,并且可以包含'_'。

<无脚本> testbench module
  
  
module testbench;

endmodule

  

让我们看看另一个模块。它有几个信号(d, clk, rstb ) 声明为输入和 q 声明为输出。

<无脚本> dff ports
  
  
module dff (input d,
                  clk,
                  rstb,
            output q);
endmodule

  

数据类型

现在我们已经了解了模块的外观,让我们再次查看 testbench 模块,看看可以在模块中放入什么。 verilog 中主要有两种类型的数据类型:

一个 reg 数据类型用于保存变量之类的值,而 wire 就像电线一样,必须连续驱动。所以通常 wire 用于连接多个模块之间,以及其他信号。

  
  
module testbench;
	
	reg d;
	reg rst_b;
	reg clk;
	
	wire q;
endmodule

  

作业

Verilog 有三个基本块:

always @ (条件 ) 条件满足时执行
initial 在模拟开始时只执行一次
assign [左轴] =[右轴] 只要 RHS 发生变化,LHS 的值就会更新

编写 Verilog 时需要牢记一些规则:

  
  
module testbench;
	
	reg d;
	reg rst_b;
	reg clk;
	
	wire q;
	
	initial begin
		d = 0;
		rst_b = 0;
		clk = 0;
		
		#100 $finish;
	end
	
	always begin
		#10 clk = ~clk;
	end
endmodule

  

注意 上图示例如下:


Verilog

  1. Verilog 教程
  2. Verilog 连接
  3. Verilog 作业
  4. Verilog 阻塞和非阻塞
  5. Verilog 函数
  6. Verilog 任务
  7. Verilog 分层参考范围
  8. Verilog 时钟发生器
  9. Verilog 数学函数
  10. Verilog 时间格式
  11. Verilog 时间刻度范围
  12. Verilog 文件 IO 操作