【个人笔记】学习Verilog 语言中遇到的部分概念区别

正文

Verilog HDL 是一种用于描述数字电路和系统的硬件描述语言,它有自己的语法和语义规则,与一般的编程语言有所不同。本文介绍了 Verilog 语言中的一些常见的概念和区别,以帮助初学者理解和使用 Verilog 语言。

case endcase 和 begin end

case endcase 和 begin end 都是用来表示语句块的符号,它们的作用是将多条语句组合成一个语句,用于在 case 语句或 if 语句等条件分支中执行。它们的区别主要有以下几点12

  • case endcase 是 Verilog 语言中的一种多分支选择语句,它可以根据一个表达式的值,选择执行不同的语句。它的语法如下:
case (<expression>)
    case_item1 : <statement1>;
    case_item2 : <statement2>;
    ...
    default : <statementN>;
endcase
  • begin end 是 Verilog 语言中的一种语句块,它可以将多条语句组合成一个语句,用于在 case 语句或 if 语句等条件分支中执行。它的语法如下:
begin
    <statement1>;
    <statement2>;
    ...
    <statementN>;
end
  • begin end 可以用于模块、函数、任务、过程等的定义,而 case endcase 不能。
  • begin end 可以用于并行语句块和顺序语句块,而 case endcase 只能用于顺序语句块。并行语句块是指在同一个时钟周期内同时执行的语句,顺序语句块是指按照顺序依次执行的语句。
  • begin end 可以用于生成语句块,而 case endcase 不能。生成语句块是指在编译时根据条件生成不同的硬件结构的语句。

连续赋值和过程赋值

连续赋值和过程赋值是 Verilog HDL 语言中的两种赋值方式,它们的区别主要在于数据类型、作用域和时机12。连续赋值用于描述组合逻辑电路,需要用 assign 关键字,并且左侧必须是 wire 类型的数据1。连续赋值语句不能出现在过程块中,而且赋值表达式中的任何信号变化都会立即反映到赋值对象上1。过程赋值用于描述时序逻辑电路,不需要用 assign 关键字,并且左侧必须是 reg 类型的数据1。过程赋值语句只能出现在过程块中,而且只有在过程块被触发时才会执行赋值操作,赋值对象的值不再受赋值表达式的影响1

表达式和语句

表达式和语句是编程概念中的两个基本概念,它们的区别主要在于表达式是可以被求值的代码片段,而语句是一条完整的指令34。表达式一般都有值,例如变量、常量、运算符的组合等3。语句一般用来执行操作,例如声明、赋值、控制流等3。表达式可以作为语句的一部分,例如赋值语句中的右侧表达式,但语句本身不能作为表达式使用3

函数和任务

函数和任务是 Verilog HDL 语言中的两种用来描述硬件行为的结构,它们的区别主要在于函数只能有一个输出,而任务可以有多个输出。函数和任务都需要用 begin…end 语句块来定义它们的主体,但这个语句块不是用来返回值的,而是用来描述信号的变化和逻辑的执行。函数和任务的返回值都是通过它们的输出参数来实现的,函数的输出参数是它的函数名,任务的输出参数是它的 output 类型的参数。因此,不能用 begin…end 语句块作为返回值,也不能用 return 语句强制返回值,而是要用赋值语句来给输出参数赋值。另外,函数和任务的调用方式也不同,函数可以在表达式中调用,而任务只能在语句中调用。而且,任务不能在 begin…end 语句块中调用,因为任务是一种并行的行为,它需要在一个独立的过程块中执行。如果想在 begin…end 语句块中使用任务的功能,可以用 fork…join 语句来创建一个并行的过程块,然后在其中调用任务。

[自己做的原始笔记已由人工智能自动整理重写,使用的关键字是:

请把它们整理成一个简短的博客笔记,供我查阅。要求有标题、标签、简短摘要、正文,谢谢。  ]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值