HDLBits (16) — 向量的拼接
2022-01-25 23:45 作者:僚机Wingplane | 我要投稿
本题链接:
https://hdlbits.01xz.net/wiki/Vector3
部分选择用于选择访问向量的一部分。 拼接运算符 {a,b,c} 用于通过将几个小向量拼接在一起来创建更大的向量。
连接需要知道每个组件的宽度(或者你怎么知道结果的长度?)。因此,{1,2,3} 是非法的从而会导致错误消息:串联中不允许使用未调整大小的常量。
连接运算符可用于赋值的左侧和右侧。

题目
给定几个输入向量,将它们连接在一起,之后它们分成几个输出向量。 有六个 5 位输入向量:a、b、c、d、e 和 f,总共 30 位输入。 有四个 8 位输出向量:w、x、y 和 z,用于 32 位输出。 输出应该是输入向量的串联,后跟两个 1 位:


答案

输出波形


Verilog 中提供了大约 9 种操作符,分别是算术、关系、等价、逻辑、按位、归约、移位、拼接、条件操作符。
大部分操作符与 C 语言中类似。同类型操作符之间,除条件操作符从右往左关联,其余操作符都是自左向右关联。圆括号内表达式优先执行。例如下面每组的 2 种写法都是等价的。
拼接操作符用大括号 {,} 来表示,用于将多个操作数(向量)拼接成新的操作数(向量),信号间用逗号隔开。
拼接符操作数必须指定位宽,常数的话也需要指定位宽。
参考内容:
2.4 Verilog 表达式 | 菜鸟教程:
https://www.runoob.com/w3cnote/verilog-expression.html