美文网首页
【Verilog】语法tips

【Verilog】语法tips

作者: 大魔王是本人 | 来源:发表于2017-04-16 13:29 被阅读89次

Verilog初学建议 (墙裂推荐!!!感动到哭泣!)

1.=和<=(类似vhdl:=和<=)

=为阻塞赋值,类似vhdl的:=。<=为非阻塞赋值。

建议设计组合逻辑电路时用阻塞赋值,设计时序电路时用非阻塞赋值。

建议同一个变量单一地使用阻塞或者非阻塞赋值。

2.tips

1、不使用初始化语句;

2、不使用延时语句;

3、不使用循环次数不确定的语句,如:forever,while等;

4、尽量采用同步方式设计电路;

5、尽量采用行为语句完成设计;

6、always过程块描述组合逻辑,应在敏感信号表中列出所有的输入信号;

7、所有的内部寄存器都应该可以被复位;

8、用户自定义原件(UDP元件)是不能被综合的。

3.赋值

连续性赋值语句逻辑结构上就是将等式右边的驱动左边的结点。因此连续性赋值的目标结点总是综合成由组合逻辑驱动的结点。Assign语句中的延时综合时都将忽视。

过程性赋值只出现在always语句中。

4.进位:

通常会将进行运算操作的结果比原操作数扩展一位,用来存放进位或者借位。如:

Wire [3:0] A,B;

Wire [4:0] C;

Assign C=A+B;

C的最高位用来存放进位。

5.循环:

只有for-loop语句是可以综合的。

6.异步复位:

建议不要在异步时对变量读取,即异步复位时,对信号赋以常数值。

7.块

一.顺序块

顺序块有以下特点:

1)      块内的语句是按顺序执行的,即只有上面一条语句执行完后下面的语句才能执行。

2)      每条语句的延迟时间是相对于前一条语句的仿真时间而言的。

3)      直到最后一条语句执行完,程序流程控制才跳出该语句块。

顺序块的格式如下:

begin

语句1;

语句2;

......

语句n;

end

其中:

        块名即该块的名字,一个标识名。其作用后面再详细介绍。

        块内声明语句可以是参数声明语句、reg型变量声明语句、integer型变量声明语句、real型变量声明语句。

二. 并行块

并行块有以下四个特点:

1)      块内语句是同时执行的,即程序流程控制一进入到该并行块,块内语句则开始同时并行地执行。

2)      块内每条语句的延迟时间是相对于程序流程控制进入到块内时的仿真时间的。

3)      延迟时间是用来给赋值语句提供执行时序的。

4)      当按时间时序排序在最后的语句执行完后或一个disable语句执行时,程序流程控制跳出该程序块。

并行块的格式如下:

fork

语句1;

语句2;

.......

语句n;

join

其中:

•        块名即标识该块的一个名字,相当于一个标识符。

•        块内说明语句可以是参数说明语句、reg型变量声明语句、integer型变量声明语句、real型变量声明语句、time型变量声明语句、事件(event)说明语句。

在fork_join块内,各条语句不必按顺序给出,因此在并行块里,各条语句在前还是在后是无关紧要的。

8.易错:

注意指定wire或者reg数组数!!!

9.数组定义顺序

[0:6]~=[6:0]区别注意

10.不等于 !=

11.output是属于wire型的,只能用于组合逻辑,你此处用于时序逻辑应该同时声明为reg型,如下:output reg [7:0] dout

12.this signal is connected to multiple drivers

错误原因: wire型变量赋初值

此类错误系将某同一个reg变量在多个个always块中进行了赋值操作,此类程序是不可综合的,因此须修改程序。

切记,对于同一个reg型变量只能在一个always块中对其值进行修改,当然在其它块中可以引用其值!

相关文章

  • 【Verilog】语法tips

    Verilog初学建议(墙裂推荐!!!感动到哭泣!) 1.=和<=(类似vhdl:=和<=) =为阻塞赋值,类似v...

  • Verilog-tips

    ※ 参考书:Verilog HDL 数字设计与综合(第二版)(本科教学版) 字符串:必须在一行内写完。不可以...

  • 【Verilog语言】Verilog语法基础

    Verilog是一个名词,那么对名词首先得知道What是什么问题?那 Verilog是什么呢? Verilog是一...

  • 提供错误提示跳转功能

    转载notepad++调用VIVADO语法检测工具进行verilog语法检测 https://blog.csdn....

  • Verilog HDL | 简介与基本语法

    致谢:本笔记基于龚黎明的系列讲解视频。 1 Verilog简介(Verilog语法学习者可跳过该节) Verilo...

  • Verilog语法提炼

    2018.7.26 一.always里面赋值语句左边必须声明成reg。 注意:1.声明成reg,不一定得到寄存器:...

  • Verilog语法小结

    建模方式 数据流建模 行为级建模 结构化建模通过调用底层逻辑模块来进行电路描述,值得注意的是:底层模块中有参数时,...

  • markdown基本语法的tips

    markdown基本语法的tips CSDN

  • Verilog:基础语法(下)

    Verilog:基础语法(上)[https://www.jianshu.com/p/04010f720c46] 模...

  • Verilog HDL语法总结

    module是Verilog HDL基本概念,是以module开始,以endmodule结束的一段程序,其代表的是...

网友评论

      本文标题:【Verilog】语法tips

      本文链接:https://www.haomeiwen.com/subject/ykwnattx.html