驴——verilog入门笔记

部分截图来自b站

1模块结构

屏幕截图(4)

记住这个结构,学习verilog的前提是先看懂

举例

1
2
3
4
5
6
7
8
9
module Full_adder(
output Fi,
output Cout,
input Ai,
input Bi,
input Cin
);
assign {Cout,Fi}=Ai+Bi+Cin;
endmodule

屏幕截图(5)

2assign赋值语句

屏幕截图(6)

3always语句

image-20230616170908710

类似于If,后面的条件满足时才执行下面的语句

always后的条件有两种:边沿敏感,电平敏感

写法:

image-20230616171228130

另外如果always后有多条赋值语句,则需要用begin end围起来

例如

1
2
3
4
5
always @(a,b,cin)
begin
s...
count...
end

4模块调用

在其他模块里调用已经写好的模块,类似于方法调用,需要对象名和方法参数

举例

1
2
3
4
5
//已存在方法A(CLK,I,O)

//调用A
A a1(.CLK(clk),.I(i),.O(o))//这样写参数比较规范
A a2(clk,i,o)//这样也行,按顺序

5门原语调用

image-20230616174731732

输出在前,输入在后

6If语句

if +(条件)+ 执行语句 ;

else

7case语句

case(表达式)

取值1:语句1;

取值2:语句2;

default: 默认;

endcase