数字集成电路设计(三、Verilog HDL程序设计语句和描述方式)(一)

这篇博客介绍了Verilog HDL的两种主要建模方式:数据流建模和行为级建模。在数据流建模中,详细讲解了连续赋值语句的显式和隐式赋值,并强调了它们在组合电路中的应用。行为级建模主要涵盖过程语句,如initial和always,以及条件分支语句,如if和case。博客还提到了阻塞赋值和非阻塞赋值的区别,并强调了在设计中如何选择合适的赋值方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  • 在电路设计过程中,Verilog HDL有三种程序设计方式:数据流建模,行为级建模,结构化建模
  • 结构化建模就是搭电路,连线这个过程,在硬件描述语言成为模块的调用过程
  • 数据流建模是硬件描述语言非常重要的一种建模方式
  • 行为级建模只会在很局部的时候用到

1. 数据流建模

1.1 连续赋值语句

  • 连续赋值语句只能用来对连线型变量进行驱动,而不能对寄存器型变量进行赋值
  • 它可以采取显式连续赋值语句和隐式连续赋值语句两种赋值方式
  • 在组合电路的描述方式中,一种方式是写出真值表,化出最简逻辑表达式然后用结构进行描述。这个的唯一区别是最后用的是运算符来表达最小项表达式
  1. 显式连续赋值语句
    (就是信号定义和assign分成两条语句)
    在这里插入图片描述
  2. 隐式连续赋值语句
    在这里插入图片描述
  • 显示连续赋值举例:
    在这里插入图片描述
  • 隐式连续赋值举例:
    在这里插入图片描述
  • !!!连续赋值语句是数字电路中要求掌握非常强的一个东西,对数字电路的基本构成和概念要非常清楚,这样就可以用最小的电路取得这样的效果
  1. !!!需要注意
    (1)赋值目标只能是线网类型(wire)
    (2)在连续赋值中,只要赋值语句右边表达式任何一个变量有变化,表达式立即被计算,计算的结果立即给左边信号(若没有定义延迟量)(连续赋值语句是对组合电路的一个基本的描述,在组合电路中输入发生变化,输出也会随之变化
    (3)连续赋值语句不能出现在过程块中(initial,always)
    (4)多个连续赋值语句之间是并行语句,因此与位置顺序无关
    (5)连续赋值语句中的延时具有硬件电路中惯性延时的特性,任何小于其延时的信号变化脉冲都将被滤除掉,不会体现在输出端口上(器件延迟做的非常小的时候,这时候传统电路的毛刺就有可能会带到输出端。整个电路代表的是电容特性,如果延迟很大,电容就很大,毛刺就被滤掉了,不会对输出电流有影响。但是延迟非常小的话,这个毛刺就会穿过到达输出端。对于连续赋值语句,它可以由#定义延迟。惯性延迟就是干扰信号能允许的一个工作频率范围,惯性延迟小于干扰,干扰就会起作用)

2. 行为级建模

在这里插入图片描述

  • 硬件描述语言对于电路设计的语句主要就在行为级建模

  • 行为级建模归结起来只有三条语句:赋值,条件,循环(循环语句不作为行为级建模的主要描述语句)
    在这里插入图片描述

  • 对于可综合来讲就是什么样的语句能够形成电路,什么样的语句不能形成电路

  • 连续赋值赋值语句能够形成电路,这是没有问题的,牵扯的都是最基本的元器件和语法单元,不会有问题。这样来讲的话,出问题出的最多的就在行为级建模上面

2.1 过程语句

  • Verilog HDL中过程块是由过程语句所组成的。过程语句有两种,分别是initial过程语句和always过程语句。
  1. initial过程语句
    在这里插入图片描述
    (1)initial语句主要用在仿真和测试
    (2)initial在可综合语句中起到什么作用:初始化。!!电路的初始化是靠复位信号完成的,所以initial语句没有太大用。在语法严格的VHDL里面,它是没有initial语句的,它的全局复位就是用复位信号。在代码中,有人信号把刚上电的置位信号全放在initial里面,这样是非常危险的,如果程序跑掉必须断电重来,如果用的复位信号做的初始化只需要复位重来就行了

  2. always过程语句
    在这里插入图片描述

  • 敏感时间列表可以没有
  • always 过程语句的触发状态是一直存在的,只要满足 always 后面的敏感事件列表,就执行语句块
  • 两个问题:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

普通的晓学生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值