verilog always语法_Verilog数字系统设计教程之学习摘要

f6dea6a55d0960ae8f1558130182f02c.png

1、reg型只表示被定义的信号将用在“always”模块内。

2、Verilog HDL作为一种硬件描述语言,是针对硬件电路而言的。在硬件电路中信号有4种状态值,即1,0,x,z,也即高、低、不确定、高阻值。

3、不同长度的数据进行位运算:两个长度不同的数据进行位运算时,系统会自动地将两者按右端对齐,位数少的操作数会在相应的高位用0填满。

4、 赋值运算符(=,<=);条件运算符(?:);拼接运算符({ })。

5、在进行整数除法运算时,结果值要略去小数部分,只取整数部分;而进行取模运算时,结果值的符号位采用模运算式里第一个操作数的符号位。如:10%3 1;-10%3 -1。

6、初学者一定要深入理解和记住的几个点:

(1)在verilog模块中,所有过程块(如initial块、always块)、连续赋值语句、实例引用都是并行的。

(2)只有连续赋值语句(即用关键词assign引出的语句)和实例引用语句(即用已定义的模块名引出的语句),可以独立于过程块而存在于模块的功能定义部分。

(3) 在always模块内被赋值的每一个信号都必须定义成reg型。

7、模块中的功能描述可以由哪几类语句或语句块组成?它们出现的顺序会不会影响功能的描述?

答: 用assign语句声明,用实例元件,用always块。不会影响。

8、这几类描述中的哪一种直接与电路结构有关?

答:用实例元件直接与电路结构有关。

9、reg型和wire型变量的差别是什么?

答:reg型变量是寄存器变量,wire型变量是连线型变量。两者的根本区别在于reg型变量有个寄存器来存放变量,这个值只有变量发生改变时才会改变,否则保持原来的值不变,wire型变量的值不是确定的值。

10、参数类型的变量有什么用处?

答:参数类型的变量的好处是可以提高程序的可读性和可维护性。

11、Verilog语法规定的参数传递和重新定义功能有什么直接的应用价值?

答:可以用于延迟时间和变量宽度。


第四章 运算符、赋值语句和结构说明语句

1、为了提高程序的可读性,明确各表达各运算符之间的优先关系,建议使用括号。

2、左移:位宽增加,低位补0。

右移:位宽不变,低位舍去。如:4'b1001<<1=5'b10010, 4'b1001>>1=4'b0111。

3、缩减运算符:缩减运算符的具体操作是这样的,第一步先将操作数的第1为与第2位进行与、或、非运算;第二步将运算结果与第3位进行与、或、非运算,以此类推,直至最后一位。故,最后的结果是1位的二进制数。

4、非阻塞(Non_Blocking)赋值方式,例如b<=a;阻塞(Blocking)赋值方式,例如b=a。

其中,b<=a,这种方式的赋值并不是马上执行的,也就是说,“always”块内的下一条语句执行后,b并不等于a,而是保持原来的值,“always”块结束后,才进行赋值。

而b=a,这种赋值是马上执行的。

第五章 条件语句、循环语句、块语句与生成语句

1、条件语句必须在过程块语句中使用。所谓过程块语句是指由initial和always语句引导的执行语句集合。除这两种块语句引导的begin end块中可以编写条件语句外,模块中的其他地方都不能编写。

2020.10.06 16:08记录

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值