1、RTL描述中需要区分“变量”和“信号”,对于信号的描述可综合出实体(reg对应寄存器、wire对应线网),而变量只是辅助描述的手段,是编程语言的概念。变量常用于for循环和拼接运算符中。
2、在实际电路中,复位信号对于触发器是电平驱动而非边沿驱动的,即使无下降沿,只要复位信号为0即可复位触发器。与RTL中典型的“negedge”描述不同。
3、阻塞赋值仅在不可综合的Verilog描述(initial过程块)中体现阻塞,在可综合的Verilog描述(always过程块)不体现阻塞。
4、为避免综合出锁存器,组合逻辑中的if和else if后必须添加else条件。时序逻辑中则不需要。
5、for循环用于generate结构,变量声明为genvar类型;用于always块中,变量声明为integer(32位整数)类型。若变量错误声明为wire和reg,则不可综合。for循环中不能使用i++,必须使用i=i+1。
6、高阻态:可理解为开路或未通电,表明此信号可被外部信号源驱动。
7、不定态:在实际物理世界中不存在,表现为或高电平或低电平的不稳定状态。
8、在Verilog描述中,二维数组仅能声明在module内部,不可传递接口信号。VCS仿真需要在testbench中设置$fsdbDumpfile保存二维数组信号的波形。
9、function可综合,但仅能用于module内部的组合逻辑复用,一般用module写法代替。task不可综合,仅用于仿真。