verilog笔记-- 结构说明语句、$display语句注意项

1.initial语句
一个模块中可以存在多个initial语句,每个语句只能执行一次,都是并行运行的。initial语句常用于测试文件和虚拟模块的编写,用来产生仿真测试信号和设置信号记录等环境。
用initial语句对变量进行初始化的过程不需要任何仿真时间,即在0ns时间内就可完成初始化工作。

2.always语句
always #half_period areg = ~areg;
生成了一个周期为2HP的无限延续的信号波形,模拟时钟信号。
一个模块中可以有多个always块,都是i并行运行的。如果这些always块是可以综合的,则表示的是某种结构;如果不可以综合,则表示电路结构的行为。
always块的触发方式:OR事件控制、电平控制

//电平敏感时序控制
always
	wit(count_enable)
	#20 count = count+1;

2.task和function语句
这两个语句分别用来定义任务和函数,区别是:
函数只能与主模块共用一个仿真时间单位,而任务可以定义自己的仿真时间单位;
函数不能启动任务,而任务能启动其他任务和函数;
函数至少要有一个输入变量,而任务看有没有或有多个变量;
函数返回一个值,任务可以不返回值。

引用距离:

//任务
switch_bytes(old_word,new_word);
//函数
new_word = switch_byte(old_word);

3.$display语句
当输出列表中表达式的值包含不确定的值或高阻值,其结果输出遵循以下原则:
①表达式值的所有位均为不定值,则输出结果为小写的x;
②表达式值的所有位均为高阻态,则输出结果为小写的z;
③表达式值的部分位为不定值,则输出结果为大写的X;
④表达式值的部分位为高阻态,则输出结果为大写的Z;

猜你喜欢

转载自blog.csdn.net/Wangwenshuaicsdn/article/details/130187495
今日推荐