• Verilog 初级入门概念


    •  首先我们要理解两种变量类型 Net Type(连线型)和 Register Type (寄存器型):

    Net Type(连线型),从名字上理解就是“导线”呗,导线的这头和导线的另一头始终是直接连通的,这头是什么值,那头就是什么值,所以输出随着输入随时变化的。连线型中 wire 最常见。

    Register Type(寄存器型),寄存器就不像普通导线了,它可以把值给存住,你只要给它赋一次值,它都会存住那个值,直到你给它赋一个新的值它才会改变。寄存器型中 reg 最常见。

      注意:wire型变量如果没有赋予初始值,默认初始值为高阻态“Z”;  reg  型变量如果没有赋予初始值,默认初始值为不定态“X”。

    • verilog语言中的赋值语句有两种,一种是持续赋值语句(assign语句),另一种是过程赋值语句(always语句)。

    持续赋值语句(assign语句)主要用于对wire型变量的赋值,因为wire(线型)的值不能存住,需要一直给值,所以需要用持续赋值。

      例如:assign c = a + b;    只要a和b有任意变化,都可以立即反映到c上,也就是说c的值是根据a,b的值随时变化的。

    过程赋值语句(always语句)主要用于reg 型变量的赋值 ,因为always语句被执行是需要满足触发条件的,所以always过程块里面的内容不是每时每刻都被执行,因此需要将被赋值的对象定义成寄存器类型,以便这个值能被保持住。

    • 过程赋值又分为 阻塞赋值 “=”  和 非阻塞赋值 “<=” 两种。这里的非阻塞赋值符号 “<=” 与 “小于等于” 符号相同,他们在不同的语境下表示不同含义,要注意区分,例如在“if-else”等判断语句中,一般都表示为“小于等于”。    接下来对这两种赋值作具体讲解...

    阻塞赋值 “=“ 。 阻塞赋值和我们平时理解的赋值差不多,不用太多解释,就是按照语句的顺序,一句句往下顺序执行。一个赋值语句执行完,然后执行下一个赋值语句。

    非阻塞赋值 “<=” 。非阻塞赋值就比较特别了,在同一个always过程块中,非阻塞赋值语句都是同时并发执行的,并且在过程块结束时才执行赋值操作。也就是说,在同一个always过程块中,非阻塞赋值语句被执行没有先后顺序,在过程快结束时,大家一起被赋值。

  • 相关阅读:
    TestNG超时测试
    iOS平台如何进行app自动化测试?
    软件性能测试见解与总结
    性能测试关注点整理总结
    测试用例的设计步骤
    如何建立软件测试管理体系?
    关于手工测试,应该如何做?
    web性能测试流程
    SPASVO推出ALM(覆盖全生命周期的研发过程管理平台)免费在线体验平台
    如何使用testcenter统计开发工程师工作质量?
  • 原文地址:https://www.cnblogs.com/xuexizhe/p/8252219.html
Copyright © 2020-2023  润新知