verilog初识-initial、always、task、function、递归函数automatic

本文讲述了Verilog中的initial、always、task和function的用法,涉及初始化、逻辑控制、任务和函数调用,是电路设计入门教程。

verilog初识-initial、always、task、function

1.initial

一个程序中可以有多个initial语句块,多个initial说明语句并行执行,一个initial语句块仅执行一次
initial多用于对变量的初始化。
如:(1)用initial块对存储器变量初始化

inital
	begin
		areg = 0;	//初始化寄存器变量areg
		for(index = 0; index < size; index = index + 1)
			meory[index] = 0;	//初始化memory变量
	end

(2)用initial语句生成激励波形

initial 
	begin
		inputs = b'0000;	//初始时刻inputs为0
		#10 inputs = b'1010;	//在第10个单位时间后改变inputs的值
		#10 inputs = b'0101;	//在第20个单位时间后改变inputs的值
	end

2.always

一个程序中可以有多个always语句块,每个always说明语句在仿真的开始同时执行;always语句不断重复地执行,直到仿真结束。always语句后紧跟的过程块是否运行,要看它的触发条件是否满足,一旦触发条件满足,则运行过程块,直至仿真过程结束。
其声明结构如下:
always (时序控制) 语句
always如果没有时序控制,会使仿真器产生死锁。如:
always areg = ~areg;
这条语句会生成一个0延迟的无限循环跳变过程,会导致仿真器发生死锁。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值