verilog +: / -:语法

这个是在uart总线协议中遇到的,下面对它简单了解一下
在Verilog2001以后,Verilog支持在范围中是用变量,并且引入心得语法如下:
语法定义:
变量的定义可以分为大端和小端,由于实际使用中变量常定义成大端,所以这里对小端不进行分析了

		reg [31:0] big_vect; 大端
		reg [0:31] little_vect;小端

对大端变量进行分析:

(+:) 升序将开始位放在右侧,(-:)降序将开始位放在左侧
big_vect [31:0]
big_vect [0 + : 8]0开始升序,位宽为8 
-> big_vect [7:0]
big_vect [15 -: 8]15开始降序,位宽为8
-> big_vect [15:8]

在实际项目中遇到的:

for(int i=0;i<3;i++) begin
					calc_parity[i] = ev_odd?(^( payld_func[i*(5) +: 5] )) : (~^( payld_func[i*(5) +: 5] ));
					if(bad_parity && bad_parity_frame[i])
						calc_parity[i] = ~calc_parity[i];
				end
当i=0时,payld_func[i*(5) +: 5]  -> payld_func[4:0]
当i=1时,payld_func[i*(5) +: 5]  -> payld_func[9:5]
当i=2时,payld_func[i*(5) +: 5]  -> payld_func[14:10]
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值