verilog语言有三种描述方法:
(1)数据流描述:采用assign语句,该语句被成为连续赋值语句。
例:异或操作
assign out = ina^inb;
(2)行为描述:使用always和initial语句块,其中出现的语句称为过程赋值语句。
例:异步复位D触发器
always @(posedge clk or negedge rst_n) begin if (!rst_n) #DELAY out <= 1'b0; else #DELAY out <= data; end
(3)结构化描述:实例化已有的功能模块。包括三种形式:
a)module实例化:实例化已有的module;
b)门实例化:实例化已有的基本门原语;
c)UDP实例化:实例化用户定义的原语。
例:使用基本门进行异或操作
xor xor_a(out, ina, inb);