FPGA之语法使用篇

1大括号{}的使用

(1)实现增长位宽的作用
如果需要将 8bit 的 a、 3bit 的 b、 5bit c按顺序拼接成一个 16 位的 d,表示方法为:

wire [15:0] d;

d = {a,b,c};

(2){{ }}表示复制,{4{a}}等同于{a,a,a,a};

(3)2、 实现移位的作用
din 是 1bit 的串行数据,假如刚开始传来的数据是 1,后面的数据都是 0,则第一个时
钟时 4bit dout 的值为 4'b1000,第二个时钟时 dout 的高三位放到最后,新来的 0 放到 dout
的最高位,变为 4'b0100,从而实现了数据的右移功能。

always@(posedge sys_clk or negedge sys_rst_n)
if(sys_rst_n == 1'b0)
dout <= 4'b0;
else
dout <= {din, dout[3:1]}; //右移


左移同理, din 是 1bit 的串行数据,假如刚开始传来的数据是 1,后面的数据都是 0,
则第一个时钟时 4bit dout 的值为 4'b0001,第二个时钟时 dout 的低三位放到最前面,新来
的 0 放到 dout 的最低位,变为 4'b0010,从而实现了数据的左移功能。
always@(posedge sys_clk or negedge sys_rst_n)
if(sys_rst_n == 1'b0)
dout <= 4'b0;
else
dout <= {dout[2:0], din}; //左移
 

例子:data_temp={dq,data_temp[15:1]}
dp=1000_1001_1000_0000
进行拼接:1
          01
          001
          0001
          10001
          010001
          ……
          0000_0001_1001_0001

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值