Verilog语言初学1

Verilog语言初学1

  • Verilog初学
    • Verilog的一些常用标识符
    • 入门笔记

Verilog初学

本人初学Verilog,自己做一点笔记

Verilog的一些常用标识符

Verilog语言初学1_第1张图片

入门笔记

verilog基本单位:模块module
模块的基本语法:
module module_name(port_list);
定义项
描述项
endmodule
注意:定义项必须写在前面
例:半加器模块

module halfadd (A,B,Sum,Carry);
  input A,B;
  output Sum,Carry
  assign #2 Sum=A^B;
  assign #5 Carry=A&B;
endmodule //

描述模块各个语句都是并发的
在模块中,可以用以下几种方式来描述一个设计:
1 数据流描述
2 行为描述
3 结构描述
4 以上几种混合描述方式

时延:
例:assign #2 Sum=A^B;
#2就是指两个时间单位
使用编译指令可以将时间单位和物理时间单位关联
例如:
` timescale 1ns/100ps//时延单位位1ns并且时间精度位100ps

数据流描述方式:
基本机制就是使用连续赋值语句。在连续赋值语句中,某个值被指派给线网变量
例子:

module mux2_1( out1,  a,  b,  sel);
   input a,b,sel
   output out1;
   
   assign out1=(sel&b)|(~sel&a);
endmodule // 

行为描述
1. initial语句 执行一次
2. always语句 总是执行

	module mux2_1( out1,  a,  b,  sel);  //输出要写在前面
	       input a,b,sel
	       output reg out1;     
	    always@(sel or a or b)
	  
	    begin
	        if(sel)
	          out1=b;
	        else
	          out1=a;
	    end 
	endmodule //    行为描述规定,所有的输出一定十寄存器类型的

所有的输入一定是线性的
行为描述规定,所有的输出一定十寄存器类型的
所有的输入一定是线性的

你可能感兴趣的:(初学Verilog)