使用SystemVerilog门模型描述的组合逻辑
模块和文件
组合逻辑是无状态的,换言之,输人的变化立即反映在输出的改变上。
SystemVerilog的基本构造单元是模块(module)。
module And2 (input wire x,y,output wire z);assign z = x & y;endmodule
模块描述从关键字module开始,接着是模块名和括号中的输入和输出列表。模块以关键字endmodule结束 请注意,在模块的第一句后有分 号“;”,但是在关键字endmodule后面没有分号。
在上述例子中,该模型只有一条声明语句。用关键字 assign来表明所谓的连续赋值 (continuous assignment)语句(这将在后面解释)。x和y 的按位相与得到的值被赋给z。SystemVerilog的算术和逻辑操作符是基于C语言的。
建议读者在组织设计工作中遵循下列指导原则:
- 每个模块都有自己独自的文件。
- 文件名与模块名应该完全一致。
- Verilog和SystemVerilog文件名通常分别用“.v”和“sv”作为其文件名的后缀,而本书中所有的例子都用“.v”作为文件名的后缀。
- 在文件名、文件夹和目录名中不要使用空格,即使操作系统允许这样命名,但是有些 EDA工具还是不能处理带空格的文件名)。
延迟
为了验证时序仿真模型必须包括时序信息。包括时序信息的最简单方法是为每个门建立延迟模型。例如,10ps延迟的与非门可以写成如下形式:
nand #10ps g1(y,a,b);
在上面这个例子中,只有一个延迟参数。在与非门的场