Verilog HDL中有一个特殊的连接符号——“{}”,(上次看华为面试题也有这个简单的选择题),称为迭代连接运算符,顾名思义,它兼具迭代和连接的双重功效,如下:

(1)连接功能

该运算符号的第一个基本功能就是连接功能,能够将若干个寄存器或者线网类型的变量首尾连接起来组成一个位宽更大的变量。例如:

wire a = 1'b1;
wire [2:0] b = 3'b001;
wire [3:0] c = {a, b}; // c = 4'b1001;

(2)迭代功能

迭代功能是该运算符号的第二个基本功能,它能够把一个变量复制多次,然后首尾连接起来组成一个位宽更大的变量。例如:

wire [1:0] a =2'b10;
wire [7:0] b = {4{a}}; //b = 8'b10101010;

注意,最外层的那个大括号{}是不能省略的!里外两层大括号是语法的必须要求!因为上述赋值其实相当于:

wire [7:0] b ={a,a,a,a};
//如果省略了,相当于如下:
wire [7:0] b = a,a,a,a;//不伦不类

所以,里层的大括号完成的是多次复制,而外层的大括号完成的是连接功能,两层大括号配合起来才完成了迭代功能。

(3)混合功能

所谓混合功能就是既有迭代又有连接的功能,如下:

wire a = 1'b1;
wire [2:0] b = 3'b011;
wire [7:0] c = { {5{a}}, b }; //c = 8'b11111_011

注意,要保证迭代的完整性,不能写成:

c = { 5{a}, b };

即使你看起来也行呀,其实也不行,会导致编译出错。

上述例子是先迭代再连接,也可以先连接再迭代,如下:

wire [7:0] d = {2{a,b}}; // d = 8'b1011_1011;

最后,迭代连接运算符除了可以操作变量外,还可以操作常量,例如:如果我们要给一个64bit的线网向量赋值一个64bit的常量,我们可以这么做:

wire [63:0] a = 64'bF9F9F9_A8A8A8A8A8;
//可以利用迭代写成:
wire [63:0] a = 64'b{ {3{8'hF9}}, {5{8'hA8}} };

【 Verilog HDL 】Verilog 迭代连接运算符相关推荐

  1. Verilog HDL中位运算符、逻辑运算符和缩减运算符的区别

    文章目录 前言 一.单目运算符.双目运算符和三目运算符 二.位运算符 三.逻辑运算符 四.缩减运算符 五.总结 前言 我们在学习和理解Verilog HDL中的一些运算符的意义时,可能会对一些运算符的 ...

  2. Verilog HDL 总结(1)

    Verilog HDL 复习总结 1. Verilog 语法的基础概念 1.1 Verilog模块的基本概念 1.2 Verilog用于模块的测试 2. Verilog的基本语法 2.1 模块的结构 ...

  3. 爆肝4万字❤️零基础掌握Verilog HDL

    文章目录 0.前言 1.Verilog HDL简介 1.1 什么是Verilog HDL 1.2 verilog发展历史ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ 1.3 为什么要使用verilog ...

  4. 【数字逻辑与EDA技术】verilog HDL语法-期末考试重点总结

    一.相关术语 BST(Boundary Scan Test)边界扫描测试 CAD(Computer Aided Design) 计算机辅助设计 CAE(Computer Aided Engineeri ...

  5. (57)Verilog HDL选择运算符:?

    (57)Verilog HDL选择运算符:? 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)Verilog HDL选择运算符:? 5)结语 1.2 FPGA简介 FPG ...

  6. Verilog HDL——运算符

    1.1 逻辑运算符 在Verilog HDL语言中有三种逻辑运算符: 1)&&逻辑与: 2)|| 逻辑或: 3)! 逻辑非. "&&"和" ...

  7. 关于Verilog HDL的一些技巧、易错、易忘点(不定期更新)

    本文记录一些关于Verilog HDL的一些技巧.易错.易忘点等(主要是语法上),一方面是方便自己忘记语法时进行查阅翻看,另一方面是分享给大家,如果有错的话,希望大家能够评论指出. 关键词: ·技巧篇 ...

  8. 设计sample语言的语法_Verilog语法之〇:Verilog HDL简介

    本文首发于微信公众号"花蚂蚁",想要学习FPGA及Verilog的同学可以关注一下. 众所周知,学习FPGA必须首先掌握一门硬件描述语言,所以我为初学者小白们将Verilog语法进 ...

  9. 五分钟快速过完Verilog HDL基本概念(1)

    Verilog既是一种行为描述的语言也是一种结构描述语言.Verilog模型可以是实际电路的不同级别的抽象.这些抽象的级别包括: 系统级(system):用高级语言结构实现设计模块的外部性能的模型. ...

最新文章

  1. 高级数据结构讲解与案例分析
  2. C 语言编程 — 头文件
  3. IDEA不能一个窗口管理多个项目?那是你不会用!
  4. mxnet slice_axis
  5. 网络营销的探索与爆发
  6. java putnextentry_Java对zip格式压缩和解压缩
  7. Python集合(set)类型的操作
  8. Linux系统编程4:入门篇之最强编辑器vim的使用攻略
  9. ue4 网络代码分析
  10. HTMl5 的新特性
  11. LoadRunner执行压力测试
  12. 如何查看硬盘对应的主板接口属性
  13. 未来10年,最值得投资的40个城市
  14. 离线语音识别应用(windows和Android)
  15. uni-app项目Android离线打包UrlSchemes设置
  16. 使用 BEV 投影的高效城市规模点云分割
  17. 银行手机APP安全评估报告【转载】
  18. 找出n以内最大的质数。python
  19. Python遗传算法求一元函数最大值
  20. nbextensions安装完不显示,404 GET /static/components/marked/lib/marked.js?v=20230331152041

热门文章

  1. JDBC连接数据库总结
  2. 介绍一个好用的抓取dump的工具-ProcDump
  3. javascript中作用域,优先级等等问题, 求助中。。。。。。。。
  4. 为什么我的cpld需要重新上电才能工作_正压型防爆配电箱的调试工作
  5. 查单个值用什么resultset_视光门诊日记—为什么两个医院查的视力不一样
  6. dataframe iloc_DataFrame
  7. 表单向导 css实现 步骤指引器
  8. mysql5.7版本源_用最新MySQL 8.0的源安裝MySQL 5.7版本(CentOS 7環境下)
  9. 需要单机还是集群部署_5000W如何玩转Filecoin市场 部署最符合企业的集群模式
  10. 第十六界智能车竞赛:这问题怎么越来越多了呢?