FPGA语法小记

本文详细解析了Verilog中的parameter、localparam与define的区别,并对比了阻塞赋值与非阻塞赋值的特点及应用场景。此外,还介绍了$display、$strobe等系统任务的功能差异,以及透明锁存器、RAM与FIFO的实现原理。

1.parameter,localparam,define的区别

define 定义的常量作用范围是整个工程,使用是需要加 ' 。
parameter 作用范围为整个模块,使用是直接用常量名。 并且可以通过例化改变变量的值。
localparam 作用范围,使用方法同上。不能通过例化改变变量的值。

2. 阻塞赋值和非阻塞

1.是否能立即使用:阻塞赋值能立即使用,非阻塞赋值不能。
2.结束方式:阻塞赋值完成,过程块结束。过程块结束非阻塞赋值结束。
3.是否会阻塞其他语句: 阻塞赋值语句会阻塞下面的语句执行。
4.阻塞赋值长用于时序电路,非阻塞赋值用于组合逻辑电路。

3.$strobe $display $wirte $monitor

区别:
	$display $wirte 都用来显示变量的值,区别dispaly 会加/n 换行符
	$strobe 在当前时刻的末尾进行变量输出打印。
	$monitor 对输出变量的值进行监视,但是任意时刻只能有一个模块调用moniot。所以需要配合monitoron monitoroff 一起使用。

透明锁存器

在always 块中所有的信号都必须有明确的值,即在赋值表达式右端参与赋值的信号都必须在敏感列表中列出来。
没有列出的信号会在综合时隐含的产生一个透明锁存器,应为要保存值的变化,等待过程块被触发。

RAM FIFO

RAM分为单口和双口,区别就是单口是一组信号与地址线。双口是两组信号与地址线。
双口RAM和伪双口RAM的区别是,一个是两个口都能进行同时读写,另一个是一个口读一个口写。
FIFO为伪双口类型。

位宽深度

reg [FIFO_WIDTH-1:0] 		memory[A_MAX-1:0];

中断极性

中断极性:如果中断边沿触发分为上升沿和下降沿,如果中断是电平触发分为高电平和低电平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值