Verilog语法

1.逻辑值

0

1

z:高阻态,无驱动

还有一种状态是,亚稳态,介于0 1之间。

2.关键字

module:模块的开始                    endmodule:模块的结束

input:输入信号                            output:输出信号                                    inout:输入输出信号

3.变量

线网型变量 wire

寄存器型变量 reg

4.参数

parameter//实例化时参数可修改

localparam//不可修改

5.常量

基数表示法

格式:[换算为二进制后的总长度]['][数值进制符号][与数值进制符号对应的数值]

eg:8'd171   表示为位宽是8bit,十进制的171

h:16进制                     o:8进制                   b:2进制         d:10进制

Verilog会为常量自动匹配合适的位宽,当总位宽大于实际位宽,则在左边自动补零,当总位宽小于实际位宽,则在左边自动截停超出的位数。如果直接写参数,如100,表示位宽为32bit的十进制数100。

阻塞赋值(顺序赋值)"="

a=1;
b=2;
c=3;
begin 
    a = b;
    c = a;
end 
a=2;
b=2;
c=2;

非阻塞赋值(同时进行)“<=” 

a=1;
b=2;
c=3
begin 
    a <= b;
    c <= a;
end 
a=2;
b=2;
c=1;

 always语句

assign语句

算数运算符和C一样

操作符操作符号优先级
单目运算+ - ! ~最高
乘、除、取模* / %
加减+ -
移位<<  >>
关系<  <=  >  >=
等价==  !=  ===  !===
归约& ~&
^ ~^
| ~|
逻辑&&
||
条件?:最低
  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值