hdlbits系列verilog解答(向量3)-16

文章目录

    • 一、问题描述
    • 二、verilog源码
    • 三、仿真结果


一、问题描述

部分选择用于选择向量的部分。级联运算符 {a,b,c} 用于通过将向量的较小部分连接在一起来创建较长的向量。如下:
{3’b111, 3’b000} => 6’b111000
{1’b1, 1’b0, 3’b101} => 5’b10101
{4’ha, 4’d10} => 8’b10101010

级联需要知道每个级联部件的宽度(不然你怎么知道结果的长度?)因此,是非法的, 比如{1, 2, 3} 并导致错误消息: unsized constants are not allowed in concatenations 。
级联运算符可用于赋值的左侧和右侧。

input [15:0] in;
output [23:0] out;
assign {out[7:0], out[15:8]} = in; // Swap two bytes. Right side and left side are both 16-bit vectors.
assign out[15:0] = {in[7:0], in[15:8]}; // This is the same thing.
assign out = {in[7:0], in[15:8]};

给定几个输入向量,将它们连接在一起,然后将它们分成几个输出向量。有六个 5 位输入向量:a、b、c、d、

你可能感兴趣的:(verilog语言,fpga开发)