Verilog HDL-1

-风格描述介绍
-测试平台的编写

门级风格的描述

数据流风格描述方式是最常用的一种风格,用数据流描述方式对一个设计建模的最基本机制就是使用连续赋值语句。在连续赋值语句中,线网类型变量被赋予某个值,右边表达式的操作时无论何时发生变化,表达式都要重新计算,计算结果被赋予左边表达式的线网类型变量。
---

数据流风格的描述

数据流风格描述方式是最常用的一种风格,用数据流描述方式对一个设计建模的最基本机制就是使用连续赋值语句。在连续赋值语句中,线网类型变量被赋予某个值,右边表达式的操作时无论何时发生变化,表达式都要重新计算,计算结果被赋予左边表达式的线网类型变量。
1
2
3
4
5
module mux_flow(out,a,b,sel);
input a,b,sel;
output out;
assign out=(sel)?b:a; //连续赋值
endmodule

行为风格的描述

行为风格使用initial语句(语句只执行一次)和always语句(重复执行),只有变量类型数据能够在这两种语句中被赋值,所有initial语句和always语句在0时刻开始并发执行 undefined ---

测试平台的编写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
module testMux;
reg pa,pb,psel;
wire pout;
mux_beha tmux(pout,pa,pb,psel); //调用
initial
begin
pa=0;pb=0;psel=0;//赋初值
#5 pa=1; //五个单位时间延迟后进行赋值
#5 pb=1;
#5 pa=0;
#5 psel=1;
#5 pa=1;
#5 pb=0;
#5 pa=0;
end
initial
$monitor("time=%t,a=%b.b=%b,sel=%b,out=%b",$time,pa,pb,psel,pout);
//调用系统任务$monitor,当pa、pb、psel、pout中任一个发生变化时就输出显示
endmodule

Thanks for your reward!