美文网首页
Verilog语法提炼

Verilog语法提炼

作者: 打着石膏脚的火星人 | 来源:发表于2018-07-26 22:56 被阅读0次

    2018.7.26

    一.always里面赋值语句左边必须声明成reg。

    注意:1.声明成reg,不一定得到寄存器:(阻塞赋值)

    声明成reg无寄存器综合

    2.未声明成reg,也可能得锁存器。

    隐含锁存器

    备注:该图为电平触发,故因新增锁存器。

    二、assign表达式左边必须声明为wire。

    三、阻塞赋值用“=”,非阻塞赋值用“<=”.

    四、1)边沿触发生成寄存器的时序逻辑电路

            2)电平触发条件完整,生成组合逻辑电路

           3)电平触发条件不完整,生成锁存器的时序逻辑。

    五、Conding要点:

           1)如果是边沿触发的逻辑,比如always@(posedge clk),里面一律用'<='赋值

           2)如果是电平触发的逻辑,一律使用“=”赋值

           3)电平触发:逻辑简单用assign语句,逻辑复杂用always语句

           4)分支条件写完整,防止出现锁存器。

    六、循环语句:

    循环语句

    七、task and function:

    task function

    八、语法小汇总:

    1)always语句块和assign语句块:并行执行。

    2)always #50 clk=~clk:50ns的时钟。

    3)进制表示方法:8’d61:8是bit数。

    4)变量的分类:网络型(net type:常见wire,如果缺省,默认wire)和寄存器型(register type:常见reg,算法开发:integer,real,time)。

    5)reg [7:0]:二维向量成为存储器变量。

    6)某一操作数有不确定值,结果也是不定值。(除===)

    7)连接符:{sum,kla}。

    8)赋值语句:连续赋值语句(assign),过程赋值语句(always:电平触发:组合逻辑,边沿触发:时序逻辑)。

    9)条件语句:if-else,case语句。

    10)循环语句:forever,repeat,while,for.

    11)结构说明语句:initial,always,task,function。

    12)编译预处理语句:`define,`include,`timei

    13)过程块:initial和always.always过程块不能嵌套使用.

    14)Initial:模拟硬件上电的过程,不可综合,做验证。1不能嵌套使用。2模拟0时刻开始执行,只执行一次。3同一模块内多个initial块并行执行。

    15)过程赋值语句:阻塞赋值(类C)和非阻塞赋值(并行赋值)。

    16)Always电平触发不建议用非阻塞逻辑表达式,边沿触发尽量用非阻塞赋值。

    相关文章

      网友评论

          本文标题:Verilog语法提炼

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