• 关于verilog 赋值



    1、   wire表示直通,即只要输入有变化,输出马上无条件地反映;reg表示一定要有触发,输出才会反映输入。

    2、   只有“<=”,表示非阻塞,给沿触发的寄存器赋值;"="是阻塞赋值,给电平触发的信号赋值。

    3、 不指定就默认为1位wire类型。专门指定出wire类型,可能是多位或为使程序易读。wire只能被assign连续赋值,reg只能在initial和always中赋值。wire使用在连续赋值语句中,而reg使用在过程赋值语句中。

      *********************************************************************************
      从仿真的角度来说,HDL语言面对的是编译器(如Modelsim等),相当于软件思路。
      这时:
      wire对应于连续赋值,如assign
      reg对应于过程赋值,如always,initial

    4、   *********************************************************************************
      从综合的角度来说,HDL语言面对的是综合器(如DC等),要从电路的角度来考虑。
      这时:
      1、wire型的变量综合出来一般是一根导线;
      2、reg变量在always块中有两种情况:
        (1)、always后的敏感表中是(a or b or c)形式的,也就是不带时钟边沿的,综合出来还是组合逻辑
        (2)、always后的敏感表中是(posedge clk)形式的,也就是带边沿的,综合出来一般是时序逻辑,会包含触发器(Flip-Flop)

    5、  产生一个组合逻辑的输出,可以用always, 也可以用assign, 用always就是reg 用assign 就是wire,再举个例子,一个时序逻辑,寄存器,用always描述,产生一个reg赋值,但是如果再用assign把reg赋值给一个wire,那么它们还是一样 无任何区别。reg和wire,跟时序和组合逻辑 没有一点点得关系

  • 相关阅读:
    yepnope.js 异步加载资源文件
    省心选房5步走 买房前先算经济账还要多打听
    css中inline、block、inlineblock的区别
    web标准化设计:常用的CSS命名规则
    用css的手段解决Google Chrome浏览器的字体最小12px问题
    HTML元素的默认样式
    CSS中 常见中文字体的英文名称
    《重构 改善既有代码的设计》书摘
    手机号码匹配规则
    WEB开发——大批量数据导出经验谈
  • 原文地址:https://www.cnblogs.com/zhoususheng/p/2972235.html
Copyright © 2020-2023  润新知