HDL Bcdadd4 (包括对generate endgenerate语法的复习)

1原题复现

2解题

通过学习他人的博客之后,了解到本题的考察点是关于generate endgenerate 用来例化模块的语法知识点:
重新复习一下generate的循环语法:
1.在使用generate循环语法时候,必须现在genvar中声明循环中所使用到的索引变量名,然后才能使用generate块。 因为genvar声明的索引变量被利用作为整数在generate中来判断循环 一般将genvar声明放在generate过程块的外部区域,并且相同的循环索引变量可以在多个generate中使用。

代码

在这里插入图片描述
第二种用法:
把在generate外部的实例,也放到generate里面去
在这里插入图片描述

generate

generate的相关的语法

1.定义genvar,作为generate中的循环变量
2.generate语句中定义的for语句,必须要有begin,为后续增加标签做准备。
3.begin必须要有名称,也就是必须要有标签,因为标签会作为generate循环的实例名称。
4.可以使用在generate语句中的类型主要有:
module(模块)

  1. UDP(用户自定义原语)
  2. 门级原语
  3. 连续赋值语句
  4. initial或always语句
  5. 一般对应于generate的用法的结构基本如下:

genvar 循环变量名;

generate

// generate循环语句

// generate 条件语句

// generate 分支语句

// 嵌套的generate语句

endgenerate

下面将就generate常用的几种情况举例说明。

1.generate-loop语句

在这里插入图片描述

2.generate-条件语句
在这里插入图片描述
3.generate-case分支语句

generate-case分支语句与generate-条件语句类似,只不过将原来的分支语句换做了case语句。

在这里插入图片描述

关于generate的总结部分,摘自博客

https://blog.csdn.net/BBS_vip/article/details/46653749

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值