FPGA各位和数字IC设计岗位面试时常常会问下verilog的一些基本概念,做了下整理,面试时一定用得上!
1,reg与wire的区别:
相同点:
都能表示一种类型类型。
不同点:
wire
reg:
2,$stop:
表示停止命令,常用格式为,位于initial语句中:
#时间(N) $stop;
表示在(N)个时间单位后,停止仿真。
3,参数声明parameter:
在程序中需要多次使用同一个数字时,可以考虑采用参数来提高代码的简洁度,降低代码的设计量。
参数一经声明,就视其为一个常量,在整个过程中值不在改变。
其定义方式如下:
<变量名>=<变量定义>;
例如:
parameter SET_TIME_1S=27'b50_000_000;
//把常量50000000用标识符SET_TIME_1S来代替。
用同一个 parameter 同时定义多个参数时,各个参数之间用“ , ”来隔开。
使用参数可以提高代码的可读性,也便于修改。
4,仿真时的端口定义
与模块输入端口相连的信号端口是产生仿真信号的端口,需定义为reg类型;
与模块输出端口相连的信号端口是被输出信号所驱动的端口,需要定义为wire类型;
5,阻塞与非阻塞赋值语句
(1),非阻塞赋值语句
(2),阻塞赋值语句