FPGA Verilog语言学习日志

Verilog 语言关键字总结

参考网址:工作总结之全网最全的103个Verilog关键字总结(下) (qq.com)icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzIyMzQ5MTY4OQ==&mid=2247484950&idx=2&sn=a2174b177943e351d805490375ecf3de&chksm=e81c2510df6bac066c30e02c719c58ff9c1436057070faf7cb4aed0750a5a5637f86e7246744#rd

1.     large

large关键字用于描述大型数字电路。在Verilog中,large通常用于描述大型数字电路的模块和子模块。以下是一个简单的large语句示例:

```

large module cpu(input clk, input [7:0] data_in, output [7:0] data_out);

// 大型数字电路的代码块

endmodule

```

在这个示例中,我们使用large关键字描述了一个大型数字电路模块cpu,用于处理输入信号data_in并输出信号data_out。

2.     macromodule

macromodule关键字用于描述宏模块。在Verilog中,macromodule通常用于描述复杂的数字电路。以下是一个简单的macromodule语句示例:

```

macromodule cpu(input clk, input [7:0] data_in, output [7:0] data_out);

// 复杂数字电路的代码块

endmodule

```

在这个示例中,我们使用macromodule关键字描述了一个复杂的数字电路模块cpu,用于处理输入信号data_in并输出信号data_out。

3.     medium

medium关键字用于描述中等规模的数字电路。在Verilog中,medium通常用于描述中等规模的数字电路模块和子模块。以下是一个简单的medium语句示例:

```

medium module adder(input [7:0] a, input [7:0] b, output [7:0] sum);

assign sum = a + b;

endmodule

```

在这个示例中,我们使用medium关键字描述了一个中等规模的数字电路模块adder,用于进行加法运算。

4.     module

module是Verilog中定义模块的关键字。模块是Verilog程序的基本单元,用于描述数字电路的行为和结构。每个模块都有一个唯一的名称,并包含输入端口、输出端口和内部信号。以下是一个简单的模块定义示例:

```

module my_module(input a, input b, output c);

assign c = a & b;

endmodule

```

在上面的示例中,定义了一个名为my_module的模块,包含两个输入端口a和b,一个输出端口c。模块实现了一个AND门的功能,将a和b的值进行与运算,并将结果赋值给c。

5.     nand

nand是Verilog中的逻辑门关键字,表示“与非”门。nand门的输出为输入信号的逻辑与的补码。以下是一个nand门的定义示例:

```

module my_nand(input a, input b, output c);

assign c = ~(a & b);

endmodule

```

在上面的示例中,定义了一个名为my_nand的模块,包含两个输入端口a和b,一个输出端口c。模块实现了一个nand门的功能,将a和b的值进行与运算,并将结果取反后赋值给c。

6.     negedge

negedge是Verilog中的时序关键字,表示下降沿触发。在时序电路中,negedge通常用于描述时钟信号的下降沿触发。以下是一个negedge的使用示例:

```

always @(negedge clk)

begin

// 在时钟下降沿触发时执行的代码

end

```

在上面的示例中,定义了一个时序块,当时钟信号的下降沿触发时,执行begin和end之间的代码块。

7.     nmos

nmos是Verilog中的MOSFET关键字,表示n型金属氧化物半导体场效应晶体管。在数字电路中,nmos通常用于实现开关和放大器等功能。以下是一个nmos的定义示例:

```

module my_nmos(input a, input b, output c);

nmos n1(c, a, b, 0);

endmodule

```

在上面的示例中,定义了一个名为my_nmos的模块,包含两个输入端口a和b,一个输出端口c。模块实现了一个nmos的功能,将a和b的值作为nmos的控制信号,控制nmos的导通和截止。

8.     nor

nor是Verilog中的逻辑门关键字,表示“或非”门。nor门的输出为输入信号的逻辑或的补码。以下是一个nor门的定义示例:

```

module my_nor(input a, input b, output c);

assign c = ~(a | b);

endmodule

```

在上面的示例中,定义了一个名为my_nor的模块,包含两个输入端口a和b,一个输出端口c。模块实现了一个nor门的功能,将a和b的值进行或运算,并将结果取反后赋值给c。

9.     not

not是Verilog中的逻辑门关键字,表示“非”门。not门的输出为输入信号的补码。以下是一个not门的定义示例:

```

module my_not(input a, output b);

assign b = ~a;

endmodule

```

在上面的示例中,定义了一个名为my_not的模块,包含一个输入端口a和一个输出端口b。模块实现了一个not门的功能,将a的值取反后赋值给b。

10.  notif0

notif0是Verilog中的时序关键字,表示当输入信号为0时触发。在时序电路中,notif0通常用于描述输入信号的变化。以下是一个notif0的使用示例:

```

always @(a) if(!a) begin

// 当a为0时执行的代码

end

```

在上面的示例中,定义了一个时序块,当输入信号a为0时,执行if和end之间的代码块。

11.  notif1

notif1是Verilog中的时序关键字,表示当输入信号为1时触发。在时序电路中,notif1通常用于描述输入信号的变化。以下是一个notif1的使用示例:

```

always @(a) if(a) begin

// 当a为1时执行的代码

end

```

在上面的示例中,定义了一个时序块,当输入信号a为1时,执行if和end之间的代码块。

12.  or

or是Verilog中的逻辑门关键字,表示“或”门。or门的输出为输入信号的逻辑或。以下是一个or门的定义示例:

```

module my_or(input a, input b, output c);

assign c = a | b;

endmodule

```

在上面的示例中,定义了一个名为my_or的模块,包含两个输入端口a和b,一个输出端口c。模块实现了一个or门的功能,将a和b的值进行或运算后赋值给c。

13.  output

output是Verilog中的端口关键字,表示模块的输出端口。在模块中定义output端口后,可以将输出信号连接到其他模块或外部设备。以下是一个output端口的定义示例:

```

module my_module(input a, input b, output c);

// 模块的逻辑实现

endmodule

```

在上面的示例中,定义了一个名为my_module的模块,包含两个输入端口a和b,一个输出端口c。模块的输出端口c可以连接到其他模块或外部设备。

14.  parameter

parameter是Verilog中的参数关键字,用于定义模块中的常量。在模块中定义parameter后,可以在实例化模块时对其进行赋值。以下是一个parameter的定义示例:

```

module my_module #(parameter WIDTH = 8) (

input [WIDTH-1:0] a,

input [WIDTH-1:0] b,

output [WIDTH-1:0] c

);

// 模块的逻辑实现

endmodule

```

在上面的示例中,定义了一个名为my_module的模块,包含两个输入端口a和b,一个输出端口c。模块中定义了一个名为WIDTH的parameter,其默认值为8。在实例化模块时,可以对WIDTH进行赋值,如下所示:

```

my_module #(WIDTH = 16) my_instance(a, b, c);

```

在上面的示例中,实例化了一个my_module模块,将WIDTH赋值为16。

15.  pmos

pmos是Verilog中的MOSFET关键字,表示p型金属氧化物半导体场效应晶体管。在数字电路中,pmos通

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值