自学Verilog(三)

Verilog基本概念

了解Verilog HDL程序的框架

刷题推荐

链接: Verilog刷题

常用Verilog语法(2)

赋值语句和块语句

赋值语句

信号有两种赋值方式
1)非阻塞赋值(b <= a)
a、块结束后才能赋值操作
b、b的值并不是立刻改变的
2)阻塞赋值(b = a)
a、赋值语句执行完之后,块才结束
b、b的值在赋值语句执行后改变

块语句

1)顺序块
格式:
begin
语句1;
语句2;
end
或者
begin:块名
块内声明语句
语句1;
语句2;
end
特点:
a、顺序执行语句;
b、每条语句的延迟时间是相对于前一条语句的仿真时间而言的;
c、知道最后一条语句执行完才跳出该语句块;
d、块内声明语句可以是参数声明语句、reg型变量声明语句、integer型变量声明语句和real型变量声明语句。

parameter d = 50;	//声明d是一个参数
reg [7:0] r;		//声明r是一个8位的寄存器变量
begin
	#d r ='h35;
	#d r ='hE2;
	#d r ='h00;
	#d r ='hF7;
	#d -> end_wave;//触发事件end_wave
end

1)并行块
格式:
fork
语句1;
语句2;
join
或者
fork:块名
块内声明语句
语句1;
语句2;
join
特点:
a、块内语句是同时执行的;
b、每条语句的延迟时间是相对于进入到块内的仿真时间而言的;
c、延迟时间是用给赋值语句提供执行时序的;
d、当块内最后的语句执行完,或一个disable语句执行时,程序流程控制跳出该程序块;
e、块内声明语句可以是参数声明语句、reg型变量声明语句、integer型变量声明语句、real型变量声明语句、time型变量声明语句和事件(event)说明语句。

fork
	#50  r ='h35;
	#100 r ='hE2;
	#150 r ='h00;
	#200 r ='hF7;
	#250 -> end_wave;
join

在这个例子中用并行块替代了前面例子中的顺序块来产生的波形。
自学Verilog(四)链接: 常用Verilog语法(3)

这里是引用《Verilog数字系统设计教程》——夏宇闻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值