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数字系统设计教程》——夏宇闻