verilog 语法

一:截位

1.动态截位
vect_1[4+:3]表示,起始位为4,宽度为3,**升序**,则vect_1[4+:3] = vect_1[6:4]
vect_1[4-:3]表示,起始位为4,宽度为3,**降序**,则vect_1[4-:3] = vect_1[4:2]
2.固定截位
vect_1[A:B]
A和B必须只有一个是变量,不能同时为变量。————他人验证过

二.

1.位运算符: ~:表示非;&:表示与; |:表示或; ^:表示异或; ^~:表示同或。

2.逻辑运算符:!:表示非,;&&:表示与;||:表示或;

三.
 

1.极力推荐generate for写法

eg:

module A#

(

parameter x=16

)

(

);

genvar pin_count

generate for (pin_count=0;pin_count<x;pin_count=pin_count+1)

begin:action

这里就写被复制16次的模块

endmodule

四:

if(10<x<20)——只能写这样,不能写if(20>x>10)(条件会进不去,实际调试中遇到的问题)

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Verilog是一种硬件描述语言(HDL),用于描述数字电路和系统。以下是Verilog常用的语法元素: 1. 模块声明 Verilog程序由一个个模块(module)组成。模块声明包括模块名、输入和输出端口等。 ```verilog module module_name (input port1, input port2, output port3); // 模块内部代码 endmodule ``` 2. 数据类型 Verilog支持多种数据类型,包括、字、整数、浮点数等。 ```verilog // 类型 reg [7:0] data; // 8寄存器 // 字类型 reg [15:0] addr; // 16寄存器 // 整数类型 integer count = 0; // 浮点数类型 real value = 3.14; ``` 3. 运算符 Verilog支持多种运算符,包括算术运算符、运算符、逻辑运算符等。 ```verilog // 算术运算符 a + b; // 加 a - b; // 减 a * b; // 乘 a / b; // 除 a % b; // 取余 // 运算符 a & b; // 按与 a | b; // 按或 a ^ b; // 按异或 ~a; // 按取反 // 逻辑运算符 a && b; // 逻辑与 a || b; // 逻辑或 !a; // 逻辑取反 ``` 4. 控制语句 Verilog支持多种控制语句,包括条件语句、循环语句和跳转语句等。 ```verilog // 条件语句 if (condition) begin // 代码块 end else begin // 代码块 end // 循环语句 for (i = 0; i < 10; i = i + 1) begin // 代码块 end // 跳转语句 case (signal) 2'b00: // 代码块 2'b01: // 代码块 2'b10: // 代码块 2'b11: // 代码块 endcase ``` 5. 实例化模块 Verilog允许在一个模块实例化另一个模块。 ```verilog module module1 (input port1, output port2); // 模块内部代码 endmodule module module2 (input port3, output port4); module1 m1 (.port1(port3), .port2(port4)); endmodule ``` 以上是Verilog常用的语法元素,掌握这些基本语法是学习和设计FPGA电路的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值