Verilog位拼接运算符{}

本文详细讲解了Verilog中如何使用位拼接运算符({}

前言

在Verilog中如何给一个多位的变量(如123bit)赋值呢?不能连续写123个1吧,此时需要位拼接运算。

一:位拼接运算符的定义

1:{}位拼接运算符用于将两个或多个信号拼接起来,表示一个整体的信号,如下:

a = {b[5],b[4:0]}

意思为 b的最高位b[5]和b的低五位拼接起来,组成的a为6位,相当于:

a = {b[5],b[4],b[3],b[2],b[1],b[0]}

2:即把某些倍号的某些位详细地列出来,中间用逗号分开,最后用大括号括起来表示一个整体信号,例如:

{a, b[3:0], c, 3'b100}

也可以写成为:

{a, b[3],b[2], b[1],b[0],c, 1'b1,1'b0,1'b0}

3:将d_in的最高位和d_in的低7位取反加一拼接起来,拼接之后d_out为8位;

d_out={d_in[7],~d_in[6:0]+1'b1};

4:表示一个整体的信号例如一个一位全加器可以将进位输出和结果拼接在一起:

例如加法器:

module fulladder(a, b, cin, sum, cout);
  input a, b, cin;
  output sum, cout;
 
  assign {cout, sum} = a + b + cin;    // 进位输出与和拼接在一起
 
endmodule

6:使用重复数字法简化拼接表达式的书写

  • 例如要表示4bit的w
{4{w}} <=> {w, w, w, w}
  • 使用嵌套方式简化书写
{a, {3{b, c}}} <=> {a, b, c, b, c, b, c}<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值