1.Verilog代码结构

一般在一个.V文件里面 只写一个module

每个模块只实现特定单一的内容,然后把模块组装起来,完成一个复杂的数字电路系统。

module的优点:

1.将系统分成多个module,降低设计难度。

2.利于团队协作。

3.有利于bug的解决。

4.分而治之,逐个击破。

2.module模块编写

3.模块的参数(全局与局部)

模块可以定又参数,参数的意又就是可以根据不同需要配置不同的参数,提高模块的复用性。

关于参数的定义有多种方式,首先我们来看全局参数的定义

4.变量reg与wire的用法和区别

module Ex4#(
    parameter p0 = 0    
)(
    input   i_clk       ,
    input   i_rst       ,
    input   a           ,
    output  b               
)

reg             r_a1        ;
reg  [7 :0]     r_a2        ;
reg  [15:0]     r_a3,r_a4   ;
reg  [15:0]     r_a5        ;

wire            w_b1        ;
wire [7 :0]     w_b2        ;
wire [15:0]     w_b3,w_b4   ;
wire [15:0]     w_b5        ;
wire [15:0]     w_b6        ;

assign w_b1 = r_a1          ;
assign w_b2 = r_a2          ;
assign w_b3 = r_a3          ;
assign w_b4 = r_a4          ;
assign w_b5 = w_b3 & w_b4   ;
assign w_b6 = r_a3 & r_a4   ;

always@(posedge i_clk,posedge i_rst)
begin
    r_a1 <= a;
    r_a2 <= 8'd1;
    r_a3 <= 16'h2;
    r_a4 <= 'd3;
end

always@(*)
begin
    r_a5 <= r_a3 & r_a4;
end


endmodule

5.时序逻辑与组合逻辑

6.if分支语句

7.case选择语句

8.常用的运算符与优先级

9.顶层与module例化调用