《夏宇闻 Verilog数字系统设计教程》读书笔记chapter V——条件语句、循环语句、块语句与生成语句

本文是《夏宇闻 Verilog 数字系统设计教程》的读书笔记,重点介绍了条件语句(包括if, else, case)的用法,循环语句(forever, repeat, while, for)的执行机制,以及顺序块和并行块的特点,强调了在Verilog设计中避免竞争条件和合理使用块语句的重要性。" 106953226,7242376,腾讯TAD Sim 2.0:数据+游戏技术驱动的自动驾驶仿真新航程,"['自动驾驶', '仿真测试', '游戏引擎', '腾讯', 'TAD Sim']
摘要由CSDN通过智能技术生成

5.1 条件语句(if_else语句)

if 语句的三种形式

  1. 示例↓
if(a>b)
	out=int1;
  1. 示例↓
if(a>b)
	out1=int1;
else
	out1=int2;
  1. 示例↓
if(表达式1)
	语句1else if(表达式1)  语句2else if         语句3else        语句n;

说明

  1. 条件语句必须在过程块语句中使用,过程块是指由initialalways引导的begin-end块,模块外的其他地方都不能编写。示例↓
always@(some_event)
	begin
		if(a>b) out1=int1;
		else if(a==b) out=int2;
		else out1=int3;
	end
  1. if后边一般为逻辑表达式或关系表达式,若为0,x,z,按F处理。若为1,按T处理。
  2. 应当注意ifelse的配对关系,else总是与它上面的最近的if配对。如果ifelse的数目不一样,可以用begin_end块语句来确定配对关系。

5.2 case语句

case语句是一种多分支选择语句,一般形式如下:

case/casez/casex(控制表达式)   case(分支项)    endcase

case(分支项)的一般格式如下:

分支表达式:      语句;
默认项(default):  语句;

说明

  1. 控制表达式表示为控制信号的某些位,分支表达式(常量表达式)用这些控制信号的具体状态值来表示。
  2. default项可有可无,一个case语句里只能有一个default项,case语句可以嵌套使用。
  3. 执行完case分支后的语句,则跳出case语句结构,终止case语句的执行。
  4. 只有当信号的对应位的值能明确进行比较时才能比较成功,因此要注意详细说明case分支表达式的值。
  5. case语句所有表达式值的位宽必须相等,这样控制表达式和分支表达式才能进行对应位的比较。
  6. casez用来处理不考虑高阻值z的比较过程,casex语句不考虑高阻值z和不定值。这样,在case语句表达式进行比较时,就可以灵活地设置对信号的某些位进行比较。
  7. 在用到if语句时写上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值