Verilog语法笔记_基本概念

这篇笔记详细介绍了Verilog的模块定义与基本语法,包括模块的声明与使用,如module的结构,端口列表的定义,以及数字声明的规则。通过一个脉动进位计数器的例子展示了如何调用子模块,并强调了模块声明和结束的关键点。此外,还涵盖了注释、数字声明(包括指定位数和不指定位数的数值)以及高阻态和不确定值的表示方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

语法经常记混淆,忘掉细节,记录一下一些易错和遗忘的地方。

 

一、模块

相当于函数 —— module

//语法格式

 

module <模块名> (<模块端口列表>);

。。。

<模块内容、功能>;

。。。

endmodule

 

//ripple_carry_counter(脉动进位计数器)的例子

module ripple_carry_counter (q, clock, reset);

 

ouput [3:0] q;

input clk, rst;

 

//调用子模块

T_FF tff0 (q[0], clk, rst);

T_FF tff1(q[1], q[0], rst);

T_FF tff2(q[2], q[1], rst);

T_FF tff3(q[3], q[2], rst);

 

endmodule

 

//注意点:

1. module声明最后有;分号。

2. endmodule没有分号。

3. 可以在端口列表中定义input、output端口。

4. q前面的[3:0]代表位宽为4bit,后面如有[3:0]代表为4个值的向量。

5. module内部不能定义子module。

 

二、基本语法

1、注释(和c一样)

一行// 或者多行

2、数字声明

指明位数的数:2'b11(二进制)、16'd255(十进制)、8'o77(八进制)、12'habc(十六进制)

不指名位数的数(位宽和计算机硬件有关):23456(32位十进制)、'hc3(32位十六进制)

高阻态和不确定值:12'h13x(12位十六进制,四个最低位不确定)、32'bz(32位高阻值)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值