"Verilog初学资料:基本可综合语法、简单代码,逐步熟悉Verilog语言"

需积分: 9 1 下载量 85 浏览量 更新于2024-01-19 收藏 780KB DOC 举报
verilog初学资料是关于verilog语言的学习材料,包括各种基本可综合语法和一些简单的代码。通过这些资料,可以逐步熟悉verilog语言,并为将来深入学习和应用打下基础。 在学习verilog语言时,有一些严格要求和注意事项需要遵守。首先,不应使用初始化语句,这意味着在声明变量时不应该直接给定初始值。其次,不应使用延时语句,因为延时语句会导致设计中的多个信号在同一时间步更新,这可能引发问题。第三,应避免使用循环次数不确定的语句,如forever和while等,这样的语句在综合过程中会引起一些不可控的行为。 在设计电路时,应尽量采用同步方式,即将时序逻辑和组合逻辑分开处理。此外,应尽量使用行为语句完成设计,这样会使代码更易读和维护。对于always过程块来描述组合逻辑,应在敏感信号表中列出所有的输入信号,这样能更清晰地描述电路的功能。 此外,所有的内部寄存器都应该可以被复位,这意味着在设计中应该考虑到复位的情况,确保电路在复位时能够正常工作。另外,需要注意的是,用户自定义原件(UDP元件)是不能被综合的,这意味着在设计中应使用可综合的基本模块。 在verilog中,变量可以分为线网类型和寄存器类型。线网型变量通常被综合成wire,而寄存器可能会被综合成wire、锁存器或触发器,或者在优化过程中被消除。 在verilog语句中,连续性赋值是通过assign语句完成的。连续性赋值语句的逻辑结构是将等式右边的驱动左边的结点,因此连续性赋值的目标结点总是综合成由组合逻辑驱动的结点。在综合过程中,assign语句中的延时会被忽视。 过程性赋值只出现在always语句中。阻塞赋值和非阻塞赋值在赋值本身没有区别,只是对后续语句有不同的影响。在设计组合逻辑电路时,建议使用阻塞赋值。而在设计时序电路时,建议使用非阻塞赋值。过程性赋值的赋值对象可能会被综合成wire、锁存器或触发器,具体取决于设计的实际情况。 综上所述,verilog初学资料提供了学习verilog语言的基础知识和实践经验,通过学习这些资料,可以逐步掌握verilog语言的基本语法和常用技巧,为后续的深入学习和应用打下坚实的基础。